STINNER Victor <[EMAIL PROTECTED]> added the comment:
About -O0 vs -O1, I think that I understood (by reading the
assembler).
pseudocode of the -O0 version:
while (....)
{
load x from the stack
x = x * ... + ...
write x to the stack
}
pseudocode of the -O1 version:
while (....)
{
x = x * ... + ...
}
Intel uses 80 bits float in internals, but load/store uses 64 bits
float. Load/store looses least significant bits.
Hey, floating point numbers are funny :-)
---
Python 2.5.1 (r251:54863, Jul 31 2008, 23:17:40)
>>> 1e16 + 2.999
10000000000000002.0
>>> 1e16 + 2.9999
10000000000000004.0
Same result with python 2.7/3.1.
_______________________________________
Python tracker <[EMAIL PROTECTED]>
<http://bugs.python.org/issue3166>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com