Author: Ronan Lamy <[email protected]>
Branch: longdouble2
Changeset: r62842:57de9f69aee0
Date: 2013-03-27 19:31 +0000
http://bitbucket.org/pypy/pypy/changeset/57de9f69aee0/

Log:    Don't use convert_{real|imag}_to indirection in W_ComplexFloatingBox

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
@@ -9,6 +9,7 @@
 from pypy.objspace.std.complextype import complex_typedef
 from rpython.rlib.rarithmetic import LONG_BIT
 from rpython.rtyper.lltypesystem import rffi
+from rpython.rlib.objectmodel import specialize
 from rpython.tool.sourcetools import func_with_new_name
 from pypy.module.micronumpy.arrayimpl.voidbox import VoidBoxStorage
 
@@ -324,15 +325,18 @@
 
 class W_ComplexFloatingBox(W_InexactBox):
     _attrs_ = ()
+
+    @specialize.argtype(0)
     def descr_get_real(self, space):
         dtype = self._COMPONENTS_BOX._get_dtype(space)
-        box = self.convert_real_to(dtype)
+        box = dtype.box(self.real)
         assert isinstance(box, self._COMPONENTS_BOX)
         return space.wrap(box)
 
+    @specialize.argtype(0)
     def descr_get_imag(self, space):
         dtype = self._COMPONENTS_BOX._get_dtype(space)
-        box = self.convert_imag_to(dtype)
+        box = dtype.box(self.imag)
         assert isinstance(box, self._COMPONENTS_BOX)
         return space.wrap(box)
 
@@ -549,8 +553,8 @@
     W_CLongDoubleBox.typedef = TypeDef("complex00", 
(W_ComplexFloatingBox.typedef, complex_typedef),
         __module__ = "numpypy",
         __new__ = interp2app(W_CLongDoubleBox.descr__new__.im_func),
-        real = GetSetProperty(W_ComplexFloatingBox.descr_get_real),
-        imag = GetSetProperty(W_ComplexFloatingBox.descr_get_imag),
+        real = GetSetProperty(W_CLongDoubleBox.descr_get_real),
+        imag = GetSetProperty(W_CLongDoubleBox.descr_get_imag),
     )
     if long_double_size == 12:
         W_LongDoubleBox.name = "float96"
@@ -592,13 +596,13 @@
 W_Complex128Box.typedef = TypeDef("complex128", (W_ComplexFloatingBox.typedef, 
complex_typedef),
     __module__ = "numpypy",
     __new__ = interp2app(W_Complex128Box.descr__new__.im_func),
-    real = GetSetProperty(W_ComplexFloatingBox.descr_get_real),
-    imag = GetSetProperty(W_ComplexFloatingBox.descr_get_imag),
+    real = GetSetProperty(W_Complex128Box.descr_get_real),
+    imag = GetSetProperty(W_Complex128Box.descr_get_imag),
 )
 
 W_Complex64Box.typedef = TypeDef("complex64", (W_ComplexFloatingBox.typedef),
     __module__ = "numpypy",
     __new__ = interp2app(W_Complex64Box.descr__new__.im_func),
-    real = GetSetProperty(W_ComplexFloatingBox .descr_get_real),
-    imag = GetSetProperty(W_ComplexFloatingBox.descr_get_imag),
+    real = GetSetProperty(W_Complex64Box.descr_get_real),
+    imag = GetSetProperty(W_Complex64Box.descr_get_imag),
 )
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to