3 ms·
> On the other hand, open source tools are catching up. SymPy is doing nicely, but it's decades behind Mathematica when it comes to symbolic computation. By t
by fdej 8y ago
> On the other hand, open source tools are catching up.
SymPy is doing nicely, but it's decades behind Mathematica when it comes to symbolic computation.
By the way, if you want to invert a symbolic matrix, chances are that generic Gaussian elimination working with symbolic expressions isn't the best algorithm (it might even give wrong answers if zero testing is done incorrectly), and compiled code isn't going to change that. The state of the art in symbolic linear algebra uses specialized algorithms like evaluation-interpolation, modular computation, and all kinds of low level optimizations.
- ChrisRackauckas 8y agoIt was a bunch of small matrices so it worked out well, but that's good to know. For future reference, what library implements these symbolic linalg routines? When I was looking around I could only find LinBox (http://www.linalg.org/ http://www.linalg.org/) but the barrier to entry was a little high for me to dig in.
- fdej 8y agoIn Julia, there is Nemo.jl for high performance exact and symbolic linear algebra. At least that is the goal; it doesn't have the best algorithms yet in all cases, but it has some of them (and more are being developed). You can see some examples here: http://nemocas.org/benchmarks.html http://nemocas.org/benchmarks.html
- ChrisRackauckas 8y agoI really like that library for other reasons, but I couldn't find documentation for anything symbolic. Could you point to the right places? Feel free to follow up on other forums since this is getting pretty off topic.
- fdej 8y agoYou have to work with multivariate polynomials (possibly over number fields). If you have symbolic expressions in another format, you would have to manually convert them to that representation first, possibly after introducing extra variables for non-algebraic constants (which may or may not be a good idea depending on the specific circumstances). Having that kind of rewriting done automatically would certainly be a good thing!