Author: mattip <matti.pi...@gmail.com> Branch: numpypy-complex2 Changeset: r57197:4b6f2eae6d4e Date: 2012-09-07 00:21 +0300 http://bitbucket.org/pypy/pypy/changeset/4b6f2eae6d4e/
Log: dtype.real, dtype.imag return float values diff --git a/pypy/module/micronumpy/interp_boxes.py b/pypy/module/micronumpy/interp_boxes.py --- a/pypy/module/micronumpy/interp_boxes.py +++ b/pypy/module/micronumpy/interp_boxes.py @@ -295,15 +295,15 @@ _COMPONENTS_BOX = W_Float32Box def descr_get_real(self, space): - dtype = self._COMPONENTS_BOX._get_dtype(space) + dtype = W_Float64Box._get_dtype(space) box = self.convert_real_to(dtype) - assert isinstance(box, self._COMPONENTS_BOX) + assert isinstance(box, W_Float64Box) return space.wrap(box.value) def descr_get_imag(self, space): - dtype = self._COMPONENTS_BOX._get_dtype(space) + dtype = W_Float64Box._get_dtype(space) box = self.convert_imag_to(dtype) - assert isinstance(box, self._COMPONENTS_BOX) + assert isinstance(box, W_Float64Box) return space.wrap(box.value) class W_Complex128Box(ComplexBox, W_ComplexFloatingBox): diff --git a/pypy/module/micronumpy/test/test_ufuncs.py b/pypy/module/micronumpy/test/test_ufuncs.py --- a/pypy/module/micronumpy/test/test_ufuncs.py +++ b/pypy/module/micronumpy/test/test_ufuncs.py @@ -931,7 +931,7 @@ from _numpypy import (equal, not_equal, greater, greater_equal, less, less_equal) - for complex_ in complex128, complex64: + for complex_ in complex64, complex128: O = complex(0, 0) c0 = complex_(complex(2.5, 0)) @@ -985,9 +985,9 @@ raises (TypeError, fmod, c0, 3) inf_c = complex_(complex(float('inf'), 0.)) assert repr(abs(inf_c)) == 'inf' - assert repr(abs(n)) == 'nan' + assert repr(abs(complex(float('nan'), float('nan')))) == 'nan' - assert False, 'untested: copysign, reciprocal, sign, floor_div, ' + \ + assert False, 'untested: copysign, reciprocal, sign, floor_div, ' + \ 'signbit, fabs, fmax, fmin, floor, ceil, trunc, ' + \ 'exp2, expm1, isnan, isinf, isneginf, isposinf, ' + \ 'isfinite, radians, degrees, log2, log1p, ' + \ 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 @@ -1017,7 +1017,9 @@ try: return rcomplex.c_div(v1, v2) except ZeroDivisionError: - return rfloat.NAN, rfloat.NAN + if rcomplex.c_abs(*v1) == 0: + return rfloat.NAN, rfloat.NAN + return rfloat.INFINITY, rfloat.INFINITY _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit