Open Source Computer Algebra Systems 36
timdaly writes "A while back Slashdot had an article decrying
the lack of a good open source computer algebra
system. That is changing. There is a
conference scheduled for the end of May to define the development model and strategy for future work. Students of math, science and engineering will find this valuable. If you're tired of hacking open source editors and want something with a real technical challenge this is the area for you."
Re:Development model (Score:1)
different computer algebra systems presented and
they each have a community.I don't expect there
will be an uber-system that converges them. But
it is well worth discussing the future directions
and shared concerns (like a common front-end (e.g.
TeXmacs)), common test suites, common graphics
packages. I also expect the license issues to
be wonderfully warmth-generating
Re:Development model (Score:1, Interesting)
Re: GAP (Score:1)
models at their heart. They started out symbolic.
I do not expect anyone to change religions, umm,
systems. But we all need to discuss things like
MathML, common user interfaces, common graphics,
etc. that are not at the heart of the systems
and can benefit every system. As to common
tests I found it very worthwhile to test one
system by trying others. The tests highlight
interesting questions such as how and when to
factor results. I'd also like to see all of the
free packages available on one CD packaged so
they could all be run without installation.
Re:Development model (Score:3, Insightful)
Today we have muPAD (generally the smartest, pretty friendly, but only somewhat free), maxima (which is usable, but hardly polished), yacas (which I know nothing about), and emacs calc (which is very user-friendly but also the dumbest). None of them (well, maybe muPAD) are close to becoming rivals to the above-mentioned systems in terms of either user-friendlyness or features.
(Of course, this is not special for computer algebra systems. We also need better DMBS (and related tools, such as form-generators, report-generators, etc...), office productivity apps, cad, gis, groupware, financial stuff, graphics, dtp, music, etc...)
Re:Development model (Score:1, Informative)
what will it include? (Score:1)
Re:what will it include? (Score:1)
of one system (RING?) to rule them all. The
discussions are likely to yield future directions
on a lot of non-math subjects like front end
display, graphing, license etc. I hope to have
some discussions of math related directions also
but each system will likely understand and
implement them in different ways.
Re:what will it include? (Score:2, Informative)
Re:Maxima (Score:1)
(pun acknowledged) from Macsyma, the mother
of them all. The best part of working on math
is that your results are likely to outlive you.
Maxima has certainly outlived Bill Schelter.
Maxima is still a useful system for many people.
Later systems focused on better algorithmic
development with stronger languages since then.
But I have yet to see a system that will allow
me to type in a formula in 2D notation. Nor have
I seen a system that will allow me to specify
conditions (like LINE intersects CIRCLE) and
automatically generate an example. GAP does have
some lattice output for group theory. None of
the systems will allow you to easily handle all
of the textbook problems. Plus it would be great
to be able to write the theory behind an algorithm
in Knuth's weave and automatically generate the
program implementing the algorithm. The ultimate
in documentation. So there is much beyond Maxima.
GiNaC (Score:1)
Re:GiNaC, C++ and Aldor (Score:2, Informative)
Aldor (www.aldor.org) is a language that goes
well beyond the GiNaC language. It offers Types
as first-class objects (you can store them and
manipulate them), symbolic as well as numeric
evaluation, interpretation and compilation.
Frankly, though I'm certain to be flamed for this,
I find that doing computer algebra in C++ about
like doing division in roman numerals. It is
possible to do but it is the wrong notation and
notation is vital to thinking correctly (and
programming correctly). The closer a language's
syntax and semantics approaches to the problem
domain the fewer chances there are of mistakes.
Bad Idea (Score:2, Insightful)
With an operating system, it isn't all that critical if it crashes occasionally. Ok, it's a nuisance... but it won't go unnoticed, and someone will track down why it's crashing, and it will get fixed.
Computer algebra systems are rather more prone to undiscovered errors. It's very easy, for example, to write a long integer multiplication routine which works perfectly for integers less than 2^20 digits long, but starts to fail (deterministically, but without obvious pattern) for very rare inputs above that size. In a bazaar, where code is accepted from anyone, you're very likely to see this sort of buggy code get introduced.
With a closed (commercial) or pseudo-closed (not necessarily commercial, but within a university where everyone has scrutinized each other's credentials) environment, such errors are far less likely to exist. Computational mathematicians are paranoid about such errors; computational mathematicians will not introduce a piece of code unless they can *prove* that it will work.
Given enough eyes, all detected bugs will be fixed; but actually detecting those bugs in the first place is far from certain.
Re:Bad Idea (Score:4, Insightful)
Computer algebra systems are rather more prone to undiscovered errors. [...] In a bazaar, where code is accepted from anyone, you're very likely to see this sort of buggy code get introduced.
With a closed (commercial) or pseudo-closed (not necessarily commercial, but within a university where everyone has scrutinized each other's credentials) environment, such errors are far less likely to exist. [...] computational mathematicians will not introduce a piece of code unless they can *prove* that it will work.
Given enough eyes, all detected bugs will be fixed; but actually detecting those bugs in the first place is far from certain.
No offense, but you don't understand the open source process. I know of no open source project anywhere in which "code is accepted from anyone". Patches can be offered by anyone, but there are gatekeepers that decide what is and is not allowed into the source tree. For a project like this, I would expect the gatekeepers to be computational mathematicians and I would expect that they would reject out of hand any non-trivial submission that isn't accompanied by a formal proof of correctness.
Further, it wouldn't surprise me if *this* project used some extensive and formal peer review process, so that before (or maybe after) the gatekeeper accepts a submission there's oversight from a group of other mathematicians.
I think open source is *perfect* for this sort of application. It's certainly much more likely to produce correct code than a closed source shop where only a small number of people can review the code and there are marketing people trying to push the product out the door.
Re:Bad Idea (Score:2)
True, but the scenario you describe is quite unlike what actually happens. In MAPLE, for example, almost all functions can be inspected by anyone. There is a small kernel of builtin functions which are opaque, but the vast majority of code is written in MAPLE's internal programming language, and distributed as source. Anyone (out of the few dozen with sufficient background in the field) can look at the algorithms and verify that they work; but the people who are writing most of this code are doing so because they are getting paid.
Re:Bad Idea (Score:2)
Re:Bad Idea (Score:1)
were developed at universities or commercially.
Axiom, my particular choice, took 23 years to
develop at IBM Research. It was sold commercially
for the last few years and is now being released
as open source. And, yes, we are anal about errors.
Each has a special area. GAP does
group theory. Macaulay does algebraic geometry.
Re:Bad Idea (Score:1)
as open source.
Where can one download the sources?
Re:Bad Idea (Score:2)
Second, the suggestion that commercial, single-developer computer algebra systems are somehow more reliable than bazaar, open source ones flies in the face of reality. For years, Mathematica was released with really serious and subtle bugs, for example in its polynomial code; it would compute results that simply didn't survive even the simplest checks. And Wolfram Research didn't bother fixing them for a long time (for all I know they may still be there). The equivalent code in Macsyma, which was a bazaar-like effort and is now open source, worked just fine.
MAXIMA (Score:1)
For more info check out: http://maxima.sourceforge.net [sourceforge.net]
I've used it for some basic things, and it seems to be quite powerful. Not as full-featured as MAPLE or Mathematica, but covers most of the common needs for a CAS.
Re: MAXIMA (Score:1)
Essentially, a
Perhaps they included only software that ships on a linux distro CD, or something...
With Maxima coupled with Texmacs, very high-quality mathematical work is possible.
Re: MAXIMA (Score:1)
RPMS (redhat 7.2) of mathematics packages (Score:3, Informative)
Hmmm.... (Score:1)
I think they call it "FORTRAN", or something like that...
(yes, it's a joke)
Re:Hmmm.... (Score:1)
Lisp && Prolog (Score:1)
Frontends to computer algebra systems (Score:1)
Mathemagix (Score:2, Interesting)
Maxima (Score:2)
Still, people have learned quite a bit about algorithms, software engineering, and software reuse since Macsyma, Maple, and Mathematica were originally implemented, and it might well be worth thinking about having another go at a modern computer algebra system. I suspect that implementing it in something like ML or Haskell might help a lot with correctness and extensibility.