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