Author: mattip Branch: numpypy-axisops Changeset: r50916:a1810346784a Date: 2011-12-27 22:46 +0200 http://bitbucket.org/pypy/pypy/changeset/a1810346784a/
Log: iterators, frames in place, but still not correct 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 @@ -756,15 +756,19 @@ def compute(self): result = W_NDimArray(self.size, self.shape, self.find_dtype()) shapelen = len(result.shape) - sig = self.find_sig() + #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) - si = axis_iter_from_arr(self, self.dim) + si = axis_iter_from_arr(self.values, self.dim) while not ri.done(): - frame = sig.create_frame(self, self.values, chunks = si.indices) - val = sig.eval(frame, self) + #frame = sig.create_frame(self.values, chunks = [si.indices]) + #Frame should be returning self.func applied to the axis starting at si.offset + frame = sig.create_frame(self.values, chunks = []) + val = sig.eval(frame, self.values).convert_to( self.find_dtype()) result.dtype.setitem(result.storage, ri.offset, val) ri = ri.next(shapelen) si = si.next(shapelen) + frame = frame.next return result diff --git a/pypy/module/micronumpy/signature.py b/pypy/module/micronumpy/signature.py --- a/pypy/module/micronumpy/signature.py +++ b/pypy/module/micronumpy/signature.py @@ -90,13 +90,11 @@ allnumbers.append(no) self.iter_no = no - def create_frame(self, arr, res_shape=None): - #def create_frame(self, arr, res_shape=None, chunks = []): + def create_frame(self, arr, res_shape=None, chunks = []): res_shape = res_shape or arr.shape iterlist = [] arraylist = [] - #self._create_iter(iterlist, arraylist, arr, res_shape, chunks) - self._create_iter(iterlist, arraylist, arr, res_shape, []) + self._create_iter(iterlist, arraylist, arr, res_shape, chunks) return NumpyEvalFrame(iterlist, arraylist) class ConcreteSignature(Signature): _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit