Author: mattip <[email protected]>
Branch: str-dtype-improvement
Changeset: r62368:38af381ec596
Date: 2013-03-15 19:36 -0700
http://bitbucket.org/pypy/pypy/changeset/38af381ec596/
Log: reuse setslice, remove code duplication
diff --git a/pypy/module/micronumpy/arrayimpl/concrete.py
b/pypy/module/micronumpy/arrayimpl/concrete.py
--- a/pypy/module/micronumpy/arrayimpl/concrete.py
+++ b/pypy/module/micronumpy/arrayimpl/concrete.py
@@ -279,11 +279,12 @@
return ArrayBuffer(self)
def astype(self, space, dtype):
+ new_arr = W_NDimArray.from_shape(self.get_shape(), dtype)
if dtype.is_str_or_unicode():
raise OperationError(space.w_NotImplementedError, space.wrap(
- "astype(%s) not implemented yet" % dtype))
- new_arr = W_NDimArray.from_shape(self.get_shape(), dtype)
- loop.copy_from_to(self, new_arr.implementation, dtype)
+ "astype(%s) not implemented yet" % self.dtype))
+ else:
+ loop.setslice(new_arr.get_shape(), new_arr.implementation, self)
return new_arr
class ConcreteArrayNotOwning(BaseConcreteArray):
diff --git a/pypy/module/micronumpy/loop.py b/pypy/module/micronumpy/loop.py
--- a/pypy/module/micronumpy/loop.py
+++ b/pypy/module/micronumpy/loop.py
@@ -458,18 +458,6 @@
val_arr.descr_getitem(space, w_idx))
iter.next()
-copy_from_to_driver = jit.JitDriver(greens = ['dtype'],
- reds = 'auto')
-
-def copy_from_to(from_, to, dtype):
- from_iter = from_.create_iter()
- to_iter = to.create_iter()
- while not from_iter.done():
- copy_from_to_driver.jit_merge_point(dtype=dtype)
- to_iter.setitem(from_iter.getitem().convert_to(dtype))
- to_iter.next()
- from_iter.next()
-
byteswap_driver = jit.JitDriver(greens = ['dtype'],
reds = 'auto')
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit