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