On Sunday, 15 May 2016 at 21:01:14 UTC, Walter Bright wrote:
Err... these kind of problems only applies to D.

Nope. They occur with every floating point implementation in every programming language. FP math does not adhere to associative identities.

No. ONLY D give different results for the same pure function call because you bind the result to a "const float" rather than a "float".

Yes. Algorithms can break because of it.

Ironically, the identity is more likely to hold with D's extended precision for intermediate values than with other languages.

No, it is not more likely to hold with D's hazard game. I don't know of a single language that doesn't heed a request to truncate/round the mantissa if it provides the means to do it.

I care about algorithms working they way I designed them to work and what I have tested them for. If I request rounding to a 24 bit mantissa then I _expect_ the rounding to take place. And yes, it can break algorithms if you don't.

Reply via email to