Subject: Re: m68k gcl/maxima: Minor Floating point errors
From: Steve Haflich
Date: Fri, 20 Sep 2002 06:34:21 -0700
From: Camm Maguire <camm at enhanced>
> -ffloat-store
> Do not store floating point variables in registers. This pre-
> vents undesirable excess precision on machines such as the 68000
> where the floating registers (of the 68881) keep more precision
> than a double is supposed to have.
>
> For most programs, the excess precision does only good, but a
> few programs rely on the precise definition of IEEE floating
> point. Use `-ffloat-store' for such programs.
That did it -- thanks! As Richard Fateman observed, its quite
surprising the magnitude of the difference was so large. Apparently
m68k has the more accurate answer, right? In any case, I'm adding
-ffloat-store to gcl's compile flags on m68k to avoid testing
problems.
But don't be misled -- the effect is not only precision. The 68881/2
were admirably fast and capable chips for their day, but had a serious
bottleneck loading and storing floats. You may find that performance
is greatly reduced in some circumstances.
Of course, anyone still using decade-old processor chips probably
doesn't consider speed the most important issue.