Right now, we have the following behavior:
sage: float(CC(1.0))
1.0
sage: float(CDF(1.0))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/home/jason/<ipython console> in <module>()
/home/jason/sage/local/lib/python2.6/site-packages/sage/rings/complex_double.so
in sage.rings.complex_double.ComplexDoubleElement.__float__
(sage/rings/complex_double.c:6532)()
TypeError: can't convert complex to float; use abs(z)
sage: float(complex(1.0))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/home/jason/<ipython console> in <module>()
TypeError: can't convert complex to float
Does anyone object to me changing float(CDF(1.0)) to behave like
float(CC(1.0)) (i.e., a float conversion will succeed if the imaginary
part is 0). Note that this will make CDF and the python complex type
have different behaviors.
Also note that this will partially match the numpy complex type (which
apparently just returns the real part of the number on conversion to float):
sage: float(numpy.complex128(1.0))
1.0
sage: float(numpy.complex128(1.0+2j))
1.0
Thanks,
Jason
--
To post to this group, send an email to [email protected]
To unsubscribe from this group, send an email to
[email protected]
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org