# List of open-source software for mathematics

Last updated

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. [1] Open-source software in mathematics has become pivotal in education because of the high cost of textbooks. [2]

## Computer algebra systems

A computer algebra system is a type of software set that is used in 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 system often include facilities for graphing equations and provide a programming language for the users' own procedures.

### Axiom

Axiom is a general-purpose computer algebra system. 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.

A Computer Algebra System designed for the solution of problems in 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 the 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 passing 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. [3] 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 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. ${\displaystyle x^{2}+y^{2}=r^{2}}$ respresenting a circle with the radius ${\displaystyle r}$. Designed for use in schools and educational settings.

## 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 begun 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. [4]

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

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

## Related Research Articles

Numerical analysis is the study of algorithms that use numerical approximation for the problems of mathematical analysis. It is the study of numerical methods that attempt at finding approximate solutions of problems rather than the exact ones. Numerical analysis finds application in all fields of engineering and the physical sciences, and in the 21st century also the life and social sciences, medicine, business and even the arts. Current growth in computing power has enabled the use of more complex numerical analysis, providing detailed and realistic mathematical models in science and engineering. Examples of numerical analysis include: ordinary differential equations as found in celestial mechanics, numerical linear algebra in data analysis, and stochastic differential equations and Markov chains for simulating living cells in medicine and biology.

GNU Octave is a high-level programming language primarily intended for scientific computing and numerical computation. Octave helps in 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. As part of the GNU Project, it is free software under the terms of the GNU General Public License.

A computer algebra system (CAS) or symbolic algebra system (SAS) is any mathematical software with the ability to manipulate mathematical expressions in a way similar to the traditional manual computations of mathematicians and scientists. The development of the computer algebra systems in the second half of the 20th century is part of the discipline of "computer algebra" or "symbolic computation", which has spurred work in algorithms over mathematical objects such as polynomials.

Maxima is a computer algebra system (CAS) based on a 1982 version of Macsyma. It is written in Common Lisp and runs on all POSIX platforms such as macOS, Unix, BSD, and Linux, as well as under Microsoft Windows and Android. It is free software released under the terms of the GNU General Public License (GPL).

Scilab is a free and open-source, cross-platform numerical computational package and a high-level, numerically oriented programming language. It can be used for signal processing, statistical analysis, image enhancement, fluid dynamics simulations, numerical optimization, and modeling, simulation of explicit and implicit dynamical systems and symbolic manipulations.

GNU TeXmacs is a scientific word processor and typesetting component of the GNU Project. It was inspired by TeX and GNU Emacs, though it shares no code with those programs. TeXmacs does use TeX fonts. It is written and maintained by Joris van der Hoeven and a group of developers. The program produces structured documents with a WYSIWYG user interface. New document styles can be created by the user. The editor provides high-quality typesetting algorithms and TeX and other fonts for publishing professional looking documents.

Axiom is a free, general-purpose computer algebra system. It consists of an interpreter environment, a compiler and a library, which defines a strongly typed hierarchy.

Computational science, also known as scientific computing or scientific computation (SC), is a field in mathematics that uses advanced computing capabilities to understand and solve complex problems. It is an area of science that spans many disciplines, but at its core, it involves the development of models and simulations to understand natural systems.

SageMath is a computer algebra system (CAS) with features covering many aspects of mathematics, including algebra, combinatorics, graph theory, numerical analysis, number theory, calculus and statistics.

Euler is a free and open-source numerical software package. It contains a matrix language, a graphical notebook style interface, and a plot window. Euler is designed for higher level math such as calculus, optimization, and statistics.

Quantian OS was a remastering of Knoppix/Debian for computational sciences. The environment was self-configuring and directly bootable CD/DVD that turns any PC or laptop into a Linux workstation. Quantian also incorporated clusterKnoppix and added support for openMosix, including remote booting of light clients in an openMosix terminal server context permitting rapid setup of a SMP cluster computer.

Computational mathematics involves mathematical research in mathematics as well as in areas of science where computation plays a central and essential role, and emphasizes algorithms, numerical methods, and symbolic computations.

PARI/GP is a computer algebra system with the main aim of facilitating number theory computations. Versions 2.1.0 and higher are distributed under the GNU General Public License. It runs on most common operating systems.

Tensor software is a class of mathematical software designed for manipulation and calculation with tensors.

## References

1. David Joyner; William Stein (November 2007). "Open Source Mathematical Software" (PDF). American Mathematical Society. Retrieved 11 June 2013.
2. Russell Herman; Gabriel Lugo (24 May 2008). "Open Source Resources for Teaching and Research in Mathematics" (PDF). University of North Carolina Wilmington. Retrieved 11 June 2013.
3. "PARI/GP home page". Archived from the original on 2019-09-29. Retrieved 2016-12-28.
4. Artosi, Alberto, Paola Cattabriga, and Guido Governatori. "Ked: A deontic theorem prover." Eleventh International Conference on Logic Programming (ICLP’94). 1994.
5. Otten, Jens; Bibel, Wolfgang (2003). "LeanCoP: Lean connection-based theorem proving". Journal of Symbolic Computation. 36 (1–2): 139–161. doi:.
6. Del Cerro, Luis Fariñas; Fauthoux, David; Gasquet, Olivier; Herzig, Andreas; Longin, Dominique; Massacci, Fabio (2001). "Lotrec: The Generic Tableau Prover for Modal and Description Logics". Automated Reasoning. Lecture Notes in Computer Science. Vol. 2083. pp. 453–458. doi:10.1007/3-540-45744-5_38. ISBN   978-3-540-42254-9.
7. Hickey, Jason, et al. "MetaPRL–a modular logical environment." International Conference on Theorem Proving in Higher Order Logics. Springer, Berlin, Heidelberg, 2003.