Fast Symbolic Linear Algebra CAS?

I found out that the best solution is actually SymEngine.jl in Julia. Using Julia as the driver ends up increasing the speed and reducing the memory requirement, making it more efficient than using SymEngine in Python (or using SymPy). This ended up being much more efficient than Mathematica, and the few things I experimented with in Sage. Also, Julia's operator overloading lets you write a "generic" matrix function and then it will automatically compile a function which gets very good performance on symbolic expressions, and this makes it easy to extend the symbolic libraries as necessary without losing performance. This ended up being a very good solution to brute force some symbolic math to setup further analysis.


If $M$ is an invertible matrix and $\bf v$ is a vector, Cramer's rule expresses $M^{-1} \bf v$ as $\det(M)^{-1} \bf w$ where $\det(M)$ and the entries of $\bf w$ are polynomials in the entries of $M$ and $\bf v$. In general, you can't make it any simpler than that. The more complicated the expression, the less likely you are to have cancellations.