[Numpy-discussion] What is the sign of nan?

Charles R Harris charlesr.harris at gmail.com
Tue Sep 30 08:17:10 EDT 2008


On Tue, Sep 30, 2008 at 5:10 AM, Pete Forman <pete.forman at westerngeco.com>wrote:

> I've seen no mention in this thread of IEEE Std 754-2008 which was
> published last month.  minNum(x, y) and maxNum(x, y) return a
> floating-point number if the other argument is NaN.
>
> The OP's question is about the sign of NaN.  In 754r it can be tested,
> copied, etc.  Operations involving NaNs propagate the payload but not
> the sign bit AFAIK.


OK, here is what is looks like to me at the moment given that numpy requires
an IEEE754 machine:


   - We need a reliable value for NAN. This is perhaps best done by using a
   union and explicitly twiddling the bits depending on the endian choice of
   the architecture. For architectures with foobar extended precision we don't
   worry about supporting the extended precision. The result can be tested,
   perhaps when numpy is loaded. We could possibly get the value from python.
   What happens to PPC?
   - Max/min follow the IEEE standard. Given a choice of nan/non-nan, return
   non-nan. This can be extended to complex numbers where the choice is based
   on the real parts unless they are equal or both nans, in which case the
   decision is made on the imaginary parts.
   - Signbit returns the value of the signbit function, but nonzero values
   are set to 1.
   - I am unsure of sign. Should it return signed zeros? Should it return
   nan for nan or return the sign of the nan? I am inclined towards returning
   nan.

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20080930/645a34b1/attachment.html>


More information about the NumPy-Discussion mailing list