|
|
|
|
|
by nickelpro
722 days ago
|
|
If you're using floating point at all you have declared you don't care about determinism or absolute precision across platforms. Fast math is simply saying "I care even less than IEEE" This is perfectly appropriate in many settings, but _especially_ video games where such deterministic results are completely irrelevant. |
|
The perception of nondeterminism came specifically from x87, which had 80-bit native floating-point registers, which were different from every other platform's 64-bit default, and forcing values to 64-bit all the time cost performance, so compilers secretly turned data types to different ones when compiling for x87, therefore giving different results. It would be like if the compiler for ARM secretly changed every use of 'float' into 'double'.