Subject: Re: accuracy of "long double"
To: Neil Booth <neil@daikokuya.co.uk>
From: Steven M. Bellovin <smb@cs.columbia.edu>
List: port-i386
Date: 08/28/2007 17:01:52
On Wed, 29 Aug 2007 00:25:24 +0900
Neil Booth <neil@daikokuya.co.uk> wrote:

> Vincent wrote:-
> 
> > >honor TARGET_96_ROUND_53_LONG_DOUBLE while optimizing (and a
> > >couple of the failures are due to incorrect test cases that assume
> > >that "everything work as Linux"...)
> > >I plan to fix this before gcc 4.3 is released...
> > 
> > Well, since I am currently writing some mathematical stuff, can
> > someone be more specific about this issue? I mean:
> > 
> > * Does it mean that "double" precision roundoff is correct on BSD, 
> > whereas "long double" is not ? and vice-versa on Linux?
> 
> You will only get IEEE semantics with x87 FPU for 80-bit long double
> with long-double precision.  Every other mode is non-IEEE.
> 
> Which means the only one that follows IEEE by default is long double
> on Linux.  You could get the same on NetBSD by changing the CPU
> flags so that you have long double precision.
> 
> You can't get IEEE behaviour for double on x86 without SSE2.
> 
I would add that given the amount of effort that went into the IEEE
effort, using it is almost certainly the right choice for most people.


		--Steve Bellovin, http://www.cs.columbia.edu/~smb