Author: Brian Kearns <[email protected]>
Branch:
Changeset: r69351:cd4420b9945f
Date: 2014-02-24 05:08 -0500
http://bitbucket.org/pypy/pypy/changeset/cd4420b9945f/
Log: remove some unnecessary code
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
@@ -90,19 +90,11 @@
obj_iter.next()
return out
-setslice_driver1 = jit.JitDriver(name='numpy_setslice1',
- greens = ['shapelen', 'dtype'],
- reds = 'auto')
-setslice_driver2 = jit.JitDriver(name='numpy_setslice2',
+setslice_driver = jit.JitDriver(name='numpy_setslice',
greens = ['shapelen', 'dtype'],
reds = 'auto')
def setslice(space, shape, target, source):
- if target.dtype.is_str_or_unicode():
- return setslice_build_and_convert(space, shape, target, source)
- return setslice_to(space, shape, target, source)
-
-def setslice_to(space, shape, target, source):
# note that unlike everything else, target and source here are
# array implementations, not arrays
target_iter = target.create_iter(shape)
@@ -110,22 +102,11 @@
dtype = target.dtype
shapelen = len(shape)
while not target_iter.done():
- setslice_driver1.jit_merge_point(shapelen=shapelen, dtype=dtype)
- target_iter.setitem(source_iter.getitem().convert_to(space, dtype))
- target_iter.next()
- source_iter.next()
- return target
-
-def setslice_build_and_convert(space, shape, target, source):
- # note that unlike everything else, target and source here are
- # array implementations, not arrays
- target_iter = target.create_iter(shape)
- source_iter = source.create_iter(shape)
- dtype = target.dtype
- shapelen = len(shape)
- while not target_iter.done():
- setslice_driver2.jit_merge_point(shapelen=shapelen, dtype=dtype)
- target_iter.setitem(dtype.build_and_convert(space,
source_iter.getitem()))
+ setslice_driver.jit_merge_point(shapelen=shapelen, dtype=dtype)
+ if dtype.is_str_or_unicode():
+ target_iter.setitem(dtype.coerce(space, source_iter.getitem()))
+ else:
+ target_iter.setitem(source_iter.getitem().convert_to(space, dtype))
target_iter.next()
source_iter.next()
return target
@@ -434,43 +415,21 @@
ri.next()
return res
-flatiter_setitem_driver1 = jit.JitDriver(name = 'numpy_flatiter_setitem1',
- greens = ['dtype'],
- reds = 'auto')
-
-flatiter_setitem_driver2 = jit.JitDriver(name = 'numpy_flatiter_setitem2',
+flatiter_setitem_driver = jit.JitDriver(name = 'numpy_flatiter_setitem',
greens = ['dtype'],
reds = 'auto')
def flatiter_setitem(space, arr, val, start, step, length):
dtype = arr.get_dtype()
- if dtype.is_str_or_unicode():
- return flatiter_setitem_build_and_convert(space, arr, val, start,
step, length)
- return flatiter_setitem_to(space, arr, val, start, step, length)
-
-def flatiter_setitem_to(space, arr, val, start, step, length):
- dtype = arr.get_dtype()
arr_iter = arr.create_iter()
val_iter = val.create_iter()
arr_iter.next_skip_x(start)
while length > 0:
- flatiter_setitem_driver1.jit_merge_point(dtype=dtype)
- arr_iter.setitem(val_iter.getitem().convert_to(space, dtype))
- # need to repeat i_nput values until all assignments are done
- arr_iter.next_skip_x(step)
- length -= 1
- val_iter.next()
- # WTF numpy?
- val_iter.reset()
-
-def flatiter_setitem_build_and_convert(space, arr, val, start, step, length):
- dtype = arr.get_dtype()
- arr_iter = arr.create_iter()
- val_iter = val.create_iter()
- arr_iter.next_skip_x(start)
- while length > 0:
- flatiter_setitem_driver2.jit_merge_point(dtype=dtype)
- arr_iter.setitem(dtype.build_and_convert(space, val_iter.getitem()))
+ flatiter_setitem_driver.jit_merge_point(dtype=dtype)
+ if dtype.is_str_or_unicode():
+ arr_iter.setitem(dtype.coerce(space, val_iter.getitem()))
+ else:
+ arr_iter.setitem(val_iter.getitem().convert_to(space, dtype))
# need to repeat i_nput values until all assignments are done
arr_iter.next_skip_x(step)
length -= 1
diff --git a/pypy/module/micronumpy/types.py b/pypy/module/micronumpy/types.py
--- a/pypy/module/micronumpy/types.py
+++ b/pypy/module/micronumpy/types.py
@@ -1744,23 +1744,6 @@
def bool(self, v):
return bool(self.to_str(v))
- def build_and_convert(self, space, mydtype, box):
- if isinstance(box, interp_boxes.W_StringBox):
- return box
- assert isinstance(box, interp_boxes.W_GenericBox)
- if box.get_dtype(space).is_str_or_unicode():
- arg = box.get_dtype(space).itemtype.to_str(box)
- else:
- w_arg = box.descr_str(space)
- arg = space.str_w(space.str(w_arg))
- arr = VoidBoxStorage(mydtype.size, mydtype)
- i = 0
- for i in range(min(len(arg), mydtype.size)):
- arr.storage[i] = arg[i]
- for j in range(i + 1, mydtype.size):
- arr.storage[j] = '\x00'
- return interp_boxes.W_StringBox(arr, 0, arr.dtype)
-
def fill(self, storage, width, box, start, stop, offset):
for i in xrange(start, stop, width):
self._store(storage, i, offset, box, width)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit