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

Reply via email to