Re: floating point

eggert@twinsun.com (Paul Eggert)
19 Nov 1998 23:25:02 -0500

          From comp.compilers

Related articles
[7 earlier articles]
Re: floating point darcy@usul.CS.Berkeley.EDU (1998-10-24)
Re: floating point comments@cygnus-software.com (Bruce Dawson) (1998-11-01)
Re: floating point comments@cygnus-software.com (Bruce Dawson) (1998-11-01)
Re: floating point darcy@usul.CS.Berkeley.EDU (1998-11-06)
Re: floating point darcy@CS.Berkeley.EDU (Joseph D. Darcy) (1998-11-06)
Re: floating point comments@cygnus-software.com (Bruce Dawson) (1998-11-07)
Re: floating point eggert@twinsun.com (1998-11-19)
Re: floating point dmcq@fano.demon.co.uk (David McQuillan) (1998-11-21)
Re: floating point darcy@CS.Berkeley.EDU (Joseph D. Darcy) (1998-12-01)
Floating Point jimp@powersite.net (Jim) (1999-11-02)
| List of all articles for this month |

From: eggert@twinsun.com (Paul Eggert)
Newsgroups: comp.compilers
Date: 19 Nov 1998 23:25:02 -0500
Organization: Twin Sun Inc, El Segundo, CA, USA
References: 98-09-164 98-10-018 98-10-040 98-10-120 98-11-015 98-11-031 98-11-059
Keywords: arithmetic

Bruce Dawson <comments@cygnus-software.com> writes:


>I'll have to
>partially retract my statement about nobody being happy with the x87 -
>it doesn't implement double precision as badly as I had feared, since
>the only unavoidable problem if you set the rounding to double is the
>exponent range - which will rarely matter.


Stick to your guns! The basic problem with x86 and strict `double' is
that, even in 64-bit mode, the x86 doesn't round denormalized numbers
properly. It simply rounds the mantissa at 53 bits, resulting in a
double-rounding error. The proper behavior is to round at fewer bits.


I've seen claims of efficient workarounds, but whenever I see details,
it's clear that the methods are either incorrect or inefficient. I'm
not saying it's impossible, but I've never seen it done, and I believe
it's infeasible to implement strict IEEE `double' arithmetic
efficiently on the x86 architecture.


Most people don't care about the errors, though, which is why the Java
spec is being relaxed to allow x86-like behavior (and PowerPC
multiply-add, too). For the vast majority of floating point
applications, performance is more important than bit-for-bit
compatibility, so it's easy to see why bit-for-bit compatibility is
falling by the wayside.


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.