On Feb 21, 2010, at 20:57, Joseph S. Myers wrote: > I know some people have claimed (e.g. glibc bug 6981) that you can't > conform to Annex F when you have excess precision, but this does not > appear to be the view of WG14.
That may be the case, but I really wonder how much sense it can make to declare things like: > The expressions x − y and −(y − x) are not equivalent because 1 − 1 is +0 but > −(1 − 1) is −0 (in the default rounding direction) if you than have to wave hands and admit that either side might be off by an arbitrary amount due to presence or absence of double rounding, the whole statement becomes meaningless. In the end, what counts is thay users have complained for ages about unexpected floating-point results on x86. We have always argued that that was just the way things are on x86: sorry, hardware issue, can't fix. However, we have progressed 25 years, and through the wonders of SSE2 we now can have both extended precision when we need it and accurate, predictable single and double floating-point for the rest. If we get this issue out of the way, and make GCC by default have IEEE 754 compliant floating point on hardware supporting it, that would be a great step forward. -Geert