Subject: Re: m68k gcl/maxima: Minor Floating point errors
From: Camm Maguire
Date: 20 Sep 2002 11:25:49 -0400
Greetings, and thanks for pointing this out. Actually, I maintain a
few numerical packages requiring this flag on m68k to pass the
regression tests in the package (gcl/maxima, atlas, blas, lapack,...).
I suppose the sacrifice of performance is the correct approach.
Anyone actually using the 68k with a different opinion will likely
sway my mind in the other direction :). This would of course require
sidestepping integrity tests in this case, as I won't have the time to
maintain dual sets of expected results.
Take care,
Steve Haflich <smh@franz.com> writes:
> 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.
>
>
--
Camm Maguire camm@enhanced.com
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah