[Numpy-discussion] 2 bugs related to isinf and isfinite generate crazy warnings
Eric Firing
efiring@hawaii....
Thu Jun 3 12:13:49 CDT 2010
On 06/02/2010 03:24 PM, Charles R Harris wrote:
>
>
> On Wed, Jun 2, 2010 at 7:11 PM, Eric Firing <efiring@hawaii.edu
> <mailto:efiring@hawaii.edu>> wrote:
>
> http://www.mail-archive.com/numpy-discussion@scipy.org/msg23912.html
>
> On some systems--but evidently not for most numpy users, or there would
> have been a steady stream of screams--the appearance of np.inf in any
> call to np.isfinite or np.isinf yields this:
>
> In [1]:import numpy as np
>
> In [2]:np.isinf(np.inf)
> Warning: invalid value encountered in isinf
> Out[2]:True
>
>
> This generates streams of warnings if np.isinf or np.isfinite is applied
> to an array with many inf values.
>
> The problem is a combination of two bugs:
>
> 1) When building with setup.py, but perhaps not with scons (which I
> haven't tried yet), NPY_HAVE_DECL_ISFINITE and friends are never
> defined, even though they should be--this is all on ubuntu 10.4, in my
> case, and isfinite and isinf most definitely are in math.h. It looks to
> me like the only mechanism for defining these is in SConstruct.
(Already fixed by David C.)
>
> 2) So, with no access to the built-in isinf etc., npy_math.h falls back
> on the compact but slow macros that replace the much nicer ones that
> were in numpy a year or so ago. Here is the relevant part of
> npy_math.h:
>
> #ifndef NPY_HAVE_DECL_ISFINITE
> #define npy_isfinite(x) !npy_isnan((x) + (-x))
> #else
> #define npy_isfinite(x) isfinite((x))
> #endif
>
> #ifndef NPY_HAVE_DECL_ISINF
> #define npy_isinf(x) (!npy_isfinite(x) && !npy_isnan(x))
> #else
> #define npy_isinf(x) isinf((x))
> #endif
>
> isinf calls isfinite, and isfinite calls isnan(x-x). If x is inf, this
> generates a nan, so the return value is correct--but generating that nan
> set the INVALID flag, hence the warning.
>
> Sorry I don't have a patch to offer.
>
>
> Open a ticket. Since this looks fixable we should get it fixed for 1.5.
Done.
http://projects.scipy.org/numpy/ticket/1500
Eric
>
> Chuck
>
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
More information about the NumPy-Discussion
mailing list