Author: Taavi Burns <taavi.bu...@gmail.com> Branch: numpy-ufuncs2 Changeset: r53444:9f1ca7524787 Date: 2012-03-13 01:48 -0700 http://bitbucket.org/pypy/pypy/changeset/9f1ca7524787/
Log: Adding isneginf and isposinf 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 @@ -109,6 +109,8 @@ ('bitwise_not', 'invert'), ('isnan', 'isnan'), ('isinf', 'isinf'), + ('isneginf', 'isneginf'), + ('isposinf', 'isposinf'), ('logical_and', 'logical_and'), ('logical_xor', 'logical_xor'), ('logical_not', 'logical_not'), 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 @@ -404,6 +404,8 @@ ("greater_equal", "ge", 2, {"comparison_func": True}), ("isnan", "isnan", 1, {"bool_result": True}), ("isinf", "isinf", 1, {"bool_result": True}), + ("isneginf", "isneginf", 1, {"bool_result": True}), + ("isposinf", "isposinf", 1, {"bool_result": True}), ('logical_and', 'logical_and', 2, {'comparison_func': True, 'identity': 1}), 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 @@ -556,6 +556,19 @@ assert (isinf(array([0.2, float('inf'), float('nan')])) == [False, True, False]).all() assert isinf(array([0.2])).dtype.kind == 'b' + def test_isposinf_isneginf(self): + from _numpypy import isneginf, isposinf + assert isposinf(float('inf')) + assert not isposinf(float('-inf')) + assert not isposinf(float('nan')) + assert not isposinf(0) + assert not isposinf(0.0) + assert isneginf(float('-inf')) + assert not isneginf(float('inf')) + assert not isneginf(float('nan')) + assert not isneginf(0) + assert not isneginf(0.0) + def test_logical_ops(self): from _numpypy import logical_and, logical_or, logical_xor, logical_not 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 @@ -155,6 +155,14 @@ def isinf(self, v): return False + @raw_unary_op + def isneginf(self, v): + return False + + @raw_unary_op + def isposinf(self, v): + return False + @raw_binary_op def eq(self, v1, v2): return v1 == v2 @@ -574,6 +582,14 @@ def isinf(self, v): return rfloat.isinf(v) + @raw_unary_op + def isneginf(self, v): + return rfloat.isinf(v) and v < 0 + + @raw_unary_op + def isposinf(self, v): + return rfloat.isinf(v) and v > 0 + @simple_unary_op def radians(self, v): return v * degToRad _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit