Machine-translated by Google. Questions are authored in English.
Top

Discussion

An optimisation that is legal for integer arithmetic may be illegal for floating point because

  • A.the compiler cannot determine floating point types
  • B.floating point arithmetic is always slower to perform
  • C.floating point operations are not associative
  • D.floating point values cannot be held in registers

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.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.