On Friday, 18 December 2015 at 07:30:52 UTC, drug wrote:
What I mean about order of operations is that if you go
  a = b*a+c*c + e;
the compiler is free to rewrite that as
float __tmp0 = a*b;
float __tmp1 = c*c;
and then do either of
float __tmp2 = __tmp0+__tmp1;
a = __tmp2 + e;
OR
float __tmp2 = __tmp0+e;
a = __tmp2+__tmp1;

I see, thanks to all!

I don't think this can be right, unless you use some kind of fast-math optimizer.

But:

Modern C++ compilers try to support ieee754-2008, which is needed to get reproducible results. D is based on the older 1985 version, and there is no announced effort to make it modern.

Reply via email to