[pypy-commit] pypy default: sqrt ufunc
fijal
noreply at buildbot.pypy.org
Mon Nov 28 09:56:52 CET 2011
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch:
Changeset: r49883:ad86736e7b43
Date: 2011-11-28 10:54 +0200
http://bitbucket.org/pypy/pypy/changeset/ad86736e7b43/
Log: sqrt ufunc
diff --git a/pypy/module/micronumpy/__init__.py b/pypy/module/micronumpy/__init__.py
--- a/pypy/module/micronumpy/__init__.py
+++ b/pypy/module/micronumpy/__init__.py
@@ -49,6 +49,7 @@
("sign", "sign"),
("sin", "sin"),
("subtract", "subtract"),
+ ('sqrt', 'sqrt'),
("tan", "tan"),
]:
interpleveldefs[exposed] = "interp_ufuncs.get(space).%s" % impl
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
@@ -293,6 +293,9 @@
if not -1.0 < v < 1.0:
return rfloat.NAN
return math.atanh(v)
+ @unaryop
+ def sqrt(self, v):
+ return math.sqrt(v)
class IntegerArithmeticDtype(ArithmeticTypeMixin):
_mixin_ = True
diff --git a/pypy/module/micronumpy/interp_ufuncs.py b/pypy/module/micronumpy/interp_ufuncs.py
--- a/pypy/module/micronumpy/interp_ufuncs.py
+++ b/pypy/module/micronumpy/interp_ufuncs.py
@@ -319,6 +319,8 @@
("floor", "floor", 1, {"promote_to_float": True}),
("exp", "exp", 1, {"promote_to_float": True}),
+ ('sqrt', 'sqrt', 1, {'promote_to_float': True}),
+
("sin", "sin", 1, {"promote_to_float": True}),
("cos", "cos", 1, {"promote_to_float": True}),
("tan", "tan", 1, {"promote_to_float": 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
@@ -319,6 +319,12 @@
for v in [1.0, -1.0]:
assert arctanh(v) == math.copysign(float("inf"), v)
+ def test_sqrt(self):
+ from numpypy import sqrt
+ import math
+ assert (sqrt([1, 2, 3]) == [math.sqrt(1), math.sqrt(2),
+ math.sqrt(3)]).all()
+
def test_reduce_errors(self):
from numpypy import sin, add
More information about the pypy-commit
mailing list