Slashdot Mirror


Open Source Computer Algebra Systems

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."

36 comments

  1. Development model by Anonymous Coward · · Score: 0

    Is it just me, or do committee-based open source projects that aren't funded fail?

    1. Re:Development model by timdaly · · Score: 1

      There is a subtle point here. There will be many
      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 :-)

    2. Re:Development model by Anonymous Coward · · Score: 1, Interesting

      After working on GAP for two years and talking with people banging on related programs like Magma, I'm not sure if any of that is possible. Mathematicians seem rabidly tied down to their interface of choice. It has to be the case where they absolutely cannot do what they want in their current program even with 10 years of work before they think of switching. One guy would do pencil and paper calculations (2 days+) rather then using a second program for a missing feature. Test suites are nice but how much overlap is their really between these programs? Many of the GAP tests beyond basic arithmetic are testing the features unique to GAP. I can't sit down at another program and expect any of them to be meaningful let alone work.

    3. Re:Development model by joto · · Score: 3, Insightful
      Well let's hope otherwise. There already exists several good open source systems for various sub-fields, but we also need an uber-system that does everything (albeit not necessarily as good as the specialized systems), but is friendly enough to be used by people who could never write it themselves (i.e: mathematica, maple, derive, mathcad, etc).

      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...)

    4. Re:Development model by Anonymous Coward · · Score: 1, Informative

      Don't forget Octave, which is much analogous to matlab. There are even efforts to write compatibility libraries so matlab people will feel at home... :-)

    5. Re:Development model by Anonymous Coward · · Score: 0

      One guy would do pencil and paper calculations (2 days+) rather then using a second program for a missing feature.

      Jesus... and I thought programmers with their text editors were bad.

  2. what will it include? by abdulla · · Score: 1

    maybe i'm not understanding it properly, but will this be a large maths library? if so what will it include exactly?"

    1. Re:what will it include? by timdaly · · Score: 1

      There isn't likely to be an 'it' in the sense
      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.

    2. Re:what will it include? by njdj · · Score: 2, Informative

      I understood it to be a symbolic algebra package, somewhat like Maxima. (which is derived, I believe, from a version of Macsyma). Maxima is open-source but presumably the organisers of the conference consider it "not good enough" in some way.

  3. GiNaC by sultanoslack · · Score: 1

    Well, though it stands for GiNaC is Not a CAS (Computer Algebre System). GiNaC, which is a library for advanced symbolic calculations certainly would make a fine backend for a CAS. It's a pretty powerful tool wainging for an interface.

  4. Bad Idea by cperciva · · Score: 2, Insightful

    A computer algebra system which is built in a bazaar is a Bad Idea.

    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.

    1. Re:Bad Idea by swillden · · 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.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    2. Re:Bad Idea by timdaly · · Score: 1

      Actually, all of the computer algebra systems
      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.

    3. Re:Bad Idea by cperciva · · Score: 2

      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.

      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.

    4. Re:Bad Idea by swillden · · Score: 2

      Most of my experience with such software is with Mathematica (which is really closer to what this project wants to do, if I read it correctly. Maple is more focused on computation, but the project we're discussing is intended to be a symbolic algebra package). And almost none of the source is available. Sure it comes with a large selection of packages in source form (Mathematica notebooks) that define various additional (mostly obscure) structures, but the really important part of the code is all closed.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    5. Re:Bad Idea by Anonymous Coward · · Score: 0

      Your post starts from a faulty premise, since neither you (nor apparently the clueless /. article) is aware of mature open-source algebra systems like Maxima, a direct-line descendant of the famous MACSYMA (even before Maxima was GPL, it was pseudo-open-source - anyone could get the source, so long as they were friends of the USA- it was sponsored by the Nuclear Bomb Bureau^W^W^WDoE). Thus, open source computer algebra is already tried and tested...

    6. Re:Bad Idea by mmusn · · Score: 2
      First of all, it is foolish to derive results using any system, or by hand, without being able to check them.

      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.

    7. Re:Bad Idea by xerofud · · Score: 1

      You state that Axiom is now being released
      as open source.

      Where can one download the sources?

  5. MAXIMA by Jess · · Score: 1
    There is alread an open source (GPL) computer algebra and calculus system available, called MAXIMA. It's based on MACSYMA.

    For more info check out: http://maxima.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.

    1. Re:Maxima by timdaly · · Score: 1

      Maxima is quite useful having been derived
      (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.

    2. Re: MAXIMA by DGolden · · Score: 1

      And one of the nicest things about Maxima is than you can seamlessly drop down into Common Lisp if you want to. too. It really is very good: extensible, mature, and well designed. Since it is GPL, it is living on despite the death of its original author.

      Essentially, a /. article bemoaning the lack of an open source computer algebra system is an article that has had no background research done.

      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.

      --
      Choice of masters is not freedom.
    3. Re: MAXIMA by sir99 · · Score: 1

      Maxima is quite nice. TeXmacs maxima sessions are also quite pretty, but they break easily. Hell, maxima gets confused easily too. Xmaxima has its problems also. However, if maxima used libreadline and TeXmacs worked perfectly with it, I couldn't be much happier.

      --
      The ocean parts and the meteors come down
      Laid out in amber, baby.
  6. RPMS (redhat 7.2) of mathematics packages by rdieter · · Score: 3, Informative

    I have a collection of self-built RPMS for mathematics packages to try out if you like. Included are: drgenius, gap, geomview, gtkmathview, Macaulay2, maxima (a minor pain 'cause it depends on lisp), and others available at http://www.math.unl.edu/~rdieter. Enjoy.

  7. Re:GiNaC, C++ and Aldor by timdaly · · Score: 2, Informative

    I read the GiNac paper posted at the link.
    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.

  8. Re: GAP by timdaly · · Score: 1

    Yes, both GAP and Axiom have well-founded math
    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.

  9. Hmmm.... by redhatbox · · Score: 1


    I think they call it "FORTRAN", or something like that... ;)

    (yes, it's a joke)

    1. Re:Hmmm.... by fparnold · · Score: 1

      It is called Fortran. It's a pretty hostile way to go, but hard problems call for hard solutions.

  10. Lisp && Prolog by NeuroMorphus · · Score: 1

    LISP and Prolog anyone?

    --

    python >>>
    reduce(lambda x,y:x+y,map(lambda x:chr(ord(x)^42),tuple('zS^BED\nX_FOY\x0b')))
    1. Re:Lisp && Prolog by Anonymous Coward · · Score: 0

      Maxima is implemented in Common Lisp, and is extensible in common lisp. Sorta the Emacs of computer algebra systems.

  11. Argh. Maxima by Anonymous Coward · · Score: 0

    There is a great computer algebra system available under the GPL RIGHT NOW. It's the mother-of-all computer algebra systems, in fact, and is very mature and stable See Maxima

  12. Frontends to computer algebra systems by Joris+van+der+Hoeven · · Score: 1

    For anyone interested in free computer algebra systems, I would like to point to GNU TeXmacs, whose version 1.0 has just been released. This program can be used as a frontend for most free computer algebra systems. Please contact us if you want to help us supporting other systems or improving the current interfaces (or adding interfaces to other scientific computation systems).

  13. Mathemagix by Joris+van+der+Hoeven · · Score: 2, Interesting

    We plan to write a compiler for a new computer algebra system called mathemagix. We are searching potential contributors or people who would just like to give us some useful suggestions; the development is still in a very early stage due to my work on TeXmacs.

    1. Re:Mathemagix by Anonymous Coward · · Score: 0

      Well, my first suggestion would be to just write a pretty frontend for maxima, then extend maxima.

  14. www.mathemagix.org by Anonymous Coward · · Score: 0

    Correct address: http://www.mathemagix.org/

  15. Maxima by mmusn · · Score: 2
    Let me put in another word for Maxima. It is based on Macsyma, and it is very powerful.

    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.

  16. Have you ever ... by Anonymous Coward · · Score: 0

    ... had a patch accepted into gcc?

    I've never seen any open source project that "accepts contributions from anyone". They all have gatekeepers.

    Interestingly, the gatekeepers on major open source projects such as gcc tend to be much more critical than the gatekeepers on a commercial closed-source project. Almost all of the commercial closed-source projects that I've worked on, or seen, have zero gatekeeping once you're hired. Contrast this with the review process for gcc, where senior developers routinely have their submissions returned for more development.