Remix.run Logo
sfpotter 4 days ago

None of this is contradictory.

1. Compiler optimizations can be disabled. If a compiler optimization violates IEEE754 and there is no way to disable it, this is a compiler bug and is understood as such.

2. This is as advertised and follows from IEEE754. Floating point operations aren't associative. You must be aware of the way they work in order to use them productively: this means understanding their limitations.

3. Again, as advertised. The rounding mode is part of the spec and can be controlled. Understand it, use it.