Author: Romain Guillebert <romain...@gmail.com> Branch: object-dtype Changeset: r75540:7cbb4af9b24f Date: 2015-01-26 17:56 +0100 http://bitbucket.org/pypy/pypy/changeset/7cbb4af9b24f/
Log: Add space everywhere diff --git a/pypy/module/micronumpy/arrayops.py b/pypy/module/micronumpy/arrayops.py --- a/pypy/module/micronumpy/arrayops.py +++ b/pypy/module/micronumpy/arrayops.py @@ -192,7 +192,7 @@ def count_nonzero(space, w_obj): - return space.wrap(loop.count_all_true(convert_to_array(space, w_obj))) + return space.wrap(loop.count_all_true(space, convert_to_array(space, w_obj))) def choose(space, w_arr, w_choices, w_out, w_mode): 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 @@ -268,10 +268,10 @@ out_indices = out_iter.indices(out_state) if out_indices[axis] == 0: if identity is not None: - w_val = func(dtype, identity, w_val) + w_val = func(space, dtype, identity, w_val) else: cur = temp_iter.getitem(temp_state) - w_val = func(dtype, cur, w_val) + w_val = func(space, dtype, cur, w_val) out_iter.setitem(out_state, w_val) out_state = out_iter.next(out_state) @@ -288,7 +288,7 @@ greens = ['shapelen', 'dtype'], reds = 'auto') - def argmin_argmax(arr): + def argmin_argmax(space, arr): result = 0 idx = 1 dtype = arr.get_dtype() @@ -299,8 +299,8 @@ while not iter.done(state): arg_driver.jit_merge_point(shapelen=shapelen, dtype=dtype) w_val = iter.getitem(state) - new_best = getattr(dtype.itemtype, op_name)(cur_best, w_val) - if dtype.itemtype.ne(new_best, cur_best): + new_best = getattr(dtype.itemtype, op_name)(space, cur_best, w_val) + if dtype.itemtype.ne(space, new_best, cur_best): result = idx cur_best = new_best state = iter.next(state) @@ -379,9 +379,9 @@ state = iter.next(state) return s -def count_all_true(arr): +def count_all_true(space, arr): if arr.is_scalar(): - return arr.get_dtype().itemtype.bool(arr.get_scalar_value()) + return arr.get_dtype().itemtype.bool(space, arr.get_scalar_value()) else: return count_all_true_concrete(arr.implementation) @@ -662,12 +662,12 @@ arr_state = arr_iter.next(arr_state) if min_iter is not None: w_min = min_iter.getitem(min_state).convert_to(space, dtype) - if dtype.itemtype.lt(w_v, w_min): + if dtype.itemtype.lt(space, w_v, w_min): w_v = w_min min_state = min_iter.next(min_state) if max_iter is not None: w_max = max_iter.getitem(max_state).convert_to(space, dtype) - if dtype.itemtype.gt(w_v, w_max): + if dtype.itemtype.gt(space, w_v, w_max): w_v = w_max max_state = max_iter.next(max_state) out_iter.setitem(out_state, w_v) @@ -750,7 +750,7 @@ last_key_val = key_iter.getitem(key_state) while not key_iter.done(key_state): key_val = key_iter.getitem(key_state) - if dtype.itemtype.lt(last_key_val, key_val): + if dtype.itemtype.lt(space, last_key_val, key_val): max_idx = size else: min_idx = 0 @@ -760,7 +760,7 @@ binsearch_driver.jit_merge_point(dtype=dtype) mid_idx = min_idx + ((max_idx - min_idx) >> 1) mid_val = arr.getitem(space, [mid_idx]).convert_to(space, dtype) - if op(mid_val, key_val): + if op(space, mid_val, key_val): min_idx = mid_idx + 1 else: max_idx = mid_idx diff --git a/pypy/module/micronumpy/ndarray.py b/pypy/module/micronumpy/ndarray.py --- a/pypy/module/micronumpy/ndarray.py +++ b/pypy/module/micronumpy/ndarray.py @@ -1068,7 +1068,7 @@ raise oefmt(space.w_NotImplementedError, '%s not implemented for %s', op_name, self.get_dtype().get_name()) - return space.wrap(getattr(loop, op_name)(self)) + return space.wrap(getattr(loop, op_name)(space, self)) return func_with_new_name(impl, "reduce_%s_impl" % op_name) descr_argmax = _reduce_argmax_argmin_impl("max") 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 @@ -44,10 +44,10 @@ def complex_unary_op(func): specialize.argtype(1)(func) @functools.wraps(func) - def dispatcher(self, v): + def dispatcher(self, space, v): return self.box_complex( *func( - self, + self, space, self.for_computation(self.unbox(v)) ) ) @@ -308,7 +308,7 @@ @raw_unary_op def rint(self, space, v): float64 = Float64() - return float64.rint(float64.box(v)) + return float64.rint(space, float64.box(v)) class Bool(BaseType, Primitive): T = lltype.Bool @@ -513,7 +513,7 @@ return ~v @specialize.argtype(1) - def reciprocal(self, v): + def reciprocal(self, space, v): raw = self.for_computation(self.unbox(v)) ans = 0 if raw == 0: @@ -1268,13 +1268,13 @@ b = self._bool(v2) return (not b and a) or (not a and b) - def min(self, v1, v2): - if self.le(v1, v2) or self.isnan(v1): + def min(self, space, v1, v2): + if self.le(space, v1, v2) or self.isnan(space, v1): return v1 return v2 - def max(self, v1, v2): - if self.ge(v1, v2) or self.isnan(v1): + def max(self, space, v1, v2): + if self.ge(space, v1, v2) or self.isnan(space, v1): return v1 return v2 @@ -1300,14 +1300,14 @@ if y[0] == 1: return v1 if y[0] == 2: - return self.mul(v1, v1) + return self.mul(space, v1, v1) x = self.for_computation(self.unbox(v1)) if x[0] == 0 and x[1] == 0: if y[0] > 0 and y[1] == 0: return self.box_complex(0, 0) return self.box_complex(rfloat.NAN, rfloat.NAN) - b = self.for_computation(self.unbox(self.log(v1))) - return self.exp(self.box_complex(b[0] * y[0] - b[1] * y[1], + b = self.for_computation(self.unbox(self.log(space, v1))) + return self.exp(space, self.box_complex(b[0] * y[0] - b[1] * y[1], b[0] * y[1] + b[1] * y[0])) #complex copysign does not exist in numpy @@ -1332,13 +1332,13 @@ return 1,0 return -1,0 - def fmax(self, v1, v2): - if self.ge(v1, v2) or self.isnan(v2): + def fmax(self, space, v1, v2): + if self.ge(space, v1, v2) or self.isnan(space, v2): return v1 return v2 - def fmin(self, v1, v2): - if self.le(v1, v2) or self.isnan(v2): + def fmin(self, space, v1, v2): + if self.le(space, v1, v2) or self.isnan(space, v2): return v1 return v2 @@ -1363,7 +1363,7 @@ return rfloat.NAN, rfloat.NAN @specialize.argtype(1) - def round(self, v, decimals=0): + def round(self, space, v, decimals=0): ans = list(self.for_computation(self.unbox(v))) if rfloat.isfinite(ans[0]): ans[0] = rfloat.round_double(ans[0], decimals, half_even=True) @@ -1371,8 +1371,8 @@ ans[1] = rfloat.round_double(ans[1], decimals, half_even=True) return self.box_complex(ans[0], ans[1]) - def rint(self, v): - return self.round(v) + def rint(self, space, v): + return self.round(space, v) # No floor, ceil, trunc in numpy for complex #@simple_unary_op @@ -1804,7 +1804,7 @@ b = bool(v2) return (not b and a) or (not a and b) - def bool(self, v): + def bool(self, space, v): return bool(self.to_str(v)) def fill(self, storage, width, box, start, stop, offset): @@ -1997,7 +1997,7 @@ pieces.append(")") return "".join(pieces) - def eq(self, v1, v2): + def eq(self, space, v1, v2): assert isinstance(v1, boxes.W_VoidBox) assert isinstance(v2, boxes.W_VoidBox) s1 = v1.dtype.elsize @@ -2008,8 +2008,8 @@ return False return True - def ne(self, v1, v2): - return not self.eq(v1, v2) + def ne(self, space, v1, v2): + return not self.eq(space, v1, v2) for tp in [Int32, Int64]: if tp.T == lltype.Signed: _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit