[pypy-commit] pypy numpypy-nditer: revert merge cruft

mattip noreply at buildbot.pypy.org
Thu Apr 17 15:02:13 CEST 2014


Author: Matti Picus <matti.picus at gmail.com>
Branch: numpypy-nditer
Changeset: r70700:71c0ca886656
Date: 2014-04-17 14:04 +0300
http://bitbucket.org/pypy/pypy/changeset/71c0ca886656/

Log:	revert merge cruft

diff --git a/pypy/module/micronumpy/iterators.py b/pypy/module/micronumpy/iterators.py
--- a/pypy/module/micronumpy/iterators.py
+++ b/pypy/module/micronumpy/iterators.py
@@ -42,6 +42,7 @@
 """
 from rpython.rlib import jit
 from pypy.module.micronumpy import support
+from pypy.module.micronumpy.strides import calc_strides
 from pypy.module.micronumpy.base import W_NDimArray
 
 
@@ -143,6 +144,39 @@
         self.array.setitem(self.offset, elem)
 
 
+class SliceIterator(ArrayIter):
+    def __init__(self, arr, strides, backstrides, shape, order="C",
+                    backward=False, dtype=None):
+        if dtype is None:
+            dtype = arr.implementation.dtype
+        self.dtype = dtype
+        self.arr = arr
+        if backward:
+            self.slicesize = shape[0]
+            self.gap = [support.product(shape[1:]) * dtype.elsize]
+            strides = strides[1:]
+            backstrides = backstrides[1:]
+            shape = shape[1:]
+            strides.reverse()
+            backstrides.reverse()
+            shape.reverse()
+            size = support.product(shape)
+        else:
+            shape = [support.product(shape)]
+            strides, backstrides = calc_strides(shape, dtype, order)
+            size = 1
+            self.slicesize = support.product(shape)
+            self.gap = strides
+
+        ArrayIter.__init__(self, arr.implementation, size, shape, strides, backstrides)
+
+    def getslice(self):
+        from pypy.module.micronumpy.concrete import SliceArray
+        retVal = SliceArray(self.offset, self.gap, self.backstrides,
+        [self.slicesize], self.arr.implementation, self.arr, self.dtype)
+        return retVal
+
+
 def AxisIter(array, shape, axis, cumulative):
     strides = array.get_strides()
     backstrides = array.get_backstrides()


More information about the pypy-commit mailing list