Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming IT Technology

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."
This discussion has been archived. No new comments can be posted.

Open Source Computer Algebra Systems

Comments Filter:
  • maybe i'm not understanding it properly, but will this be a large maths library? if so what will it include exactly?"
    • 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.
    • by njdj ( 458173 )
      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.
      • 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.
  • Well, though it stands for GiNaC is Not a CAS (Computer Algebre System). GiNaC [ginac.de], 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.
    • 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.
  • Bad Idea (Score:2, Insightful)

    by cperciva ( 102828 )
    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.
    • Re:Bad Idea (Score:4, Insightful)

      by swillden ( 191260 ) <shawn-ds@willden.org> on Saturday March 30, 2002 @12:25PM (#3253912) Journal

      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.

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

  • 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 [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.

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

      • 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.
  • 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 [unl.edu]. Enjoy.

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

    (yes, it's a joke)

  • LISP and Prolog anyone?
  • For anyone interested in free computer algebra systems, I would like to point to GNU TeXmacs [texmacs.org], 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).
  • We plan to write a compiler for a new computer algebra system called mathemagix [www.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.
  • 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.

The optimum committee has no members. -- Norman Augustine

Working...