Subject: Re: m68k gcl/maxima: Minor Floating point errors
From: Steve Haflich
Date: Fri, 20 Sep 2002 15:42:55 -0700
From: Camm Maguire <camm at enhanced>
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.
I actually think you have done the wise thing, but if any 68K fanatics
insist otherwise, I've just checked my venerable 68881/68882 manual.
There is a two-bit field in the FPCR Mode Control Byte that specifies
the rounding precision for any fp calculation, and setting it forces
IEEE-standard calculation. The manual warns, however, that these are
intended for emulation of machines that only support these precisions,
and that there is a significant speed cost when the single- or
double-float rounding is turned on. Also, OS's and libraries make it
nototiously difficult to manupulate FP control registers, and are even
more notoriously sloppy about preserving the values in control
registers.