[pypy-commit] pypy numpy_broadcast: Fixed compiling of W_Broadcast

Sergey Matyunin pypy.commits at gmail.com
Sun Apr 17 10:06:37 EDT 2016


Author: Sergey Matyunin <sbmatyunin at gmail.com>
Branch: numpy_broadcast
Changeset: r83710:7680be59c5aa
Date: 2016-04-08 11:38 +0200
http://bitbucket.org/pypy/pypy/changeset/7680be59c5aa/

Log:	Fixed compiling of W_Broadcast
	-fixed tuple conversion
	-removed non-rpython reduce() call

diff --git a/pypy/module/micronumpy/broadcast.py b/pypy/module/micronumpy/broadcast.py
--- a/pypy/module/micronumpy/broadcast.py
+++ b/pypy/module/micronumpy/broadcast.py
@@ -1,10 +1,9 @@
-import operator
-
 import pypy.module.micronumpy.constants as NPY
 from nditer import ConcreteIter, parse_op_flag, parse_op_arg
 from pypy.interpreter.error import OperationError
 from pypy.interpreter.gateway import interp2app
 from pypy.interpreter.typedef import TypeDef, GetSetProperty
+from pypy.module.micronumpy import support
 from pypy.module.micronumpy.base import W_NDimArray, convert_to_array, W_NumpyObject
 from rpython.rlib import jit
 from strides import calculate_broadcast_strides, shape_agreement_multiple
@@ -27,12 +26,13 @@
         self.op_flags = parse_op_arg(space, 'op_flags', space.w_None,
                                      len(self.seq), parse_op_flag)
 
-        self.shape = tuple(shape_agreement_multiple(space, self.seq, shape=None))
+        self.shape = shape_agreement_multiple(space, self.seq, shape=None)
         self.order = NPY.CORDER
 
         self.iters = []
         self.index = 0
-        self.size = reduce(operator.mul, self.shape, 1)
+
+        self.size = support.product(self.shape)
         for i in range(len(self.seq)):
             it = self.get_iter(space, i)
             it.contiguous = False
@@ -64,7 +64,7 @@
         return space.wrap(self)
 
     def descr_get_shape(self, space):
-        return space.wrap(self.shape)
+        return space.newtuple([space.wrap(i) for i in self.shape])
 
     def descr_get_size(self, space):
         return space.wrap(self.size)


More information about the pypy-commit mailing list