[pypy-commit] pypy numpy-dtype: add abs

justinpeel noreply at buildbot.pypy.org
Tue Aug 23 08:49:28 CEST 2011


Author: Justin Peel <notmuchtotell at gmail.com>
Branch: numpy-dtype
Changeset: r46718:9e75642aab93
Date: 2011-08-23 00:52 -0600
http://bitbucket.org/pypy/pypy/changeset/9e75642aab93/

Log:	add abs

diff --git a/pypy/module/micronumpy/interp_numarray.py b/pypy/module/micronumpy/interp_numarray.py
--- a/pypy/module/micronumpy/interp_numarray.py
+++ b/pypy/module/micronumpy/interp_numarray.py
@@ -55,9 +55,9 @@
             return w_ufunc(space, self)
         return func_with_new_name(impl, "unaryop_%s_impl" % w_ufunc.__name__)
 
-    descr_pos = _unaryop_impl(interp_ufuncs.positive)
+    #descr_pos = _unaryop_impl(interp_ufuncs.positive)
     descr_neg = _unaryop_impl(interp_ufuncs.negative)
-    #descr_abs = _unaryop_impl(interp_ufuncs.absolute)
+    descr_abs = _unaryop_impl(interp_ufuncs.absolute)
 
     def _binop_impl(w_ufunc):
         def impl(self, space, w_other):
@@ -707,7 +707,7 @@
 
     #__pos__ = interp2app(BaseArray.descr_pos),
     __neg__ = interp2app(BaseArray.descr_neg),
-    #__abs__ = interp2app(BaseArray.descr_abs),
+    __abs__ = interp2app(BaseArray.descr_abs),
     #__add__ = interp2app(BaseArray.descr_add),
     #__sub__ = interp2app(BaseArray.descr_sub),
     #__mul__ = interp2app(BaseArray.descr_mul),
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
@@ -35,44 +35,45 @@
             return space.wrap(func(space.float_w(w_lhs), space.float_w(w_rhs)))
     return func_with_new_name(impl, "%s_dispatcher" % func.__name__)"""
 
-"""@ufunc
+ at ufunc
+ at specialize.argtype(0)
 def absolute(value):
     return abs(value)
 
- at ufunc2
-def add(lvalue, rvalue):
-    return lvalue + rvalue
+#@ufunc2
+#def add(lvalue, rvalue):
+#    return lvalue + rvalue
 
- at ufunc2
-def copysign(lvalue, rvalue):
-    return rfloat.copysign(lvalue, rvalue)
+#@ufunc2
+#def copysign(lvalue, rvalue):
+#    return rfloat.copysign(lvalue, rvalue)
 
- at ufunc2
-def divide(lvalue, rvalue):
-    return lvalue / rvalue
+#@ufunc2
+#def divide(lvalue, rvalue):
+#    return lvalue / rvalue
 
- at ufunc
-def exp(value):
-    try:
-        return math.exp(value)
-    except OverflowError:
-        return rfloat.INFINITY
+#@ufunc
+#def exp(value):
+#    try:
+#        return math.exp(value)
+#    except OverflowError:
+#        return rfloat.INFINITY
 
- at ufunc
-def fabs(value):
-    return math.fabs(value)
+#@ufunc
+#def fabs(value):
+#    return math.fabs(value)
 
- at ufunc2
-def maximum(lvalue, rvalue):
-    return max(lvalue, rvalue)
+#@ufunc2
+#def maximum(lvalue, rvalue):
+#    return max(lvalue, rvalue)
 
- at ufunc2
-def minimum(lvalue, rvalue):
-    return min(lvalue, rvalue)
+#@ufunc2
+#def minimum(lvalue, rvalue):
+#    return min(lvalue, rvalue)
 
- at ufunc2
-def multiply(lvalue, rvalue):
-    return lvalue * rvalue"""
+#@ufunc2
+#def multiply(lvalue, rvalue):
+#    return lvalue * rvalue
 
 # Used by numarray for __pos__. Not visible from numpy application space.
 @ufunc
@@ -83,59 +84,59 @@
 @specialize.argtype(0)
 def negative(value):
     return -value
-"""
- at ufunc
-def reciprocal(value):
-    if value == 0.0:
-        return rfloat.copysign(rfloat.INFINITY, value)
-    return 1.0 / value
 
- at ufunc2
-def subtract(lvalue, rvalue):
-    return lvalue - rvalue
+#@ufunc
+#def reciprocal(value):
+#    if value == 0.0:
+#        return rfloat.copysign(rfloat.INFINITY, value)
+#    return 1.0 / value
 
- at ufunc
-def floor(value):
-    return math.floor(value)
+#@ufunc2
+#def subtract(lvalue, rvalue):
+#    return lvalue - rvalue
 
- at ufunc
-def sign(value):
-    if value == 0.0:
-        return 0.0
-    return rfloat.copysign(1.0, value)
+#@ufunc
+#def floor(value):
+#    return math.floor(value)
 
- at ufunc
-def sin(value):
-    return math.sin(value)
+#@ufunc
+#def sign(value):
+#    if value == 0.0:
+#        return 0.0
+#    return rfloat.copysign(1.0, value)
 
- at ufunc
-def cos(value):
-    return math.cos(value)
+#@ufunc
+#def sin(value):
+#    return math.sin(value)
 
- at ufunc
-def tan(value):
-    return math.tan(value)
+#@ufunc
+#def cos(value):
+#    return math.cos(value)
 
- at ufunc2
-def power(lvalue, rvalue):
-    return math.pow(lvalue, rvalue)
+#@ufunc
+#def tan(value):
+#    return math.tan(value)
 
- at ufunc2
-def mod(lvalue, rvalue):
-    return math.fmod(lvalue, rvalue)
+#@ufunc2
+#def power(lvalue, rvalue):
+#    return math.pow(lvalue, rvalue)
 
- at ufunc
-def arcsin(value):
-    if value < -1.0 or  value > 1.0:
-        return rfloat.NAN
-    return math.asin(value)
+#@ufunc2
+#def mod(lvalue, rvalue):
+#    return math.fmod(lvalue, rvalue)
 
- at ufunc
-def arccos(value):
-    if value < -1.0 or  value > 1.0:
-        return rfloat.NAN
-    return math.acos(value)
+#@ufunc
+#def arcsin(value):
+#    if value < -1.0 or  value > 1.0:
+#        return rfloat.NAN
+#    return math.asin(value)
 
- at ufunc
-def arctan(value):
-    return math.atan(value)"""
+#@ufunc
+#def arccos(value):
+#    if value < -1.0 or  value > 1.0:
+#        return rfloat.NAN
+#    return math.acos(value)
+
+#@ufunc
+#def arctan(value):
+#    return math.atan(value)


More information about the pypy-commit mailing list