Something is puzzling me, and I'm hoping someone can help resolve it.
As you may know, SYMPOW is presenting problems on Cygwin and Solaris. Having
read the paper in the 'docs' directory of the quad-double package:
http://crd.lbl.gov/~dhbailey/mpdist/qd-2.3.11.tar.gz
it is clear that the quad double algorithm assumes that the floating point
processor rounds to 64-bits, which things like PowerPC and SPARC do.
But Intel and AMD CPUs round to 80 bits by default. As such, on Intel/AMD CPUs,
the quad double package does some low level stuff with the control register on
the FPU to make it round to 64 bits rather than the default 80.
Now sympow's Configure script changed the rounding mode of the FPU on Linux
based x86 systems, by including a file fpu.c The code is below. Note this file
only gets included if the system is x86 and Linux.
UNAME=uname
MACH=`"$UNAME" -m`
for x in ix86 i386 i486 i586 i686 x86_64 ia64
do
if [ "$MACH" = "$x" -a `uname` = "Linux" ]; then
echo "You appear to have a $x based Linux system --- using fpu.c"
DEFS="-Dx86"
fi
done
if [ -z "$DEFS" ]; then
echo "You do not appear to have an x86 based system --- not using fpu.c"
fi
If you build Sage on bsd.math, it does report
"You do not appear to have an x86 based system --- not using fpu.c"
so clearly SYMPOW is mistaken, as bsd.math is an x86 system. So I'm left
wondering how on earth SYMPOW could have ever worked on any Intel based system
running OS X.
Unless OS X rounds by default to 64-bits, I can't understand how this would have
ever worked. Why was it not necessary to change the rounding behavior of an
Intel based OS X system?
Am I missing something?
BTW, I've fixed SYMPOW on OpenSolaris. I expect the fix will work on Solaris 10
and Cygwin too, though I'm a bit less sure about Cygwin. This should mean that
Sage 4.6 should pass all doc tests on Solaris x86 and OpenSolaris, as now all
the problems are solved.
Dave
--
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org