[Numpy-discussion] making the distinction between -0.0 and 0.0..

Robert Kern robert.kern@gmail....
Tue Sep 29 15:48:10 CDT 2009


On Tue, Sep 29, 2009 at 15:34, Christopher Barker <Chris.Barker@noaa.gov> wrote:
> Joe Kington wrote:
>> I just realized that what I'm doing won't work on older versions of
>> python, anyway...
>
> What I was looking for was which actual bit the sign bit is, as
> expressed as a native integer, so I can do a bitwise_and.
>
> But now that I think about it, I only need to test zero, not all
> numbers, so I should be able to do:
>
> def signbit(x):
>     if x < 0.0:
>         return True
>     elif x == 0.0:
>         if struct.pack('d',x) == struct.pack('d',-0.0):
>             return True
>     else
>         return False
>
>
> Fortunately, this isn't performance critical.

To speed it up some, precalculate the struct.pack('d', -0.0) constant
outside of the function.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
  -- Umberto Eco


More information about the NumPy-Discussion mailing list