Symbolic and Specialized Mathematics

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.

Computer Algebra Kit (DEMO)

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 PostScript format.



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 documentation.



A system for computational discrete algebra with particular emphasis on computational group theory.


GNU Calc

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 Project.

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 documentation.



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 users. 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 with GCL. This distribution comes with a 235+ page user's manual in Texinfo 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 PariPython.



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 CAIN.



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 symmetric groups.

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 format.


Last updated or checked: Sept. 28, 1998

S. Baum
Dept. of Oceanography
Texas A&M University