[pypy-commit] pypy numpy-speed: update nditer to use iter states

bdkearns noreply at buildbot.pypy.org
Fri Apr 18 04:50:31 CEST 2014


Author: Brian Kearns <bdkearns at gmail.com>
Branch: numpy-speed
Changeset: r70745:80dd8d52084e
Date: 2014-04-17 22:38 -0400
http://bitbucket.org/pypy/pypy/changeset/80dd8d52084e/

Log:	update nditer to use iter states

diff --git a/pypy/module/micronumpy/nditer.py b/pypy/module/micronumpy/nditer.py
--- a/pypy/module/micronumpy/nditer.py
+++ b/pypy/module/micronumpy/nditer.py
@@ -27,16 +27,17 @@
 
     def __init__(self, it, op_flags):
         self.it = it
+        self.st = it.reset()
         self.op_flags = op_flags
 
     def done(self):
-        return self.it.done()
+        return self.it.done(self.st)
 
     def next(self):
-        self.it.next()
+        self.st = self.it.next(self.st)
 
     def getitem(self, space, array):
-        return self.op_flags.get_it_item[self.index](space, array, self.it)
+        return self.op_flags.get_it_item[self.index](space, array, self.it, self.st)
 
     def setitem(self, space, array, val):
         xxx
@@ -89,13 +90,13 @@
         self.get_it_item = (get_readonly_item, get_readonly_slice)
 
 
-def get_readonly_item(space, array, it):
-    return space.wrap(it.getitem())
+def get_readonly_item(space, array, it, st):
+    return space.wrap(it.getitem(st))
 
 
-def get_readwrite_item(space, array, it):
+def get_readwrite_item(space, array, it, st):
     #create a single-value view (since scalars are not views)
-    res = SliceArray(it.array.start + it.offset, [0], [0], [1], it.array, array)
+    res = SliceArray(it.array.start + st.offset, [0], [0], [1], it.array, array)
     #it.dtype.setitem(res, 0, it.getitem())
     return W_NDimArray(res)
 


More information about the pypy-commit mailing list