Quiet NaNs (QNaNs) were introduced into the Floating Point Standard as a 
tool for applied numerical work.  That's why there are so many of them 
(Float64s have nearly 2^52 of them, Float32s have nearly 2^23 and Float16s 
have nearly 2^10 QNaNs).  AFAIK Julia and most other languages use one or 
two of each in most circumstances.  Half of the QNaNs are in some sense 
positive and the other half negative (their sign bits can be queried, even 
though they are not magnitudes).  While QNaNs are unordered by definition, 
they each have an embedded *payload:* an embedded integer value that exists 
to be set with information of reflective value. And then to carry it, 
propagating through the rest of the numerical work so it becomes available 
for use by the designer or investigator.

The QNaN module with introduction is here: QNaN.jl 
<https://github.com/J-Sarnoff/QNaN.jl>.  It asks for v0.4-any; there is no 
clear reason not to run it under v0.3.10 -- I have not.




Reply via email to