Peter Jeremy wrote:

> There are some gotchas here.  On an i387 in default (80-bit) mode, a
> local double variable may be 80-bits if kept in a register but 64-bits
> if written to memory.  This means the precision of working variables
> in a function can alternate between 64 and 80 bits depending on the
> code, optimisation level and whim of the compiler.  More precision is
> not always good.  This extra precision (and particularly the
> arbitrariness of its existence) can wreak havoc in a function that
> expects 'double' to be 64-bits.

(If I recall the story correctly...) Steve Leon (a linear algebraist) 
told of a piece of matlab code that was giving a certain result. 
However, when a print statement was inserted in the code to print out an 
intermediate result,  the function would give a different answer (much 
different, if I recall correctly).  Apparently it was really 
frustrating.  They finally concluded that the print statement caused a 
certain variable to be 64-bit instead of 80-bit, and that made all the 
difference.

Thanks,

Jason

-- 
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