LWN: Comments on "Symbolic mathematics on Linux" https://lwn.net/Articles/710537/ This is a special feed containing comments posted to the individual LWN article titled "Symbolic mathematics on Linux". en-us Sun, 31 Aug 2025 21:41:48 +0000 Sun, 31 Aug 2025 21:41:48 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net Symbolic mathematics on Linux https://lwn.net/Articles/777360/ https://lwn.net/Articles/777360/ jondo <div class="FormattedComment"> However, GeoGebra concedes that it might not be free software:<br> <p> <font class="QuotedText">&gt; Please note that GeoGebra as a complete software program would</font><br> <font class="QuotedText">&gt; probably not be considered "free" software according to the</font><br> <font class="QuotedText">&gt; definition of that term which is used by the Free Software</font><br> <font class="QuotedText">&gt; Foundation. This is because the restrictions on commercial use that</font><br> <font class="QuotedText">&gt; apply to the GeoGebra installers, web services and language files</font><br> <font class="QuotedText">&gt; add-ons might be seen to be a restriction on the software as a whole</font><br> <font class="QuotedText">&gt; (thus making it "non-free"), even though the GeoGebra source code is</font><br> <font class="QuotedText">&gt; made available under the GNU General Public License without</font><br> <font class="QuotedText">&gt; restriction.</font><br> (source: <a href="https://www.geogebra.org/license">https://www.geogebra.org/license</a>)<br> <p> It will get interesting in case anyone ever tried to fork GeoGebra. I found one case of someone announcing a modified redistribution, but I don't think they succeeded: <a href="https://github.com/geogebra/geogebra/pull/5">https://github.com/geogebra/geogebra/pull/5</a> .<br> </div> Wed, 23 Jan 2019 13:34:16 +0000 Proprietary packagings https://lwn.net/Articles/711904/ https://lwn.net/Articles/711904/ pabs <div class="FormattedComment"> Probably referring to this:<br> <p> <a href="https://mjg59.dreamwidth.org/45939.html">https://mjg59.dreamwidth.org/45939.html</a><br> <a href="https://mjg59.dreamwidth.org/35969.html">https://mjg59.dreamwidth.org/35969.html</a><br> </div> Wed, 18 Jan 2017 03:21:57 +0000 Proprietary packagings https://lwn.net/Articles/711860/ https://lwn.net/Articles/711860/ rahulsundaram <div class="FormattedComment"> <font class="QuotedText">&gt; I would rather see Debian cited as the source of Debian features, over a proprietary offshoot.</font><br> <p> What is proprietary about it?<br> </div> Tue, 17 Jan 2017 18:18:29 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/711689/ https://lwn.net/Articles/711689/ leephillips <div class="FormattedComment"> Interesting information. It's clear that there is no one perfect CAS. By the way, maxima seems to handle your integral, as well.<br> </div> Sat, 14 Jan 2017 20:51:27 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/711652/ https://lwn.net/Articles/711652/ jondo <div class="FormattedComment"> For teaching first semester math at my university, I evaluated switching from Mathematica to free/libre math software. I concentrated on wxMaxima, SymPy and Sage. Many areas worked fine in all three systems, but for the moment we stayed with Mathematica. Some observations:<br> <p> SageMath calls Maxima to solve inequalities, but both systems have no easy way to fully simplify the solutions:<br> The code<br> <font class="QuotedText">&gt; sage: maxima_calculus("domain: real")</font><br> <font class="QuotedText">&gt; solve(abs((2*x-2)/(x-5)) &lt;= 2/3, x)</font><br> gives<br> <font class="QuotedText">&gt; [[x == -1], [x == 2], [x == 1], [1 &lt; x, x &lt; 2], [-1 &lt; x, x &lt; 1]]</font><br> instead of<br> <font class="QuotedText">&gt; [[-1 &lt;= x, x &lt;= 2]] .</font><br> (Of course I could just hand out a self-written simplification function, but only for SageMath - my Lisp-fu has rusted since the 90s.)<br> <p> SymPy deals well with this inequality (<a href="https://github.com/sympy/sympy/issues/9565">https://github.com/sympy/sympy/issues/9565</a>), but the used 'solveset' function is still in the works.<br> <p> Teaching Python would be a nice side effect, but Sage is huge and unwieldy to distribute, and I don't want to offer it as "SAASS", while SymPy alone cannot compute some typical integrals (e.g. of exp(x)*sqrt(1+exp(2*x))), because the necessary Risch algorithm is only partially implemented there.<br> <p> Also I saw some problems with easy differential equations, but I didn't have a closer look.<br> <p> Hmm ...<br> Now I tested the inequality and the integral in GeoGebra (with the embedded Giac system), and both worked!<br> See <a href="https://ggbm.at/xS6RDn4N">https://ggbm.at/xS6RDn4N</a> for the web version, but beware of a massive Javascript attack.<br> Maybe that's the way to go ...<br> <p> </div> Sat, 14 Jan 2017 03:35:46 +0000 Proprietary packagings https://lwn.net/Articles/711612/ https://lwn.net/Articles/711612/ rvern <div class="FormattedComment"> Agreed, though Fedora packages all the software mentioned except for Cadabra, and packages SageMath and all its dependencies, which includes SymPy, Maxima, Jupyter...<br> </div> Fri, 13 Jan 2017 20:15:48 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/711409/ https://lwn.net/Articles/711409/ leephillips <div class="FormattedComment"> This seems to be another interface to SymPy - and may be convenient for those already using Octave who require some computer-assisted symbolic math.<br> </div> Thu, 12 Jan 2017 13:33:00 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/711407/ https://lwn.net/Articles/711407/ leephillips <div class="FormattedComment"> Interesting program/library. Thanks for bringing it up.<br> </div> Thu, 12 Jan 2017 13:29:21 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/711391/ https://lwn.net/Articles/711391/ parisse <div class="FormattedComment"> Giacpy is a Cython interface to Giac for python that might interest you because it can be used inside a normal python interpreter and the computing kernel is fast (compiled C++ library instead of interpreted python). Under linux, install the giac package then from your python interpreter<br> from giacpy import *<br> x=giac('x')<br> int(1/(x**4+1),x,0,inf)<br> a=ranm(10,10) // random integer matrix<br> b=inv(a)<br> maxnorm(a*b-idn(a)) // check<br> </div> Thu, 12 Jan 2017 09:45:43 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/711383/ https://lwn.net/Articles/711383/ ssmith32 <div class="FormattedComment"> A little googling revealed octave has a symbolic manipulation add-on:<br> <p> <a href="https://octave.sourceforge.io/symbolic/">https://octave.sourceforge.io/symbolic/</a><br> <p> Can't speak to it's effectiveness vs the alternatives. Just fyi.<br> </div> Thu, 12 Jan 2017 08:29:53 +0000 Proprietary packagings https://lwn.net/Articles/711361/ https://lwn.net/Articles/711361/ leephillips <div class="FormattedComment"> You may have a point. Since my laptop runs Ubuntu, it's simple for me to check what's available through the package manager, and I assume people understand that this means likely availability in other Debian-derived distros as well. Although I use Debian on servers, I haven't tried to run it on a laptop, thinking, perhaps erroneously, that Ubuntu brings some conveniences. On the other hand, I either run no desktop or Xubuntu. <br> </div> Thu, 12 Jan 2017 01:06:57 +0000 Proprietary packagings https://lwn.net/Articles/711150/ https://lwn.net/Articles/711150/ ncm <div class="FormattedComment"> For the packages noted as being available on Ubuntu, I find that they are also packaged in the upstream distribution, Debian, whence I presume Ubuntu got them. I would rather see Debian cited as the source of Debian features, over a proprietary offshoot.<br> <p> It mystifies me why anyone uses Ubuntu at all. It has been a long time since Ubuntu provided a better experience than stock Debian "unstable".<br> </div> Tue, 10 Jan 2017 14:05:01 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/711002/ https://lwn.net/Articles/711002/ leephillips <div class="FormattedComment"> Although Maple and Mathematica are excellent products, as explained in the first sentence, the article is about free and open-source software.<br> </div> Mon, 09 Jan 2017 13:46:02 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/710994/ https://lwn.net/Articles/710994/ marcel.oliver As a professional mathematician, this is a topic close to my heart and I really appreciate it being covered, even though not a lot was fundamentally new to me. <p> For the better or worse, I have had precisely two commercial software packages on my (Linux) machine for the last decade or so. One is Mathematica, the other one is for doing my taxes. And I have some hope that at least the former can be replaced by free software most of the time... <p> Learning any symbolic math software well is a long-time investment. I happened to grow into using Mathematica as a graduate student, so that is my point of reference and in my opinion also represents pretty much the state of the art. When comparing, there are a number of factors to consider: <ul> <li> Raw capabilities (e.g. special functions, symbolic integration, algebraic structures implemented, etc.) <li> Coherence of the system, quality and quantity of documentation <li> Expressiveness of the language <li> Integration with non-symbolic programming </ul> I tend to shy away from single-purpose languages, even though for a particular problem, they could be just fine or even the best possible solution. So that leaves mostly Sage and Sympy as serious competitors (Sage being able to call upon a large host of additional software transparently). <p> Raw capabilities are difficult to compare because they depend heavily on how far out of the trivial any one particular project pushes the software. Needless to say that Mathematica's capabilities are uniformly very strong, Sage's list of capabilities is also impressive and as I hear at least from some number theory colleagues in some areas the best. My own record is mixed - the last time I seriously pushed things was when I was checking a limit of a parametric integral a graduate student had been computing by hand: Mathematica got it wrong by a factor of 2 (since fixed at least according to an email they sent me recently), Sage did not terminate the computation and Sympy gave up... <p> Regarding documentation and consistency, Mathematica sets a standard that is hard to come close, for the others it's a mixed bag (but not hopeless). <p> What I am personally unsure about is the expressiveness of Python for symbolic programming. I understand the Mathematica (or Wolfram) language reasonably well, with everything (program and data alike) being part of a tree structure, and powerful pattern matching and transformation capabilities. This also brings a certain baggage, as undefined objects are simply carried along symbolically whether that makes sense or not, and the difficulty to have intrinsically typed objects. For example, even (Euclidean) vector calculus seems to map poorly into the transformational rules of Mathematica. <p> Python appears to provide a rather different paradigm where typed objects and operator overloading are very natural. I have the impression that this is potentially very powerful, yet different, but I am much less certain how far it carries. <p> Unfortunately there are (at least) two competing Python-based systems, with Sympy seemingly cleaner, yet more limited, and Sage trying to integrate large chunks of the available third-party symbolic systems. For simple things, both have similar capabilities with again similar, but annoyingly different details. For more complicated things, Sage by design should be a superset of Sympy, but I am not sure if the underlying programming concept is equally flexible, or is constrained by the need to pass symbolic expressions to an external symbolic computation instance. Unfortunately, the documentation of neither package is sufficiently clear on advanced programming concepts, one probably needs to invest into working on some nontrivial project in both to find out. <p> It also bothers me that Sage has a modified front-end that does not behave like true Python. I can certainly see the point of doing it and I know it's possible to switch off. Yet, I think it makes things unnecessarily brittle and impedes the mixing of "standard" Python programs with symbolic computation. <p> So, in short, I am looking at both Python-based symbolic packages with great interest and think they have a lot of potential. I would feel much more comfortable with an approach where the base system is pure Python (possibly with C-extensions where necessary or beneficial for speed) and where all the other interfaces could be loaded on top where needed. So some kind of convergence of the Sympy and Sage into a unified framework. But I have no idea if this is architecturally possible. Mon, 09 Jan 2017 13:11:28 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/710976/ https://lwn.net/Articles/710976/ ballombe <div class="FormattedComment"> Lots of many large, free, mathematical software have been omitted.<br> </div> Sun, 08 Jan 2017 12:35:32 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/710975/ https://lwn.net/Articles/710975/ Sesse <div class="FormattedComment"> Since this is about “symbolic mathematics on Linux” and not “free symbolic mathematics”, where are Maple and Mathematica?<br> </div> Sun, 08 Jan 2017 10:50:11 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/710943/ https://lwn.net/Articles/710943/ parisse Giac/Xcas is also a standalone GPL symbolic math software. It is fast, used by Geogebra and the HP Prime calculator : <a rel="nofollow" href="http://www-fourier.ujf-grenoble.fr/~parisse/giac.html">homepage</a>, <a rel="nofollow" href="http://www-fourier.ujf-grenoble.fr/~parisse/xcasen.html">test online version</a> Sat, 07 Jan 2017 07:27:37 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/710917/ https://lwn.net/Articles/710917/ pontus YACAS deserves a mention http://www.yacas.org/ Fri, 06 Jan 2017 21:22:20 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/710911/ https://lwn.net/Articles/710911/ leephillips <div class="FormattedComment"> No, that's a whole different kettle of fish, one I know very little about. <br> </div> Fri, 06 Jan 2017 18:54:32 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/710907/ https://lwn.net/Articles/710907/ tbenst <div class="FormattedComment"> Would you consider proof assistants / progamming languages like Coq, Agda and Idris to be in this same category?<br> </div> Fri, 06 Jan 2017 17:04:35 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/710894/ https://lwn.net/Articles/710894/ infinity0 <div class="FormattedComment"> The article mentions a PPA for SageMath; in fact we recently (re)packaged SageMath for official Debian, here:<br> <p> <a rel="nofollow" href="https://packages.debian.org/sid/sagemath">https://packages.debian.org/sid/sagemath</a><br> <p> 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.<br> </div> Fri, 06 Jan 2017 16:16:11 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/710841/ https://lwn.net/Articles/710841/ pabs <div class="FormattedComment"> Could you disable blocking Tor in your Cloudflare config?<br> </div> Fri, 06 Jan 2017 04:20:21 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/710837/ https://lwn.net/Articles/710837/ williamstein <div class="FormattedComment"> SageMathCloud entirely runs on Linux, provides a free Linux command shell in the cloud, and I think *everything* mentioned in this article is already pre-installed there -- so it seems pretty relevant! You can also very easily install a Docker image of SageMathCloud and run it on your own computer. I'm on 100% leave from my tenured academic position, since the department convinced me not to resign just yet. They have very recently been extremely supportive regarding intellectual property and other dicy issues. (Disclaimer: I'm the founder of SageMath.) <br> </div> Fri, 06 Jan 2017 02:52:35 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/710765/ https://lwn.net/Articles/710765/ ianmcc <div class="FormattedComment"> Awesome, I didn't know about any of these before.<br> </div> Thu, 05 Jan 2017 16:47:50 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/710758/ https://lwn.net/Articles/710758/ NightMonkey <div class="FormattedComment"> A wonderful, well-written article about a subject I knew nothing about. Viva LWN.<br> </div> Thu, 05 Jan 2017 16:16:09 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/710722/ https://lwn.net/Articles/710722/ fghorow <div class="FormattedComment"> At the risk of invoking the ire of people saying "That's Not Linux"™, it's worth mentioning SageMathCloud. That's the way that the primary author of Sage -- who resigned from a tenured academic position to pursue this -- is funding further development.<br> </div> Thu, 05 Jan 2017 13:29:47 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/710711/ https://lwn.net/Articles/710711/ leephillips <div class="FormattedComment"> You are right, REDUCE should have been mentioned as well. Since it was proprietary until 2008, I might have been unaware that it has since been open-sourced. But the omission was entirely my fault.<br> </div> Thu, 05 Jan 2017 11:43:25 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/710705/ https://lwn.net/Articles/710705/ verbovet <div class="FormattedComment"> Why only Maxima and Sage? REDUCE <a href="http://reduce-algebra.sourceforge.net">http://reduce-algebra.sourceforge.net</a> is not less powerful.<br> </div> Thu, 05 Jan 2017 10:41:59 +0000 Symbolic mathematics on Linux https://lwn.net/Articles/710699/ https://lwn.net/Articles/710699/ samlh <div class="FormattedComment"> This a very useful overview, thank you! My mathematical skills often fall short of my ambitions, so I've tried both tools before, but the notebook version of Sage is new to me and sounds very useful.<br> </div> Thu, 05 Jan 2017 09:38:27 +0000