Author: mattip <[email protected]>
Branch:
Changeset: r75132:035393735c13
Date: 2014-12-28 17:36 +0200
http://bitbucket.org/pypy/pypy/changeset/035393735c13/
Log: test, fix overflow on abs(complex), we have no np.seterr ->
RuntimeWarning yet
diff --git a/pypy/module/micronumpy/test/test_complex.py
b/pypy/module/micronumpy/test/test_complex.py
--- a/pypy/module/micronumpy/test/test_complex.py
+++ b/pypy/module/micronumpy/test/test_complex.py
@@ -478,6 +478,15 @@
for i in range(4):
assert c[i] == max(a[i], b[i])
+
+ def test_abs_overflow(self):
+ from numpy import array, absolute, isinf
+ a = array(complex(1.5e308,1.5e308))
+ # Prints a RuntimeWarning, but does not raise
+ b = absolute(a)
+ assert isinf(b)
+
+
def test_basic(self):
import sys
from numpy import (dtype, add, array, dtype,
diff --git a/pypy/module/micronumpy/types.py b/pypy/module/micronumpy/types.py
--- a/pypy/module/micronumpy/types.py
+++ b/pypy/module/micronumpy/types.py
@@ -1195,7 +1195,11 @@
@complex_to_real_unary_op
def abs(self, v):
- return rcomplex.c_abs(v[0], v[1])
+ try:
+ return rcomplex.c_abs(v[0], v[1])
+ except OverflowError:
+ # warning ...
+ return rfloat.INFINITY
@raw_unary_op
def isnan(self, v):
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit