Difference between revisions of "REAL 64 (issues)"
m |
|||
Line 1: | Line 1: | ||
[[Category:ELKS]] | [[Category:ELKS]] | ||
This page describes issues with the current implementation of REAL_64 in comparison to the [[REAL_64 (interface)|interace description]]. | This page describes issues with the current implementation of REAL_64 in comparison to the [[REAL_64 (interface)|interace description]]. | ||
+ | |||
+ | ===is_equal and NaN=== | ||
+ | |||
+ | The floating point standard says that 'NaN = NaN' is false. But in order to uphold the postcondition of 'NaN.twin' which says that 'Result.is_equal (Current)' the comparision with 'is_eqaul' should yield true. | ||
+ | |||
+ | At the moment 'is_equal' for reals is optimized in the compiler and is replaced by '=' and thus the postcondition of 'twin' is violated. |
Revision as of 09:24, 17 November 2006
This page describes issues with the current implementation of REAL_64 in comparison to the interace description.
is_equal and NaN
The floating point standard says that 'NaN = NaN' is false. But in order to uphold the postcondition of 'NaN.twin' which says that 'Result.is_equal (Current)' the comparision with 'is_eqaul' should yield true.
At the moment 'is_equal' for reals is optimized in the compiler and is replaced by '=' and thus the postcondition of 'twin' is violated.