# List of open-source software for mathematics

This is a list of open-source software to be used for high-order mathematical calculations. This software has played an important role in the field of mathematics. Open-source software in mathematics has become pivotal in education because of the high cost of textbooks.

## Computer algebra systems

A computer algebra system (CAS) is a software product designed for manipulation of mathematical formulae. The principal objective of a computer algebra system is to systematize monotonous and sometimes problematic algebraic manipulation tasks. The primary difference between a computer algebra system and a traditional calculator is the ability to deal with equations symbolically rather than numerically. The precise uses and capabilities of these systems differ greatly from one system to another, yet their purpose remains the same: manipulation of symbolic equations. Computer algebra systems often include facilities for graphing equations and provide a programming language for the users' own procedures.

### Axiom

Axiom is a general-purpose CAS. It has been in development since 1971 by IBM, and was originally named scratchpad. Richard Jenks originally headed it but over the years Barry Trager who then shaped the direction of the scratchpad project took over the project. It was eventually sold to the Numerical Algorithms Group (NAG) and was renamed Axiom. After a failure to launch as a product, NAG decided to release it as a free software in 2001 with more than 300 man-years worth of research involved. Axiom is licensed under a Modified BSD license.

### Cadabra

A CAS designed for the solution of problems in physical field theory. An unpublished computational program written in Pascal called Abra inspired this open-source software. Abra was originally designed for physicists to compute problems present in quantum mechanics. Kespers Peeters then decided to write a similar program in C computing language rather than Pascal, which he renamed Cadabra. However, Cadabra has been expanded for a wider range of uses, it is no longer restricted to physicists.

### CoCoA

CoCoA (COmputations in COmmutative Algebra) is open-source software used for computing multivariate polynomials and initiated in 1987. Originally written in Pascal, CoCoA was later translated into C.

### GAP

GAP was initiated by RWTH Aachen University in 1986. This was the case until in 1997 when they decided to co-develop GAP further with CIRCA (Centre for Research in Computational Algebra). Unlike MAXIMA and Axiom, GAP is a system for computational discrete algebra with particular emphasis on computational group theory. In March 2005 the GAP Council and the GAP developers have agreed that status and responsibilities of "GAP Headquarters" should be passed to an equal collaboration of a number of "GAP Centres", where there is permanent staff involvement and an element of collective or organizational commitment, while fully recognizing the vital contributions of many individuals outside those centers.

### Mathics

Mathics is an open-source GPL3 license version of the Wolfram Language.

### Maxima

This free software had an earlier incarnation, Macsyma. Developed by Massachusetts Institute of Technology in the 1960s, it was maintained by William Schelter from 1982 to 2001. In 1998, Schelter obtained permission to release Maxima as open-source software under the GNU General Public license and the source code was released later that year. Since his death in 2001, a group of Maxima enthusiasts have continued to provide technical support.

### PARI/GP

PARI/GP is a computer algebra system that facilitates number-theory computation. Besides support of factoring, algebraic number theory, and analysis of elliptic curves, it works with mathematical objects like matrices, polynomials, power series, algebraic numbers, and transcendental functions. Originally developed by Henri Cohen et al at Université Bordeaux I, France, it now is GPL software. The gp interactive shell allows GP-language scripting; the gp2c compiler compiles GP scripts into C; and the PARI C library allows C programs to use PARI/GP functions.

### Sympy

Sympy is a computer algebra system written in Python.

### Xcas

Xcas/Giac is an open-source project developed at the Joseph Fourier University of Grenoble since 2000. Written in C++, maintained by Bernard Parisse's [fr] et al. and available for Windows, Mac, Linux and many others platforms. It has a compatibility mode with Maple, Derive and MuPAD software and TI-89, TI-92 and Voyage 200 calculators. The system was chosen by Hewlett-Packard as the CAS for their HP Prime calculator, which utilizes the Giac/Xcas 1.1.2 engine under a dual-license scheme.

## Geometry
### Geogebra

Geogebra (Geometry and Algebra) - combines geometric objects like circles and graphs of functions with its algebraic representation e.g. $x^{2}+y^{2}=r^{2}$ representing a circle with the radius $r$. Designed for use in schools and educational settings.

## Plotting software

* Chart.js
* D3.js
* ggplot2
* Graphics Layout Engine
* Gnuplot
* Grace
* Matplotlib
* Plotly
* PLplot
* PyX
* ROOT
* SciDAVis
* Vega

## Numerical analysis

Numerical analysis is an area of mathematics that creates and analyzes algorithms for obtaining numerical approximations to problems involving continuous variables. When an arbitrary function does not have a closed form as its solution, there would not be any analytical tools present to evaluate the desired solutions, hence an approximation method is employed instead.

### FreeMat

FreeMat is an alternative to MATLAB.

### GNU Scientific Library

The GNU Scientific Library (or GSL) is a software library for numerical computations in applied mathematics and science. The GSL is written in C and wrappers are available for other programming languages. The GSL is part of the GNU Project and is distributed under the GNU General Public License.

### Octave

Octave (aka GNU Octave) is an alternative to MATLAB. Originally conceived in 1988 by John W. Eaton as a companion software for an undergraduate textbook, Eaton later opted to modify it into a more flexible tool. Development began in 1992 and the alpha version was released in 1993. Subsequently, version 1.0 was released a year after that in 1994. Octave is a high level language with the primary intention in numerical computation.

### Modelica

Modelica is an object-oriented, declarative, multi-domain modeling language for component-oriented modeling of complex systems including algebraic and differential equations. OpenModelica and Jmodelica are some of the opensource implementations of the language.

### Scilab

Inspired by MATLAB, Scilab was initiated in the mid-1980s at the INRIA (French national Institute for computer science and control). François Delebecque and Serge Steer developed it and it was released by INRIA in 1994 as an open-source software. Since 2008, Scilab has been distributed under the CeCILL license, which is GPL compatible. In 2010, Scilab Enterprise was founded to provide even more support to the software.

### SciPy

SciPy is a python programming language library to take advantage of Python's ability to handle large data sets.

## Statistics

Statistics is the study of how to collate and interpret numerical information from data. It is the science of learning from data and communicating uncertainty. There are two branches in statistics: ‘Descriptive statistics’’ and ‘’ Inferential statistics
Descriptive statistics involves methods of organizing, picturing and summarizing information from data. Inferential statistics involves methods of using information from a sample to draw conclusions about the Population.

### Alternatives to SPSS

R Statistics Software, SOFA Statistics, PSPP and JASP are open source software competitors to SPSS, widely used for statistical analysis of sampled data. PSPP is maintained by the GNU project. SOFA Statistics is addressing beginners with basic features, while GNU-R Statistics Software has a large community that maintains R packages also beyond statistical analysis.

### R

R is both a language and software used for statistical computing and graphing. R was originally developed by Bell Laboratories (Currently known as Lucent Technologies) by John Chambers. Since R is largely written in C language, users can use C or C++ commands to manipulate R-objects directly. Also, R runs on most UNIX platforms. R is currently part of the Free Software Foundation GNU project.

### Demetra+

Demetra is a program for seasonal adjustments that was developed and published by Eurostat – European Commission under the EUPL license.

## Multipurpose mathematics software

Such software were created with the original intent of providing a math platform that can be compared to proprietary software such as MATLAB and Mathematica. They contain multiple other free software and hence have more features than the rest of the software mentioned.

### SageMath

SageMath is designed partially as a free alternative to the general-purpose mathematics products Maple and MATLAB. It can be downloaded or used through a web site. SageMath comprises a variety of other free packages, with a common interface and language. SageMath is developed in Python.
SageMath was initiated by William Stein, of Harvard University in 2005 for his personal project in number theory. It was originally known as "HECKE and Manin". After a short while it was renamed SAGE, which stands for ‘’Software of Algebra and Geometry Experimentation’’. Sage 0.1 was released in 2005 and almost a year later Sage 1.0 was released. It already consisted of Pari, GAP, Singular and Maxima with an interface that rivals that of Mathematica.

## Theorem provers

* Alt-Ergo
* Automath
* CVC
* E
* IsaPlanner
* LCF
* Mizar
* NuPRL
* Paradox
* Prover9
* PVS
* SPARK (programming language)
* Twelf
* Z3 Theorem Prover

## Mathematical notation software

* AsciiMath
* GNU TeXmacs
* KaTeX
* LaTeX
* LibreOffice Math
* MathJax
* MathML
* TeX

## Recreational mathematics software

* Golly