>Open source mathematical programs

  • Axiom is a general purpose Computer Algebra system. It is useful 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 is free and open source (distributed under a BSD-like license). The lead developer is Tim Daly.

    1. FriCAS is an Axiom fork. Its starting point is wh-sandbox branch of the Axiom project. Axiom project tried to use literate programming methodology and switch emphasis from code to documentation. In practice that means that almost all code is wrapped in so called pamphlet files, which causes difficulties during developement. FriCAS will use traditional methodology for new developement and gradually convert other files back to traditional pamphlet form. The lead developer is Waldek Hebisch.
    2. Open-Axiom is another Axiom fork. OpenAxiom strives to support ubiquitous, advanced, high quality open source computer algebra on major operating systems, in particular major Unix variants, GNU/Linux variants, Windows, and handheld devices. It aims at being the open source computer algebra system of choice for research, teaching, engineering, etc. The lead developer is Gabriel Dos Reis.

  • GAP is a system for computational discrete algebra, with particular emphasis on computational group theory. GAP provides a programming language, a library of thousands of functions implementing algebraic algorithms written in the GAP language as well as large data libraries of algebraic objects. GAP is used in research and teaching for studying groups and their representations, rings, vector spaces, algebras, combinatorial structures, error-correcting codes, and more. The system, including source, is distributed freely under the GNU General Public License.
  • GINAC ("Ginac Is Not A Cas") does not try to provide extensive algebraic capabilities and a simple programming language but instead accepts a given language (C++) and extends it by a set of algebraic capabilities. See the tutorial for more details. It is free software distributed under the GPL.

  • JAS ("Java Algebra System") The Java Algebra System (JAS) is an object oriented, type safe, multi-threaded approach to computer algebra. JAS provides a well designed software library using generic types for algebraic computations implemented in the Java programming language. The library can be used as any other Java software package, or it can be used interactively or interpreted through a Jython front end. The focus at the moment is on commutative and solvable polynomials, Groebner bases, and applications. It is free software distributed under the GPL. See also this page.

  • Macaulay2 is a computer algebra system for algebraic geometry and commutative algebra. It is distrubuted under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation.
  • The Magnus Computational Group Theory Package is an innovative symbolic algebra package providing facilities for doing calculations in and about infinite groups. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (see doc/COPYING file) as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Copyright (C) 1994-2002 The New York Group Theory Cooperative.

    Related (in the sense that A. Myasnikov was a developer for MAGNUS and is now a developer for CRAG) to MAGNUS is CRAG (Cryptography And Groups), which is a C++ library to test cryptographic protocols constructed from non-commutative groups. CRAG is distributed under the GNU Lesser General Public License.
  • Mathomatic is a portable, general purpose CAS (Computer Algebra System) written entirely in the C programming language. It is free software, published under the GNU Lesser General Public License (LGPL version 2.1). The lead developer is George Gesslein.
  • Maxima is a general purpose Computer Algebra system. Maxima itself is reasonably feature complete, with abilities such as symbolic integration, 3D plotting, and an ODE solver. Maxima is a descendant of DOE Macsyma, which had its origins in the late 1960s at MIT. Macsyma was the first of a new breed of computer algebra systems, leading the way for programs such as Maple and Mathematica. This particular variant of Macsyma was maintained by William Schelter from 1982 until he passed away in 2001. In 1998 he obtained permission to release the source code under GPL.
  • GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with Matlab. It may also be used as a batch-oriented language. You may redistribute Octave and/or modify it under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation.
  • PARI/GP is a widely used computer algebra system designed for fast computations in number theory (factorizations, algebraic number theory, elliptic curves...), but also contains a large number of other useful functions to compute with mathematical entities such as matrices, polynomials, power series, algebraic numbers, etc., and a lot of transcendental functions. It is distributed freely under the GNU General Public License.
  • The R Project for Statistical Computing is a system for statistical computation and graphics. It consists of a language plus a run-time environment with graphics, a debugger, access to certain system functions, and the ability to run programs stored in script files. See also CRAN for some mirror sites and extensions. It is free software distributed under a GNU-style copyleft, and an official part of the GNU project.
  • The Reduce is a system for doing algebra by computer, which also supports numerical approximation and interfaces to gnuplot (which has a different distribution license) to provide graphics. It is free software distributed under a BSD-style license.
  • SAGE ("Software for Algebra and Geometry Experimentation") SAGE is a framework for number theory, algebra, and geometry computation that is initially being designed for computing with elliptic curves and modular forms now is much more generally useful for algebra, geometry, and number theory. It includes (for example) Maxima, PARI, GAP, and Singular. It is open source and freely available under the terms of the GPL. The lead developer is William Stein.
  • SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python and does not require any external libraries. License: New BSD License The lead developer is Ondrej Certik.
  • Singular is a Computer Algebra System for polynomial computations with special emphasis on the needs of commutative algebra, algebraic geometry, and singularity theory. It is distributed freely under the GNU General Public License.

    The Singular team won the ISAAC 2004 Richard D. Jenks Memorial Prize for Excellence in Software Engineering for Computer Algebra.

  • Symmetrica is a special purpose Computer Algebra System to handle the following topics
    • ordinary, modular, and projective representation theory of the symmetric group and related ("classical") groups
    • combinatorics of tableaux, symmetric functions and polynomials,
    • commutative and non commutative Schubert polynomials
    • operations of finite groups.
    • ordinary representation theory of Hecke algebras of type An
    Symmetrica is public domain and developed by Lehrstuhl Mathematik II of the University of Bayreuth.

  • Texmacs free scientific text editor, which was both inspired by TeX and GNU Emacs. The editor allows you to write structured documents via a wysiwyg (what-you-see-is-what-you-get) and user friendly interface. The program implements high-quality typesetting algorithms and TeX fonts, which help you to produce professionally looking documents. The high typesetting quality still goes through for automatically generated formulas, which makes TeXmacs suitable as an interface for computer algebra systems. It has been configured already for Axiom, Macaulay2, Pari, for example. It is distributed freely under the GNU General Public License. The lead developer is Joris van der Hoeven.
  • YACAS ("Yet Another Computer Algebra System") is a a program for symbolic manipulation of mathematical expressions. It uses its own programming language designed for symbolic as well as arbitrary-precision numerical computations. The system has a library of scripts that implement many of the symbolic algebra operations; new algorithms can be easily added to the library. YACAS comes with extensive documentation (320+ pages) covering the scripting language, the functionality that is already implemented in the system, and the algorithms we used. It is free software distributed under the GPL. The lead developer is Ayal Pinkus.
  • More links to open source math software at openscience.org, though beware not all software listed there is open source in the OSI sense.