[pypy-commit] pypy default: optimize numpy.ones a bit
alex_gaynor
noreply at buildbot.pypy.org
Thu Oct 27 19:49:51 CEST 2011
Author: Alex Gaynor <alex.gaynor at gmail.com>
Branch:
Changeset: r48533:e54c4fc626c7
Date: 2011-10-27 13:49 -0400
http://bitbucket.org/pypy/pypy/changeset/e54c4fc626c7/
Log: optimize numpy.ones a bit
diff --git a/pypy/module/micronumpy/interp_dtype.py b/pypy/module/micronumpy/interp_dtype.py
--- a/pypy/module/micronumpy/interp_dtype.py
+++ b/pypy/module/micronumpy/interp_dtype.py
@@ -108,6 +108,12 @@
def setitem_w(self, space, storage, i, w_item):
self.setitem(storage, i, self.unwrap(space, w_item))
+ def fill(self, storage, item, start, stop):
+ storage = self.unerase(storage)
+ item = self.unbox(item)
+ for i in xrange(start, stop):
+ storage[i] = item
+
@specialize.argtype(1)
def adapt_val(self, val):
return self.box(rffi.cast(TP.TO.OF, val))
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
@@ -565,8 +565,7 @@
arr = SingleDimArray(size, dtype=dtype)
one = dtype.adapt_val(1)
- for i in xrange(size):
- arr.dtype.setitem(arr.storage, i, one)
+ arr.dtype.fill(arr.storage, one, 0, size)
return space.wrap(arr)
BaseArray.typedef = TypeDef(
More information about the pypy-commit
mailing list