logo back up home forward   further reading more topics »

Computer Algebra Programs

In some cases I have written programs to help with evaluating and illustrating mathematical topics (see this page) but writing a general purpose abstract algebra program is not really sensible when there already exist such programs so I have also used Axiom/FriCAS:

Axiom

Axiom is a free general purpose computer algebra system. It has been in development since 1971 originally as Scratchpad by researchers at IBM under the direction of Richard Dimick Jenks. In the 1990s it was sold to NAG and given its current name. In 2001 it was withdrawn from the market and released to Tim Daly, the project lead developer, under the Modified BSD License. In 2007, Axiom was forked into two different open source projects: OpenAxiom, and FriCAS.

It is a pity that the developer effort and user resources are fragmented by these forks in this way but sometimes it can help to have several varients because if one fork does not work very well with your operating system then there is a chance that another fork will work better.

So I suggest you try one or more of the versions availible and see which works best with your computer and operating system etc. For more information see:

No slight to OpenAxiom intended, Once I found a setup that worked then I just havent got round to trying anything else yet.

Just to explain the issues involved I will go through some of my experiences in using these programs with the openSUSE operating system, you may have different expeiences so I'm not suggesting you make the same choices as me, if you have any problems both forks have very helpful email groups.

My Expieriences using openSUSE 11.1

start axiom

Just by chance I first tried Axiom (see this page for details). At first this went very well except that anything involving the draw function failed with:

>> System error:
Unknown bfd format

This was a bit annoying, but since I did not need to use the draw function it did not hold be back, however when I first compiled an SPAD program and tried to use it I got the exact same error:

>> System error:
Unknown bfd format

This was a big problem so I asked on the email group and altough they are helpful and friendly there were no answers to this particular problem.

So at this stage I thought I would try another fork: FriCAS (see this page for details). At first this was worse, I could not even get the program to start, every time I ran the script to run FriCAS, the cursor steped down about 3 lines and then, after a short delay, returned to the command line prompt without any error messages on the system at all.

So I asked about this on the FriCAS email group and they also are are helpful and friendly there, in the end Bill Page found the answer, it seems that on SuSE the virtual memory limit is set rather low by default. The command:

ulimit -v unlimited

added to the startup script removed this limit and now the FriCAS program works perfectly, including draw function and user compiled programs.

Other Computer Algebra Programs

There is a wider list on this page:
http://en.wikipedia.org/wiki/Comparison_of_computer_algebra_systems
Here are my own comments on some of them:

Program

Comments

Axiom/FriCAS/OpenAxiom

pro's

Covers a wide range of algebras, includes equation solvers.

con's

Steep learning curve, need to learn SPAD language, very poor error messages, no IDE environment, no direct access to class library.

Language

SPAD/Aldor - written in mixture of lisp and C.

DoCon

http://www.haskell.org/docon/

pro's

Can program in Haskell environment.

con's

Non-standard open source licence.
Does not cover such a wide range of algebras as Axiom.

Language

Haskell.

UACalc

http://www.uacalc.org/

Universal Algebra Calculator - a more specialised program just for universal algebra.

Language

Java.

Scalala

http://code.google.com/p/scalala/

pro's

This is an internal DSL (Domain Specific Language) for Scala and so users have full access to Java environment.

con's

Only supports numeric programming.

Language

Scala.

kiama

http://code.google.com/p/kiama/wiki/Lambda2

Includes a library for parsing lambda calculus, but not a general mathematics language program.

Language

Scala

Java Algebra System

http://krum.rz.uni-mannheim.de/jas/

 

Language

Java and Java Python

SymJA

http://code.google.com/p/symja/

 

Language

Java.

Gap

http://www.gap-system.org/

discrete algebra
no longer supported

Macaulay2

http://www.math.uiuc.edu/Macaulay2/

Own Language

Maxima

http://maxima.sourceforge.net/

Lisp

Octave

http://www.gnu.org/software/octave/

numerical
   
   

metadata block
see also:
Correspondence about this page

Book Shop - Further reading.

Where I can, I have put links to Amazon for books that are relevant to the subject, click on the appropriate country flag to get more details of the book or to buy it from them.

flag flag flag flag flag flag Axiom Volume 1: Tutorial. Documentation is freely availible from: http://www.axiom-developer.org/axiom-website/documentation.html

 

Commercial Software Shop

Where I can, I have put links to Amazon for commercial software, not directly related to the software project, but related to the subject being discussed, click on the appropriate country flag to get more details of the software or to buy it from them.

 

Can you help?

Please send me any improvements to here. I would appreciate ideas to make the pages more useful including error correction, ideas for new pages, improvements to wording. It helps if you quote the full URL of the page.

 

progam

I am working on a project which uses these principles, if you would like to help me with this you are welcome to join in, here:

http://sourceforge.net/projects/mjbworld/

This site may have errors. Don't use for critical systems.

Copyright (c) 1998-2010 Martin John Baker - All rights reserved - privacy policy.