On Tuesday, 25 August 2015 at 21:21:59 UTC, Matthias Bentrup wrote:
On Tuesday, 25 August 2015 at 15:19:41 UTC, Márcio Martins wrote:

If you compile it with *GDC* it works fine. If you compile a port with clang, gcc or msvc, it works right as well. I suspect it will also work fine with LDC.

The same program "fails" in gcc too, if you use x87 math. Usually C compilers allow excess precision for intermediate results, because the extra precision seldom hurts and changing precision on x87 is very expensive (depends on the CPU, but it is more expensive than the trigonometric functions on some models).

That's because of floating point exception. It is very constraining for the hardware.

Reply via email to