Author: Maciej Fijalkowski <[email protected]>
Branch: numpy-refactor
Changeset: r57121:527742bb4035
Date: 2012-09-04 13:03 +0200
http://bitbucket.org/pypy/pypy/changeset/527742bb4035/
Log: scalars in ufuncs
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
@@ -247,10 +247,10 @@
def descr_mean(self, space, w_axis=None, w_out=None):
if space.is_w(w_axis, space.w_None):
- w_denom = space.wrap(support.product(self.shape))
+ w_denom = space.wrap(self.get_size())
else:
- axis = unwrap_axis_arg(space, len(self.shape), w_axis)
- w_denom = space.wrap(self.shape[axis])
+ axis = unwrap_axis_arg(space, len(self.get_shape()), w_axis)
+ w_denom = space.wrap(self.get_shape()[axis])
return space.div(self.descr_sum_promote(space, w_axis, w_out), w_denom)
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
@@ -209,6 +209,7 @@
return res
def do_axis_reduce(self, obj, dtype, axis, result):
+ xxx
from pypy.module.micronumpy.interp_numarray import AxisReduce
arr = AxisReduce(self.func, self.name, self.identity, obj.shape, dtype,
result, obj, axis)
@@ -251,15 +252,15 @@
else:
res_dtype = calc_dtype
if w_obj.is_scalar():
- xxx
- arr = self.func(calc_dtype, w_obj.value.convert_to(calc_dtype))
- if isinstance(out,Scalar):
- out.value = arr
- elif isinstance(out, BaseArray):
- out.fill(space, arr)
+ w_val = self.func(calc_dtype,
+ w_obj.get_scalar_value().convert_to(calc_dtype))
+ if out is None:
+ return w_val
+ if out.is_scalar():
+ out.set_scalar_value(w_val)
else:
- out = arr
- return space.wrap(out)
+ out.fill(space, w_val)
+ return out
shape = shape_agreement(space, w_obj.get_shape(), out)
return loop.call1(shape, self.func, self.name, calc_dtype, res_dtype,
w_obj, out)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit