To: J3 J3/21-114 From: Robert Corbett Subject: IEEE 754 Liaison Report Date: 2021-February-22 ISO/IEC 60559, the ISO/IEC floating-point standard, was updated in May of 2020 to match the content of IEEE Std. 754-2019. Members of the LAPACK team would like to have support for the new versions of maximum and minimum added to languages as soon as possible. The way exceptional values were handled by max and min in the previous edition of the standard was determined to be less desirable than expected. The new edition of the standard replaced the old operations with new ones. The change is a problem for us, because the old versions of max and min are the basis for the functions IEEE_MAX_NUM, IEEE_MAX_NUM_MAG, IEEE_MIN_NUM, and IEEE_MIN_NUM_MAG. The definitions of those functions reference the text of the previous edition of the floating-point standard. That text no longer exists in the new edition. In Fortran 2018, a similar issue arose regarding the function IEEE_NEXT_AFTER. The function next_after in the original edition of the floating-point standard was replaced with the pair of functions next_down and next_up. Fortran 2018 still defines IEEE_NEXT_AFTER, but it also supports IEEE_NEXT_DOWN and IEEE_NEXT_UP. The definitions of the three functions do not reference the floating-point standard. A complicating factor is that some hardware includes hardware implementations of the old max and min operators. Sun's SPARC CPUs had them. The new operations can be implemented by short sequences of instructions on existing hardware, but they will not be as fast as single hardware instructions. One reason for wanting to update the reference to ISO/IEC 60559 to the latest edition is that the new edition fixed a few problems present in the previous edition. In particular, the comparison operations in the previous edition placed requirements on exception handling that could not be efficiently implemented. As a result, language implementations ignored those restrictions. The new edition relaxes the restrictions such that efficient code is also conforming code.