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.
Calculators
A computer algebra system 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 (computer algebra system)">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 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">Cadabra (computer program)">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 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 (software)">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. 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.[Mathomatic]
is portable general-purpose computer algebra system capable of performing symbolic calculus, algebraic simplification, and equation solving.[Mathics]
Mathics is an open-source GPL3 license version of the Wolfram Language.Maxima">Maxima (software)">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 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]
- combines geometric objects like circles and graphs of functions with its algebraic representation e.g. representing a circle with the radius. Designed for use in schools and educational settings.Plotting software">Plot (graphics)">Plotting software
- Chart.js
- D3.js
- ggplot2
- Graphics Layout Engine
- Gnuplot
- Grace
- Matplotlib
- Plotly
- PLplot
- PyX
- ROOT
- SciDAVis
- Vega
Numerical analysis
[Calcpad]
Calcpad is an open-source numerical software designed primarily for engineering calculations. It supports numerical differentiation and integration, root and extrema finding, vector and matrix calculations, combined with extensive Html reporting.[Euler Mathematical Toolbox]
is an open-source numerical software system combining matrix language, symbolic algebra, and plotting capabilities.[FreeMat]
FreeMat is an alternative to MATLAB.[GNU Scientific Library]
The GNU Scientific Library 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">GNU Octave">Octave
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. 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.Physics
[Computational electromagnetics]
- Meep
- Elmer FEM solver
- Numerical Electromagnetics Code
[Computational fluid dynamics]
- Code_Saturne
- FEATool Multiphysics
- MFEM
- Nek5000
- Nektar++
- OpenFOAM
- SU2 code
[Computational particle physics]
- CompHEP
- UrQMD
- APFEL
- Geant4
[Computational astrophysics]
- Astropy
- CMBFAST
- GADGET
[Monte Carlo method]
- CP2K
- EGS
- MCSim
- McStas
- McXtrace
- MPMC
- TARDIS
Simulations
- OpenModelica
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.