Note: This section is not going to be updated for the foreseeable
future, and thus should be considered a historical snapshot of what
was available six years ago rather than a current source (Mar. 23, 2004).
Packages along the lines of Mathematica, Reduce, Axiom and
the like. With these you can symbolically integrate,
differentiate, and perform various other similar tasks.
Some are of obvious use only to number theorists and other
such obscurantists, but one never knows when such nebulous
enterprises will have more pragmatic uses.
Links checked and live as of Sept. 28, 1998.
Go directly to a specific package or
browse the lot.
- A collection of programs or objects for performing computer
algebra tasks. The kit provides objects for multi-precision
integer arithmetic, computing with polynomials, computing with
matrices of integers, and more. There versions of this for
NextStep, Stepstone and GNU Objective C. Demo version for the
latter are available for Sun and Linux platforms.
- A computer algebra system
designed for computations in and with algebraic structures
and substructures. The
structures implemented are commutative polynomial rings and
non-commutative algebras as well as modules over them, with
the implementation of skewed fields planned.
FELIX consists of three layers, the first written completely
in assembly language and which is system dependent.
The second layer is the FELIX programming language which contains
control constructs and a complete procedure concept. The
last layer is a collection of built-in algebraic algorithms.
FELIX is available as a binary executable for NetBSD,
FreeBSD, Linux Intel, and Windows platforms. It is documented
in a user's manual available in TeX DVI and
- A computer program for manipulating very large formulae created
by the folks at NIKHEF. It
is devoted to the manipulation of such formulae where other systems
may give up, pattern matching in formula manipulation, and computations
in noncommutative algebras and high-energy physics. It is best seen
as complementary to such programs as Maple and Mathematica, i.e. not
much knowledge is built in but it provides you with the means to
grind quickly through large formulae. FORM is designed such that
the entire available diskspace can be used for computations without
any significant loss in speed. It is best used for very large and
highly specialized applications, and as such several special
purpose packages are available. There are two versions of FORM.
Version 1 is freely available in binary form for about a dozen
different systems, including Linux. Information about how to obtain
the second, commercial version can be found at the
FORM Web site along with various kinds and forms of
- A system for computational discrete algebra with particular
emphasis on computational group theory.
- An advanced calculator and mathematical tool that runs as
part of the GNU Emacs environment. It is roughly based on the
HP-28/48 calculator series and features a choice of algebraic
or RPN notation, arbitrary precision integers and floating-point
numbers, arithmetic on rational numbers, complex numbers,
vectors and matrices, and algebraic formulas, mathematical
operations such as logs and trig functions, financial functions,
number theoretical features, algebraic manipulation (including
symbolic calculus), graphics via the GNUPLOT package, and easy
programming using keyboard macros, algebraic formulas, algebraic
rewrite rules, or extended Emacs Lisp. It comes with a 600 page
manual in both online and hardcopy form. GNU Calc is available
as source code and should install on any system on which Emacs
is already installed. The source code can be found as
calc-*.gz in the indicated directory.
- A symbolic mathematics system for the simplification and
manipulation of equations and single and multiple valued
algebraic expressions constructed of numbers, variables,
radicals, and algebraic, differential and holonomic functions.
Additionally, vectors and matrices of the above objects are
included. Installation of this system requires a Scheme
implementation, one of which, SCM, is available in the same
directory as JACAL. It also uses the Scheme library SLIB
as a portable platform (also available in the same directory)
which has initialization files for most Scheme implementations.
JACAL is loaded from and used within whichever Scheme implementation
you're using, and thus can be installed on most systems for
which such implementations are available.
It comes with a 34 page manual.
- The Computational Algebraic
Number Theory package
is for mathematicians interested in algebraic number theory and
who want to perform sophisticated computations in number fields.
KASH, or the KANT SHell,
is a shell from within which the KANT functions can be used without
having to do any programming. The latest versions are KASH
1.61 and KANT V4 (4/96) in which many functions have been improved
and msql database support has been added.
KANT V4 is built
on a foundation consisting of a memory management package,
arbitrary precision integer and real number packages, a multivariate
polynomial package over arbitrary rings, and a general linear
algebra package. The number theoretic algorithms package, called
Anf, supports computations in number fields, ideals in number
fields, relative extensions of number fields, lattices, and
specials. The KASH environment also includes PVM support,
a TeX-based online help system, support of internal structures
for programmers, examples of the use of the programming language, and
a data base for number theoretic data.
More details can be found at the
KANT Web site along with more information about the KANT
KANT-V4 is written in ANSI-C and built on the Cayley
platform and is presently available only in binary form
bundled with the KASH shell.
KASH is available in binary form for
HP 7000, IBM RS600, Sun SPARC, SGI IRIX, and Linux platforms.
A user's guide and a reference manual are available in
PostScript form, and together comprise over 450 pages of
- A computer algebra system for mathematical computations in
algebraic geometry and commutative algebra. Its core is a carefully
tuned implementation of Grobner basis methods for manipulating
systems of polynomial equations. It is written in C and
versions are available for
Macintosh and UNIX systems. The documentation is included
in the distribution. An earlier version can also be accessed
via the Macaulay2 site.
- The Modula-2 Algebra System is
an experimental computer algebra
system which combines imperative programming facilities with
algebraic specification capabilities for the design and
study of algebraic algorithms.
The goals of the system are to provide: an interactive
computer algebra system, comprehensive algorithm libraries,
a familiar program development system with an efficient compiler,
an algebraic specification component for data structure and
algorithm design, and algorithm documention which is open to
Key features of the MAS system include: portability (with
machine dependencies isolated in a small kernel; extensibility
through adding and interfacing to external algorithm libraries;
an open system architecture; transparent low-level facilities;
automatic garbage collection; stable error handling; input/output
with streams; and expressiveness, i.e. the capability of specifying
abstract algebraic concept like rings or fields.
Library packages include those for Groebner bases, involutive
bases, invariant polynomials, linear algebra, basic arithmetic (complex
numbers, quaternions, octonions, and finite fields), and more.
MAS is available as source code as well as an executable for
HP-UX, AIX, Linux, OS/2, Nextstep and SunOS platforms.
Extensive documentation is available in PostScript format as
well as many examples and test files. Compilation of the
source code will of course require the acquisition and
compilation of the
Modula-2 language package.
- A symbolic math program that can automatically solve,
simplify, and combine algebraic equations, do calculus
operations, perform polynomial and complex arithmetic, and
much more. The C source code for this is available and
should compile on just about any UNIX box. A manual is
available separately for a price.
- A fairly complete computer algebra system which is
a Common Lisp implementation based on the original
implementation of Macsyma at MIT. This can be compiled
This distribution comes with a 235+ page user's manual
format. The same directory also holds a package
called Affine which is a set of extensions to MAXIMA
which allows things like Todd-Coxeter algorithms and
non-commutative Grobner bases to be used. The directory
also contains xgraph which is used by MAXIMA for some
plots. The use of this software supposedly requires that
a fee be paid to DOE NESC, although a README file in the
directory isn't exactly crystal clear on that point.
- A Common Lisp implementation of a small and efficient
computer algebra system. The intention was to be as fast
as possible without making major concessions to usefulness.
For similar problems Mockmma is said to be faster than
Macsyma, Reduce, Maple or Mathematica. This has a
rudimentary interface and not nearly as many features
as the other systems mentioned but that was not the
intention of the designer. This was designed using
Allegro CL but apparently can be used with other CL implementations
without too much pain.
- A system for symbolic and numeric computation, parallel
mathematical programming, and mathematical visualization. It is
intended to be a general purpose computer algebra system a la
Mathematica or Reduce. It consists of a small kernel written
in C and libraries written in the MuPAD programming language, both
of which are machine independent. There is a terminal-based
user interface as well as graphical interfaces for UNIX and
Mac systems. There are currently library packages for linear
algebra, polynomial factorization, integration, number theory,
typechecking, and various other tasks. Plots can be created
in 2- and 3-D and displayed interactively as well as saved in
ASCII, binary, raster, GIF or PostScript formats.
MuPAD has a functional programming language with procedural
extensions and Pascal-like syntax, and an increasing number
of parallel constructs are available. Dynamic modules are
also supported (on systems that support such things)
where users can implement algorithms in C
(and eventually C++) which are compiled and directly linked
to the kernel at run time. Such modules allow an increase
in both speed and flexibility over the usual library concept.
Various manuals and tutorials are available in German and
English, including online hypertext versions of the manual/tutorial
and a demo. Binaries are available for Mac and Windows systems
as well as several UNIX flavors including DEC Alpha and Ultrix,
HP, IBM RS6000, Sun SPARC, SGI Indy, FreeBSD, Linux, and NetBSD.
The version available is a full-featured demo with limited
memory usage. This limitation can be unlocked with a key sent
via e-mail after you've filled out a license form and returned
it via e-mail or snail mail.
- The Number Theory Library is a high-performance, portable
C++ library providing data structures and algorithms for
manipulating signed, arbitrary length integers as well as
for vectors, matrices, and polynomials over the integers and
over finite fields. The package also uses state-of-the-art algorithms,
e.g. the code for polynomial arithmetic is one of the fastest
available. NTL is not meant to be a complete computer algebra
package but rather to server as a stable, portable platform for
implementing other algorithms.
NTL is written entirely in C++ and can be easily installed
on most UNIX platforms. Documentation is available online
and also in ASCII files in the package.
- A package capable of doing formal computations on recursive
types at high speed. It is primarily aimed at number theorists,
but can be used by people whose primary need is speed. Symbolic
manipulation a la Mathematica et al. is possible, but it usually
fares poorly compared to the beforementioned systems. Its main
advantages are speed (for certain classes of applications) and
the possibility of directly using data types familiar to
mathematicians. PARI can be used either as a library called
from any upper-level language application (e.g. C, C++, Pascal
and Fortran) or as a sophisticated programmable calculator (named
GP). Binaries are available for Amiga, Mac, and MS-DOS systems as
well as for several UNIX flavors (e.g. Dec Alpha, HP, Sun SPARC
and Solaris, and Linux). The source code is also available.
It comes with a 150+ page manual. There is an article about this
package in the May 1995 issue of the Linux Journal. A related
project is a PARI interface to the
Python language called
- The Research Instrument for Symbolic Algebra is
a computer algebra system which provides a programming
language Asir with several subroutine libraries that can also be used
as parts of other programs. The programming system has a C-like
language, and interpreter, and a dbx-like source debugger. This
is available as a binary for Linux platforms as well as some
other UNIX platforms.
- The Symbolic Algebra Computation Library is a library of C
programs for performing computer algebra. A file containing
information on how to compile this on Linux boxes can be
found in the subdirectory "upload". See also the PACLIB
package at the same site in a different directory.
- The Simple Algebraic Math Library is a C library for
symbolic calculations along with some application programs.
It provides an object oriented framework for defining and
handling mathematical types and implements the most common
data types in computer algebra, e.g. integers, reals, fractions,
complex numbers, polynomials, tensors, matrices, etc.
The application programs are an interactive symbolic calculator
(samuel), a programming language (induce), and a program to
factorize integers. This should compile on any UNIX system
with GCC 2.5.0 or later, gdbm, Perl and gmake.
- A computer algebra system focusing mainly on algebraic
number theory. It consists of an interface, a programming
language (C), the basic system (I/O, garbage collection, etc.),
a multiple precision arithmetic package, a polynomial package,
a matrix-vector package, an elliptic curves package, software
libraries for user applications, and an interactive calculator
called simcalc. There is also, unsurprisingly, a number theory
package, the details of which can be found in the 120+ page
user manual. SIMATH is written in C, but all of the library
functions can also be used in Fortran programs by means of
conversion routines that are part of the system. The source
code is available and has been installed on Sun, HP, Apollo,
SGI and Linux systems. More details can be found on the
SIMATH Web page at
- A computer algebra system for computing information about
singularities for use in algebraic geometry.
It is able to work with non-homogeneous and homogeneous input and also
to compute in the localization of the polynomial ring in 0.
Binary versions of Singular are available for several platforms,
including Linux. The documentation is contained within a user's
manual and a tutorial, both of which are available in TeX format.
- A computer algebra package devoted to representation theory,
invariant theory, and the combinatorics of finite symmetric
groups and related classes of groups (e.g. the alternating
groups, wreath products of symmetric or alternating groups, finite
and infinite linear groups, and other classes of groups).
It is meant to be a tool for those working on representation
theory or on its application to mathematics, physics or chemistry.
Symmetrica provides routines for handling several mathematical
structures including: ordinary irreducible and Brauer characters
as well as decomposition numbers of symmetric groups; ordinary
irreducible characters of alternating groups; ordinary irreducible
characters of wreath products of symmetric groups; ordinary and
modular irreducible matrix representations of symmetric groups;
ordinary irreducible polynomial representations of general
linear groups; multivariate polynomials and, in particular, Schubert
and zonal polynomials; Schur polynomials as well as several other
series of symmetric polynomials; cycle indicator polynomials for
combinatorial enumeration; and the ordinary group algebra of the
The Symmetrica distribution includes the source code, written in
standard C that should compile on most platforms with a C
compiler, and a 180 page user's manual in TeX and PostScript