Ask Your Question

Revision history [back]

The problem is indeed the use of Maxima, through the evil Symbolic Ring. If you look at its source code:

sage: A = Matrix(CDF, [[1,2,3],[3,2,0],[1,2,1]])
sage: C = I*A
sage: C.exp??

You will see that it always use Maxima, even if you replace CDF by RDF, RR, QQ or ZZ. The reason is that all those C are matrices are defined over the the Symbolic Ring, because of the coercion with the number I which is unfortunately symbolic by default:

sage: A.parent()
Full MatrixSpace of 3 by 3 dense matrices over Complex Double Field
sage: C.parent()
Full MatrixSpace of 3 by 3 dense matrices over Symbolic Ring

So if you want to take the benefits of scipy, you should put C back into a good ring:

sage: D = C.change_ring(CDF)
sage: D.exp()
[  0.651747342998 - 1.54379760025*I -0.732155536636 - 0.455927080561*I   0.599292752801 + 1.47303558858*I]
[ 0.174911238362 + 0.933804036222*I   1.13443260356 - 0.693298035819*I   -1.27314454332 - 1.61769465706*I]
[ -0.648998777944 - 0.58745124185*I -0.166313517385 + 0.263048322578*I   1.50051037188 - 0.465334495539*I]