Author: mattip
Branch: numpypy-axisops
Changeset: r50918:ff482782c5fe
Date: 2011-12-28 02:57 +0200
http://bitbucket.org/pypy/pypy/changeset/ff482782c5fe/
Log: bugfix, passes tests
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
@@ -738,7 +738,9 @@
shape=values.shape[0:dim] + values.shape[dim+1:len(values.shape)]
VirtualArray.__init__(self, name, shape, res_dtype)
self.values = values
- self.size = values.size
+ self.size = 1
+ for s in shape:
+ self.size *= s
self.ufunc = ufunc
self.res_dtype = res_dtype
self.dim = dim
@@ -758,16 +760,18 @@
def compute(self):
dtype = self.res_dtype
result = W_NDimArray(self.size, self.shape, dtype)
+ self.values = self.values.get_concrete()
shapelen = len(result.shape)
objlen = len(self.values.shape)
target_len = self.values.shape[self.dim]
#sig = self.find_sig(result.shape) ##Don't do this, it causes an
infinite recursion
sig = self.create_sig(result.shape)
- ri = ArrayIterator(self.size)
+ ri = ArrayIterator(result.size)
si = axis_iter_from_arr(self.values, self.dim)
while not ri.done():
chunks = []
- for i in range(objlen - 1, -1, -1):
+ #for i in range(objlen - 1, -1, -1):
+ for i in range(objlen):
if i==self.dim:
chunks.append((0, target_len, 1, target_len))
else:
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit