This project is not part of the GNU Project.

**Axiom** is a general purpose Computer Algebra system. It is useful for doing mathematics by computer and for research and development of mathematical algorithms. It defines a strongly typed, mathematically correct type hierarchy. It has a programming language and a built-in compiler.

Axiom has been in development since 1973 and was sold as a commercial product. It has been released as free software.

Efforts are underway to extend this software to (a) develop a better user interface (b) make it useful as a teaching tool (c) develop an algebra server protocol (d) integrate additional mathematics (e) rebuild the algebra in a literate programming style (f) integrate logic programming (g) develop an Axiom Journal with refereed submissions.

Axiom is sponsored by CAISS, the Center for Algorithms and Interactive Scientific Software, at The City College of New York.

**Philosophy.**

The Axiom project focuses on the “30 Year Horizon”. The primary philosophy is that Axiom needs to develop several fundamental features in order to be useful to the next generation of computational mathematicians. Knuth's literate programming technique is used throughout the source code. Axiom plans to use proof technology to prove the correctness of the algorithms (such as Coq and ACL2).

**Design.**

In Axiom, all objects have a type. Examples of types are mathematical structures (such as rings, fields, polynomials) as well as data structures from computer science (e.g., lists, trees, hash tables).

A function can take a type as argument, and its return value can also be a type. For example, Fraction is a function, that takes an IntegralDomain as argument, and returns the field of fractions of its argument. As another example, the ring of 4\times 4 matrices with rational entries would be constructed as SquareMatrix(4, Fraction Integer). Of course, when working in this domain, 1 is interpreted as the identity matrix and A^-1 would give the inverse of the matrix A, if it exists.

Several operations can have the same name, and the types of both the arguments and the result are used to determine which operation is applied (cf. function overloading).

Axiom comes with an extension language called SPAD. All the mathematical knowledge of Axiom is written in this language. The interpreter accepts roughly the same language. SPAD was further developed under the name A# and later Aldor. The latter can still be used as an alternative extension language. It is, however, distributed under a different license.

**Features.**

Within the interpreter environment, Axiom uses type inference and a heuristic algorithm to make explicit type annotations mostly unnecessary.

It features 'HyperDoc', an interactive browser-like help system, and can display two and three dimensional graphics, also providing interactive features like rotation and lighting. It also has a specialised interaction mode for Emacs, as well as a plugin for the TeXmacs editor.

**Download**.

*Pre-compiled binaries*

Axiom has been compiled to run on various platforms.

This table contains links to various tar-gzipped version of files. In general you need to know the name of the file you download, usually something ending in .tgz (tar-gzip). You also need to know where the file gets untarred, this is referred to as (where) below. When you cd to the (where) location you should see the top level Makefile for Axiom, the changelog, etc.

Axiom builds on various platforms and uses the convention that the last name in the AXIOM shell variable denotes the type of system. This is referred to as the SYSNAME. You need to know which SYSNAME you downloaded.

To use one of these binaries just do:

download the binary and untar it.

cd axiom

export AXIOM=`pwd`/mnt/SYSNAME <= replace SYSNAME with actual name

export PATH=$AXIOM/bin:$PATH

ubuntu

src bin

ubuntu64

src

**Source code**

Axiom source code is maintained in a **Gold** and **Silver** version. The **Gold** version is the "released" version. Gold versions are released every two months.

The **Silver** version is the current "bleeding edge" that contains changes which will be tested and released into **Gold** every two months. Unless you need a recent feature or bug fix, or are working as a developer, there is no reason to use **Silver**

**GOLD SOURCES**

**Tarball**

The **Gold** (November 2008) release of Axiom is available.

The source code tarball from November, 2008 is here

*wget http://axiom.axiom-developer.org/axiom-website/downloads/axiom-july2008-src.tgz *

tar -zxf axiom-july2008-src.tgz

cd axiom

export AXIOM=`pwd`/mnt/ (see table below)

export PATH=$AXIOM/bin:$PATH

make

**GIT**

You can clone the git repository from GitHub:

*git clone git://github.com/daly/axiom.git *

cd axiom

export AXIOM=`pwd`/mnt/ (see table below)

export PATH=$AXIOM/bin:$PATH

make

Or you can download the sourcecode from savannah:

*cd axiom *

export AXIOM=`pwd`/mnt/ (see table below)

export PATH=$AXIOM/bin:$PATH

make

*If you liked this article, subscribe to the feed by clicking the image below to keep informed about new contents of the blog: *