Author: Maciej Fijalkowski <[email protected]>
Branch:
Changeset: r49887:f8cc091116a7
Date: 2011-11-28 12:18 +0200
http://bitbucket.org/pypy/pypy/changeset/f8cc091116a7/
Log: merge
diff --git a/pypy/module/micronumpy/interp_dtype.py
b/pypy/module/micronumpy/interp_dtype.py
--- a/pypy/module/micronumpy/interp_dtype.py
+++ b/pypy/module/micronumpy/interp_dtype.py
@@ -295,7 +295,10 @@
return math.atanh(v)
@unaryop
def sqrt(self, v):
- return math.sqrt(v)
+ try:
+ return math.sqrt(v)
+ except ValueError:
+ return rfloat.NAN
class IntegerArithmeticDtype(ArithmeticTypeMixin):
_mixin_ = True
diff --git a/pypy/module/micronumpy/test/test_ufuncs.py
b/pypy/module/micronumpy/test/test_ufuncs.py
--- a/pypy/module/micronumpy/test/test_ufuncs.py
+++ b/pypy/module/micronumpy/test/test_ufuncs.py
@@ -320,10 +320,15 @@
assert arctanh(v) == math.copysign(float("inf"), v)
def test_sqrt(self):
+ import math
from numpypy import sqrt
- import math
- assert (sqrt([1, 2, 3]) == [math.sqrt(1), math.sqrt(2),
- math.sqrt(3)]).all()
+
+ nan, inf = float("nan"), float("inf")
+ data = [1, 2, 3, inf]
+ results = [math.sqrt(1), math.sqrt(2), math.sqrt(3), inf]
+ assert (sqrt(data) == results).all()
+ assert math.isnan(sqrt(-1))
+ assert math.isnan(sqrt(nan))
def test_reduce_errors(self):
from numpypy import sin, add
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit