[Pyrex] special floats generate incorrect C code when used as compile-time constants
Stefan Behnel
stefan_ml at behnel.de
Sat Apr 26 00:26:55 CEST 2008
Hi,
Greg Ewing wrote:
> Stefan Behnel wrote:
>> As of 2.6, float('inf') and float('nan') will be guaranteed to work
>
> Does it also provide a way of testing whether a value
> is an inf or nan?
>
> I tried this on MacOSX using 2.3:
>
>>>> x = float('nan')
>>>> y = float('nan')
>>>> x == y
> True
>
> But isn't that wrong? Aren't nans supposed to compare
> unequal to anything else, including themselves? What
> does 2.6 do here?
That looks platform specific to me. At least in 2.5, I don't get that:
Python 2.5.1 (r251:54863, Mar 7 2008, 04:10:12)
[GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a = float('nan')
>>> b = float('nan')
>>> a == b
False
Same for the C code in Cython. That's why the test case doesn't check it:
http://hg.cython.org/cython-devel/file/02e2efe1bce5/tests/run/specialfloat.pyx
Stefan
More information about the Pyrex
mailing list