# 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.^{[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, originally named *scratchpad*. Richard Jenks originally headed it but over the years Barry Trager who then shaped the direction of the scratchpad project took the project. Project scratchpad was eventually sold to a numerical group called 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.

### 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 an open-source software under the GNU General Public license. Subsequently, he released the source code to the world later that year. Since his passing in 2001, a group of MAXIMA enthusiasts have continued to provide technical support.

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

### Cadabra

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 in 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 language.

### Xcas

Xcas/Giac is an open-source project developed at the Joseph Fourier University of Grenoble since 2000. Written in C++ language, maintained by Bernard Parisse's et al.and available for Windows, Mac, GNU/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.

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

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

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

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

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

### FreeMat

FreeMat is an alternative to MATLAB.

### SciPy

SciPy is a python programming language library to take advantage of Python's ability to handle large data sets.^{[4]}

### Gnuplot

Gnuplot in an open-source graphing program and has extensive graphing features, but it also has least squares fitting capabilities for a broad range of user-defined functions in two and three dimensions. http://www.gnuplot.info/

### Graph

Graph is an open-source 2D graphing program with some simple numerical analysis features including least squares fitting for a broad range of functions, computing derivatives, and computing integrals. https://www.padowan.dk/

### ZeGrapher

ZeGrapher is an open-source 2D plotting software. It can plot functions (also their derivatives and primitives), parametric equations (can be animated), sequences and 2D experimental data (to fill in by hand or from a CSV. Data can be fitted with polynomials).

http://en.zegrapher.com/

### AMoreAccurateFourierTransform

AMoreAccurateFourierTransform is an open-source program for computing Fourier transforms. It computes a discrete Fourier transform from a two column input file over a specified range of input and output values and writes the results to an output file. https://sourceforge.net/projects/amoreaccuratefouriertransform/ ^{[5]}

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

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.

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

### DataMelt

DataMelt was initially written by S. Chekanov in 2005 for High-energy physics.
The original name was JHepWork, but later it was renamed to SCaViS and then to DataMelt.
The main idea was to build a multi-purpose computational environment that is fully multiplatform and combine the best open-source Java libraries.
DataMelt uses high-level programming languages, such as Jython (Python implemented in Java), Groovy, JRuby, but Java coding can also be used to call numerical and graphical libraries.
The main source of the documentation are the books ^{[6]} and ^{[7]}but the online manual is also available.

### MathBuntu

MathBuntu is a script for installing a large collection of mathematics-related software and textbooks for Ubuntu or Kubuntu operating systems.^{[8]}

## References

- ↑ David Joyner; William Stein (November 2007). "Open Source Mathematical Software" (PDF). American Mathematical Society. Retrieved 11 June 2013.
- ↑ 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.
- ↑ PARI/GP home page
- ↑ "Visualizing big data".
- ↑ A More Accurate Fourier Transform, E Courtney and M Courtney, Data Analysis, Statistics, and Probability, Cornell University Library, 2015.
- ↑ Chekanov, S. V. (2010).
*Scientific Data analysis using Jython Scripting and Java*. Springer-Verlag. p. 497. ISBN 978-1-84996-286-5. - ↑ Numeric Computation and Statistical Data Analysis on the Java Platform (Book). S.V.Chekanov, Springer, (2016) ISBN 978-3-319-28531-3, 700 pages,
- ↑ "Matbuntu (home page)". Retrieved 2015-07-02.