On Wed, May 1, 2013 at 6:24 PM, Matthew Brett <matthew.brett@gmail.com> wrote:
HI,
On Wed, May 1, 2013 at 9:09 AM, Yaroslav Halchenko <lists@onerussian.com> wrote:
3. they are identical on other architectures (e.g. amd64)
To me that is surprising. I would have guessed that the order is the same on 32 and 64 bit, but something about the precision of intermediate operations is different. I don't know enough about amd64 to guess what that could be. Bradley's suggestion seems kind of reasonable but it's strange that numpy should use intel-80 bit intermediate values differently for 32 and 64 bit.
"numpy" isn't doing anything different between the two. numpy generates the same C code. The C compiler may be generating different machine instructions for that code on different architectures, even closely related ones like i386 and amd64. Different optimization flags and compiler versions will probably also affect this, not just the target architecture. It's possible that those are actually the source of this observation. -- Robert Kern