[Numpy-discussion] ieeespecial

Darren Dale dd55 at cornell.edu
Sun Oct 10 13:57:43 CDT 2004

On Sunday 10 October 2004 03:47 pm, Darren Dale wrote:
> Hello,
> I am getting invalid numeric result exceptions when dividing a complex
> array by zero. Is this the desired behavior?
> Also, while trying to find a way around the above problem, I ran
> ieeespecial.test and got the following output. I am running numarray 1.1 on
> python 2.3.3. Todd, this might be correlated with the numerix package in
> matplotlib. I tried importing numarray and ieeespecial without matplotlib
> and the ieeespecial.test was successful.

On a related note, ieeespecial.getnan appears to be incompatible with complex 
arrays, see below. I didnt mention in my last email that I built numarray for 
my existing blas/lapack libraries, will this change the behavior on my system 
from the default?


>>> from numarray import *
>>> from numarray.ieeespecial import *
>>> b=arange(10,typecode=Complex64)
>>> a=b/0
Warning: Encountered invalid numeric result(s)  in divide
>>> a
array([              nan             +nanj,
                     nan             +nanj,
                     nan             +nanj,
                     nan             +nanj,
                     nan             +nanj,
                     nan             +nanj,
                     nan             +nanj,
                     nan             +nanj,
                     nan             +nanj,
                     nan             +nanj])
>>> getnan(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/lib/python2.3/site-packages/numarray/ieeespecial.py", line 117, 
    return _spec.index(a, _spec.NAN)
  File "/usr/lib/python2.3/site-packages/numarray/ieeespecial.py", line 95, in 
    return _na.nonzero(mask(a, msk))
  File "/usr/lib/python2.3/site-packages/numarray/ieeespecial.py", line 87, in 
    f = _na.ieeemask(a, m)
  File "/usr/lib/python2.3/site-packages/numarray/ufunc.py", line 883, in 
    mode, win1, win2, wout, cfunc, ufargs = \
  File "/usr/lib/python2.3/site-packages/numarray/ufunc.py", line 929, in 
    convtype1, convtype2, outtype, ucfunc \
  File "/usr/lib/python2.3/site-packages/numarray/ufunc.py", line 471, in 
    newInputSignature = (self._typePromoter(intype, atypelist),)*2
  File "/usr/lib/python2.3/site-packages/numarray/ufunc.py", line 498, in 
    raise TypeError("unable to find type to promote to")
TypeError: unable to find type to promote to

>>> getnan(a.real)
(array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]),)

More information about the Numpy-discussion mailing list