On 10/14/23 05:53, Bruno Haible wrote:

* Programs that need to distinguish QNaN and SNaN, and that do
   floating-point operations.
   In these cases the 'union' workaround is typically too clumsy.
   So, for this case, there is typically no good workaround.
   Example: Code that wants to rely on the FE_INVALID flag.

Yes, my impression is that signaling NaNs have never been that reliable.

The idea of signaling NaNs was introduced relatively late in the original IEEE-754 standardization effort, to pacify dissenters who wanted something like the reserved operands on the VAX.[1] (The VAX contingent was the major obstacle to IEEE-754.) W. Kahan later wrote that signaling NaNs "exist mainly for political reasons and are rarely used"[2], and he was pretty much on target.

PS. At a dinner with Kahan in 1980 I got into an argument with him about merits and drawbacks of the IEEE floating point design. I suppose it was an argument I lost, since I didn't get the job at Berkeley that I was applying for....

[1]: https://people.eecs.berkeley.edu/~wkahan/ieee754status/754story.html
[2]: https://people.eecs.berkeley.edu/~wkahan/ieee754status/IEEE754.PDF

Reply via email to