An optimisation that is legal for integer arithmetic may be illegal for floating point because
Answer: C
Correct answer: floating point operations are not associative
\( (a+b)+c \) and \( a+(b+c) \) can differ in floating point because each addition rounds, so reassociating changes the result. Integer arithmetic is exactly associative, so the same transformation is safe there. This is why compilers require an explicit fast-math flag before reassociating floating point.
Please log in or register to report this question.