[Numpy-discussion] math range error with Masked Array
Joe Van Andel
vanandel at atd.ucar.edu
Wed Jun 6 12:50:50 EDT 2001
I'm trying to use the MA package for numeric computations.
Unfortunately, attempting to construct a masked array sometimes fails:
File "/usr/lib/python2.1/site-packages/MA/MA.py", line 1299, in
m = Numeric.less_equal(abs(d-value), atol+rtol*abs(value))
OverflowError: math range error
The odd thing is that the floating point calculations that produced the
input Numeric array didn't cause a math range error, but MA's attempt to
find the 'missing' values does cause a range error.
When I switched to Python2.1, I had to find and fix several overflow
problems that didn't cause exceptions under Python1.5. For example, I
had to use a "protected" exponentation routine to avoid overflow errors:
MIN_EXP = -745
MAX_EXP = 709
""" Protected Exponentiation calculation.
Avoid Overflow error on large negative or positive arguments
min_a = choose(less(a, MIN_EXP), (a, MIN_EXP))
return exp(choose(greater(min_a, MAX_EXP), (min_a, MAX_EXP)) )
I'm concerned that the math exception handling for Python2.1 under x86
Linux makes it hard to get my work done.
Any ideas on how to fix this error in MA?
(I already tried masked_values(values, missingValue,
rtol=1e-2,atol=1.e-4, savespace=1), which didn't help.)
National Center for Atmospheric Research
Internet: vanandel at ucar.edu
More information about the NumPy-Discussion