Here is the problem:
if I try this:
var('z')
z = 1+2*I
type(z)
<type 'sage.symbolic.expression.Expression'>
So, it isn't a complex number. BUT, if I do this:
I = CC.0
z = 1+2*I
type(z)
then I get a complex number
<type 'sage.rings.complex_number.ComplexNumber'>
Should I use numpy and cython for complex numbers?