Author: Maciej Fijalkowski <fij...@gmail.com> Branch: Changeset: r45784:4761f5600f29 Date: 2011-07-20 23:35 +0200 http://bitbucket.org/pypy/pypy/changeset/4761f5600f29/
Log: (chrisge) sin/cos/tan ufuncs 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 @@ -23,6 +23,9 @@ 'negative': 'interp_ufuncs.negative', 'reciprocal': 'interp_ufuncs.reciprocal', 'sign': 'interp_ufuncs.sign', + 'sin': 'interp_ufuncs.sin', + 'cos': 'interp_ufuncs.cos', + 'tan': 'interp_ufuncs.tan', } appleveldefs = { 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 @@ -74,3 +74,15 @@ if value == 0.0: return 0.0 return rfloat.copysign(1.0, value) + +@ufunc +def sin(value): + return math.sin(value) + +@ufunc +def cos(value): + return math.cos(value) + +@ufunc +def tan(value): + return math.tan(value) 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 @@ -133,3 +133,30 @@ except OverflowError: res = float('inf') assert b[i] == res + + def test_sin(self): + import math + from numpy import array, sin + + a = array([0, 1, 2, 3, math.pi, math.pi*1.5, math.pi*2]) + b = sin(a) + for i in range(len(a)): + assert b[i] == math.sin(a[i]) + + def test_cos(self): + import math + from numpy import array, cos + + a = array([0, 1, 2, 3, math.pi, math.pi*1.5, math.pi*2]) + b = cos(a) + for i in range(len(a)): + assert b[i] == math.cos(a[i]) + + def test_tan(self): + import math + from numpy import array, tan + + a = array([0, 1, 2, 3, math.pi, math.pi*1.5, math.pi*2]) + b = tan(a) + for i in range(len(a)): + assert b[i] == math.tan(a[i]) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit