# Axiom is a general purpose Computer Algebra system.

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.

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:

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

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:

### About Hugo Repetto

Ubuntu is a Linux distribution that offers an operating system predominantly focused on desktop computers but also provides support for servers. Based on Debian GNU / Linux, Ubuntu focuses on ease of use, freedom in usage restriction, regular releases (every 6 months) and ease of installation.
Blogger Comment