Author: Alex Gaynor <[email protected]>
Branch: numpy-dtype-alt
Changeset: r46648:bb4ae3cd1e17
Date: 2011-08-19 13:28 -0500
http://bitbucket.org/pypy/pypy/changeset/bb4ae3cd1e17/

Log:    It translates. There are bugs.

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
@@ -16,7 +16,7 @@
 numpy_driver = jit.JitDriver(greens = ['signature'],
                              reds = ['result_size', 'i', 'self', 'result'])
 all_driver = jit.JitDriver(greens=['signature'], reds=['i', 'size', 'self', 
'dtype'])
-any_driver = jit.JitDriver(greens=['signature'], reds=['i', 'size', 'self'])
+any_driver = jit.JitDriver(greens=['signature'], reds=['i', 'size', 'self', 
'dtype'])
 slice_driver1 = jit.JitDriver(greens=['signature'], reds=['i', 'j', 'step', 
'stop', 'source', 'dest'])
 slice_driver2 = jit.JitDriver(greens=['signature'], reds=['i', 'j', 'step', 
'stop', 'source', 'dest'])
 
@@ -85,14 +85,14 @@
 
     def _reduce_sum_prod_impl(op_name, init):
         reduce_driver = jit.JitDriver(greens=['signature'],
-                         reds = ['i', 'size', 'self', 'result'])
+                         reds = ['i', 'size', 'self', 'result', 'res_dtype'])
 
         def loop(self, res_dtype, result, size):
             i = 0
             while i < size:
                 reduce_driver.jit_merge_point(signature=self.signature,
-                                              self=self, size=size, i=i,
-                                              result=result)
+                                              self=self, res_dtype=res_dtype,
+                                              size=size, i=i, result=result)
                 result = getattr(res_dtype, op_name)(result, self.eval(i))
                 i += 1
             return result
@@ -104,14 +104,14 @@
 
     def _reduce_max_min_impl(op_name):
         reduce_driver = jit.JitDriver(greens=['signature'],
-                         reds = ['i', 'size', 'self', 'result'])
+                         reds = ['i', 'size', 'self', 'result', 'dtype'])
         def loop(self, result, size):
             i = 1
             dtype = self.find_dtype()
             while i < size:
                 reduce_driver.jit_merge_point(signature=self.signature,
-                                              self=self, size=size, i=i,
-                                              result=result)
+                                              self=self, dtype=dtype,
+                                              size=size, i=i, result=result)
                 result = getattr(dtype, op_name)(result, self.eval(i))
                 i += 1
             return result
@@ -127,7 +127,7 @@
 
     def _reduce_argmax_argmin_impl(op_name):
         reduce_driver = jit.JitDriver(greens=['signature'],
-                         reds = ['i', 'size', 'result', 'self', 'cur_best'])
+                         reds = ['i', 'size', 'result', 'self', 'cur_best', 
'dtype'])
         def loop(self, size):
             result = 0
             cur_best = self.eval(0)
@@ -135,8 +135,9 @@
             dtype = self.find_dtype()
             while i < size:
                 reduce_driver.jit_merge_point(signature=self.signature,
-                                              self=self, size=size, i=i,
-                                              result=result, cur_best=cur_best)
+                                              self=self, dtype=dtype,
+                                              size=size, i=i, result=result,
+                                              cur_best=cur_best)
                 new_best = getattr(dtype, op_name)(cur_best, self.eval(i))
                 if dtype.ne(new_best, cur_best):
                     result = i
@@ -170,7 +171,7 @@
         dtype = self.find_dtype()
         i = 0
         while i < size:
-            any_driver.jit_merge_point(signature=self.signature, self=self, 
size=size, i=i)
+            any_driver.jit_merge_point(signature=self.signature, self=self, 
size=size, dtype=dtype, i=i)
             if dtype.bool(self.eval(i)):
                 return True
             i += 1
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to