Developer(s)  Independent group of people 

Stable release  Continuous using Docker

Repository 

Written in  PostScript 
Operating system  Crossplatform 
Type  Computer algebra system 
License  Modified BSD License 
Website  www 
Axiom is a free, generalpurpose computer algebra system. It consists of an interpreter environment, a compiler and a library, which defines a strongly typed hierarchy.
Two computer algebra systems named Scratchpad were developed by IBM. The first one was started in 1965 by James Griesmer [1] at the request of Ralph Gomory, and written in Fortran.^{[1]} The development of this software was stopped before any public release. The second Scratchpad, originally named Scratchpad II, was developed from 1977 on, at Thomas J. Watson Research Center, under the direction of Richard Dimick Jenks.^{[2]}
The design is principally due to Richard D. Jenks (IBM Research), James H. Davenport (University of Bath), Barry M. Trager (IBM Research), David Y.Y. Yun (Southern Methodist University) and Victor S. Miller (IBM Research). Early consultants on the project were David Barton (University of California, Berkeley) and James W. Thatcher (IBM Research). Implementation included Robert Sutor (IBM Research), Scott C. Morrison (University of California, Berkeley), Christine J. Sundaresan (IBM Research), Timothy Daly (IBM Research), Patrizia Gianni (University of Pisa), Albrecht Fortenbacher (Universitaet Karlsruhe), Stephen M. Watt (IBM Research and University of Waterloo), Josh Cohen (Yale University), Michael Rothstein (Kent State University), Manuel Bronstein (IBM Research), Michael Monagan (Simon Fraser University), Jonathon Steinbach (IBM Research), William Burge (IBM Research), Jim Wen (IBM Research), William Sit (City College of New York), and Clifton Williamson (IBM Research)^{[3]}
Scratchpad II was renamed Axiom when IBM decided, circa 1990, to make it a commercial product. A few years later, it was sold to NAG. In 2001, it was withdrawn from the market and rereleased under the Modified BSD License. Since then, the project's lead developer has been Tim Daly.
In 2007, Axiom was forked twice, originating two different opensource projects: OpenAxiom^{[4]} and FriCAS,^{[5]} following "serious disagreement about project goals".^{[6]} The Axiom project continued to be developed by Tim Daly.
The current research direction is "Proving Axiom Sane", that is, logical, rational, judicious, and sound.
Axiom is a literate program.^{[7]} The source code is becoming available in a set of volumes which are available on the axiomdeveloper.org
website. These volumes contain the actual source code of the system.
The currently available documents are:
The Axiom project has a major focus on providing documentation. Recently the project announced the first in a series of instructional videos, which are also available on the axiomdeveloper.org
^{[8]} website. The first video^{[9]} provides details on the Axiom information sources.^{[9]}
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).
Axiom uses Docker Containers as part of a continuous release process. The latest image is available on any platform using docker and the commands:
docker pull daly/axiom
docker run i t daly/axiom axiom
In Axiom, each object has 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 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.
Within the interpreter environment, Axiom uses type inference and a heuristic algorithm to make explicit type annotations mostly unnecessary.
It features 'HyperDoc', an interactive browserlike help system, and can display two and three dimensional graphics, also providing interactive features like rotation and lighting. It also has a specialized interaction mode for Emacs, as well as a plugin for the TeXmacs editor.
HyperDoc displaying the available operations for a domain
Axiom displaying a surface
Axiom Firefox Browser Interface
Axiom simplifying a heat equation
Axiom matrix manipulation
Axiom computing a Risch integral
Axiom has an implementation of the Risch algorithm for elementary integration, which was done by Manuel Bronstein and Barry Trager.
journal=
(help)Wikimedia Commons has media related to Axiom (computer algebra software). 
Software forks: