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) |
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.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.