[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