As expected, %e^A returns the element-by-element exponent (where A is a matrix). But %e^^A also returns the element-by-element exponent. I think that's a bug; it seems like "^^" should return the matrix exponent, as calculated, for example, by mat_function(exp, A).
Rupert Swarbrick
2014-02-19
I guess there are two things here. Firstly, Maxima is giving a wrong answer. That turns out to be because of some bogus logic in SIMPNCEXPT. I'm pushing a patch that fixes that problem now.
The second is that Maxima isn't automatically calculating e^^A when it could. Speaking as the author of most of the revamped diag.mac, it's not all that brilliant. Basically, it does linear algebra like a 1st year undergrad, calculating Jordan normal forms and passing them around all over the place.
(1) We'd have to think quite hard about run time costs before enabling that sort of simplification by default.
(2) We would probably also want to move diag.mac from share/contrib to share and/or reimplement the functionality with a less horrible API.