Author: Taavi Burns <taavi.bu...@gmail.com> Branch: numpy-ufuncs2 Changeset: r53486:71971e61f892 Date: 2012-03-13 13:32 -0700 http://bitbucket.org/pypy/pypy/changeset/71971e61f892/
Log: Added signbit 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 @@ -98,6 +98,7 @@ ("rad2deg", "degrees"), ("reciprocal", "reciprocal"), ("sign", "sign"), + ("signbit", "signbit"), ("sin", "sin"), ("sinh", "sinh"), ("subtract", "subtract"), 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 @@ -423,6 +423,7 @@ ("negative", "neg", 1), ("absolute", "abs", 1), ("sign", "sign", 1, {"promote_bools": True}), + ("signbit", "signbit", 1, {"bool_result": True}), ("reciprocal", "reciprocal", 1), ("fabs", "fabs", 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 @@ -172,6 +172,15 @@ assert a[0] == 1 assert a[1] == 0 + def test_signbit(self): + from _numpypy import signbit, copysign + import struct + + assert (signbit([0, 0.0, 1, 1.0, float('inf'), float('nan')]) == + [False, False, False, False, False, False]).all() + assert (signbit([-0, -0.0, -1, -1.0, float('-inf'), -float('nan'), float('-nan')]) == + [False, True, True, True, True, True, True]).all() + def test_reciporocal(self): from _numpypy import array, reciprocal 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 @@ -470,6 +470,10 @@ return 0.0 return rfloat.copysign(1.0, v) + @raw_unary_op + def signbit(self, v): + return rfloat.copysign(1.0, v) < 0.0 + @simple_unary_op def fabs(self, v): return math.fabs(v) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit