Symbolic mathematics on Linux
lwn.net
lwn.net
I use it quite heavily since it's right there in my editor. It's kind of like a good-enough phone camera that's always close at hand vs. a dedicated camera that's better but takes more effort to have ready.
M-x quick-calc RET
integ(exp(-x^2),x) RET
You'll see that it immediately responds back with: erf(x) sqrt(pi) / 2Also I've heard it might be scraped from vanilla emacs and made into an extesion, but I may be confused.
[0] http://groups.csail.mit.edu/mac/users/gjs/6946/refman.txt
[1] ... And many others including Hal Abelson and Jack Wisdom
That said I got pretty lost near the end. I want to go back in a year or so once I have a bit more math background.
Thanks
An interesting related thread: http://mathoverflow.net/questions/11517/computer-algebra-err...
Note that that's not all. Major commercial math packages like Maple, Mathematica, Mathlab all support Linux as well.
Then you have Scilab, Octave, R, and many others... which happen to also be integrated into Sage, that you can use independently or through some GUI.
[1] https://en.m.wikipedia.org/wiki/PARI/GP
[2] https://en.m.wikipedia.org/wiki/GAP_(computer_algebra_system...
I never heard of Maxima (and never went looking). It works fine (without even checking the manual). I see where TI stole their syntax from. I will need to read the manual to figure out how to input more complex equation systems into `solve`. I tried a few frontend. I prefer Cantor, but it has some visual bugs I reported to the Gentoo and KDE bug trackers. I might solve them at some point. The default terminal UI is cool, but not very readable and keyboard navigation isn't as fine as other solutions (it and looks fugly, and Lispy languages are unreadable (((()))))
As far as I know, it's the only CAS to have a full implementation of the Risch algorithm for symbolic integration, and it's also written in a literate programming style.
However, while elementary functions are extremely important, they aren't the whole story for functions; in that sense, Axiom is far weaker than, say, Mathematica.
GiNaC is really fantastic for problems where you have symbolic models that are generated from large data sets, especially iterating between solvers and symbolic forms.
For example, high-dimensional Cox proportional hazards models have semi-parametric forms that require a mixture of symbolic and numeric computation. In this case, our study run-time was over 3 days, over a few thousand cores. Without compiling the numerics to native code, taking advantage of symbolic simplifications, and calculating Hessians symbolically then evaluating millions of times numerically, the same study would have required years of runtime.
In a computer vision application, I used GiNaC::compile_ex for a similar advantage, solving stochastic functional equations, and selecting optimal model parameters, while accounting for noise. In a way, the massive boost in symbolic + numeric speed made this practically interactive, since previous models could be cached in a compiled form, meaning that instead of plodding along, looking at a few stills here and there to see if the algorithms were producing good results, I could use live video feeds and interactively get a sense of whether the noise and stochastic model were functioning as intended.
One of the most fun programs I ever wrote is a program that generates symbolic forms for stochastic models, runs them against live camera feeds, which in turn generates optimal copulas and so on, that get reduced to C code, that ultimately produces optimized VHDL. Every step involves iterations of symbolic calculation, numeric calculation, and generating the code that will perform the next step. The code is a mixture of C++ (model computations, camera IO, optimal pipelining for VHDL), Octave (graphical views), R (statistical routines), C (mostly generated code), Perl (code transformations), and VHDL (mostly generated code). The only part that wasn't so fun was actually invoking the windows-based Altera VHDL compiler, which could take an hour or more to do the synthesis.
Also, GNU Octave also has a nice package ("symbolic") for using GiNaC interactively.
https://unix.stackexchange.com/questions/20438/open-source-c...
Might be slow, but if you set it up to just remote shell into it, then you do get access to Mathematica for a fairly small outlie.
It is a great mathematics playground, although, concerns over being able to peer review the engine or calcs in the software are valid, not for what I use it for.
It is like Emacs for me. I leave it open all day, and just play around in it. The multiple programming paradigms are fun too for coding practice.
My editor was concerned about the two names, Sage and SageMath. As far as I could tell they're just synonyms, but do you have any guidance about which is to be used when?
And then, there are the docs....
I appreciate what you do, but your competition has a big manpower advantage and a huge head start. Like I said, I truly do hope you can beat Mathematica at its own game someday, but it doesn't look like that day will be anytime soon.
https://news.ycombinator.com/item?id=7483648
https://lobste.rs/s/eftgy8/switching_ubuntu_from_apple/comme...
But it's very buggy on Linux, and did not work out of the box last time I tried it. It somehow violates the X11 protocols (some window managers have Mathematica-specific workarounds) and in my case the windows were all over and mouse clicks didn't hit the correct positions. I can't justify buying $300 worth of software I need twice a year and I can't trust to work correctly.
I've used SymPy and Maxima but they are not as easy to use. I managed with SymPy to get some results but they were not as well simplifies as Mathematica results. Maxima was nearly impossible to use for me as I have no background in symbolic computation and the documentation expects you to understand the algorithms (e.g. different methods for simplification).
The biggest plus of Mathematica is the docs. They have tons and tons of examples and every function is thoroughly documented. And it is easy enough for me to understand without a lot of math background.
One is the other one?
I also play games on Windows/Steam but I could live without that. Openttd and Nethack would do :)
I noticed that i3 WM has Mathematica specific workarounds. Might be an issue with non-reparenting WMs in general.
Axiom was originally developed at IBM Research, was a commercial competitor to Mathematica and Maple, has been open source since 2001.
https://packages.debian.org/sid/sagemath
If all goes well it will be in the next Debian stable. Please help test it! It has ~180 build-dependencies, possibly the most of any Debian package.
It had the "notebook" for Python before iPython itself had it (now called Jupyter).
Anyone having experience with it?
[1] https://www.ceremade.dauphine.fr/~mgubi/tm-web/documents/tut...
Like with HN I prefer speed and simple for a text medium over watching it assemble load on demand JPGs like we're on dialup. :)