Author: Amaury Forgeot d'Arc <amaur...@gmail.com> Branch: Changeset: r52607:0f03693b05ac Date: 2012-02-18 16:24 +0100 http://bitbucket.org/pypy/pypy/changeset/0f03693b05ac/
Log: numpy: add ufunc for arccosh 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 @@ -67,6 +67,7 @@ ("arccos", "arccos"), ("arcsin", "arcsin"), ("arctan", "arctan"), + ("arccosh", "arccosh"), ("arcsinh", "arcsinh"), ("arctanh", "arctanh"), ("copysign", "copysign"), 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 @@ -439,6 +439,7 @@ ("cosh", "cosh", 1, {"promote_to_float": True}), ("tanh", "tanh", 1, {"promote_to_float": True}), ("arcsinh", "arcsinh", 1, {"promote_to_float": True}), + ("arccosh", "arccosh", 1, {"promote_to_float": True}), ("arctanh", "arctanh", 1, {"promote_to_float": True}), ]: self.add_ufunc(space, *ufunc_def) 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 @@ -345,6 +345,15 @@ assert math.asinh(v) == arcsinh(v) assert math.isnan(arcsinh(float("nan"))) + def test_arccosh(self): + import math + from _numpypy import arccosh + + for v in [1.0, 1.1, 2]: + assert math.acosh(v) == arccosh(v) + for v in [-1.0, 0, .99]: + assert math.isnan(arccosh(v)) + def test_arctanh(self): import math from _numpypy import arctanh 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 @@ -505,6 +505,12 @@ return math.asinh(v) @simple_unary_op + def arccosh(self, v): + if v < 1.0: + return rfloat.NAN + return math.acosh(v) + + @simple_unary_op def arctanh(self, v): if v == 1.0 or v == -1.0: return math.copysign(rfloat.INFINITY, v) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit