List of Computer tools in mathematics
The following list links to free computer tools for mathematics.
Computer Algebra System (CAS)
- Maxima
Maxima is a computer algebra system available for Windows, Linux, Mac and android. The most recent development version can be downloaded from Git License: GNU GPL - Cadabra
A computer algebra system (CAS) designed specifically for the solution of problems encountered in field theory. Available for Linux, Windows and Mac. License: GNU GPL. - Cocoa-5
Cocoa-5 is a program to compute with numbers and polynomials. To get a quick overview on how to use cocoa, click What is CoCoa. License: GNU GPL. - axiom
Axiom is a BSD licensed general purpose Computer Algebra system (CAS). 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. Axioms is available for Linux, however it can also be installed on other platform using docker-machine for docker. -
GAP
GAP (Group Algorithms and Programming) 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 available for Linux OS X and Windows. License GNU GPL. - kash
KaSh or KANT SHELL s a program library for computations in algebraic number fields, algebraic function fields and local fields. In the number field case, algebraic integers are considered to be elements of a specified order of an appropriate field F. KANT, is short for Computational Algebraic Number Theory with a slight hint at its German origin (Immanuel Kant). KANT is also the name of the sophisticated computer algebra system that has been developed under the project leadership of Prof. Dr. M. E. Pohst. See also KASH download and KASH documenation (KASH is Copyright by Prof. Dr. Michael E. Pohst, 1987-2008. kash can be copied and distributed freely for any non-commercial purpose, see also kash copyright license). - Macaulay2
Macaulay2 is a software system devoted to supporting research in algebraic geometry and commutative algebra. See also Macaulay2 download and Macaulay2 book and documentation (Macaulay2 is license under the GNU GPL). -
Mathics
(A free, light-weight alternative to Mathematica)
Mathics is a free, general-purpose online computer algebra system featuring Mathematica-compatible syntax and functions. It is backed by highly extensible Python code, relying on SymPy for most mathematical tasks. -
Mathomatics
Mathomatic is a portable, command-line, educational CAS and calculator software, written entirely in the C programming language. It is Free and Open Source Software (FOSS), published under the GNU Lesser General Public License ( LGPL version 2.1), and has been under continual development since 1986. -
PARI/GP
PARI/GP is a widely used computer algebra system designed for fast computations in number theory (factorizations, algebraic number theory, elliptic curves...), in addition it contains a large number of useful functions to compute with mathematical entities such as matrices, polynomials, power series, algebraic numbers etc., and a lot of transcendental functions. PARI is also available as a C library for faster computations. -
mathpiper
MathPiper is a new mathematics-oriented programming language which is simple enough to be learned as a first programming language and yet powerful enough to be useful in any science, mathematics, or engineering related career. MathPiper is also a Computer Algebra System (CAS) which is similar in function to the CAS which is included in the TI 89 and TI 92 calculators. -
Reduce
Reduce is a portable general-purpose computer algebra systme for doing scalar, vector and matrix algebra by computer, which also supports arbitrary precision numerical approximation and interfaces to gnuplot to provide graphics. It can be used interactively for simple calculations (as illustrated in the screenshot above) but also provides a full programming language, with a syntax similar to other modern programming languages. -
sagemath
SageMath is a free open-source mathematics software system licensed under the GPL. It builds on top of many existing open-source packages: NumPy, SciPy, matplotlib, Sympy, Maxima, GAP, FLINT, R and many more. Access their combined power through a common, Python-based language or directly via interfaces or wrappers. See also- sagemath documentation.
- A tour of Sage (pdf)
- Sage Tutorial (pdf)
- Sage Constructions (pdf)
- Sage Developer's Guide (pdf) and Flow Chart (pdf)
- Sage FAQ (pdf)
- Sage Installation Guide (pdf)
- Sage Preparation Tutorial (pdf)
- Sage Reference — Sage Reference v8.9 (many pdf docs divided into math topics)
- Thematic Tutorial (pdf)
-
singular
Singular is a computer algebra system for polynomial computations, with special emphasis on commutative and non-commutative algebra, algebraic geometry, and singularity theory. It is free and open-source under the GNU General Public Licence. -
Giac/Xcas
Giac/Xcas is a free computer algebra system for Windows, Mac OS X and Linux/Unix.
Xcas is an interface to perform computer algebra, function graphs, interactive geometry (2-d and 3-d), spreadsheet and statistics, programing. It may be used as a replacement for high end graphic calculators for example on net-books (for about the same price as a calculator but with much more performances). Xcas is based on the FLTK graphic toolkit. -
SymbolicC++ 3
SymbolicC++ uses C++ and object-oriented programming to develop a computer algebra system. Further example can be found in Advanced Programs in SymbolicC++ written by Willi-Hans Steeb for the International School for Scientific Computing at Johannesburg South Africa. See also Computer Algebra with SymbolicC++ by Yorick Hardy, Kiat Shi Tan and Willi-Hans Steeb. -
YACAS
YACAS is an easy to use, general purpose Computer Algebra System, 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 covering the scripting language, the functionality and algorithms (that is already implemented in the system). -
Fermat
Fermat is a computer algebra system for Macintosh, Windows, Linux, and Unix developed by Robert H. Lewis of Fordham University. Fermat can do arithmetic of arbitrarily long integers, fractions, multivariate polynomials, symbolic calculations, matrices over polynomial rings, graphics, and other numerical calculations. Fermat is fast and space-economical.
Programming Libraries
-
SymPy
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. Free: Licensed under BSD (free both as in speech and as in beer). -
Symbolism
c# library for automatic simplification for automatic of algebraic expression. - NumPy:
NumPy is the fundamental package for scientific computing with Python. ains among other things: werful N-dimensional array object, isticated (broadcasting) functions, s for integrating C/C++ and Fortran code, ul linear algebra, Fourier transform, and random number capabilities. - SciPy
SciPy (pronounced “Sigh Pie”) is a Python-based ecosystem of open-source software for mathematics, science, and engineering. In particular, these are some of the core packages:- NumPy(Base N-dimensional array package)
- SciPy library (Fundamental library for scientific computing)
- Matplotlib (Comprehensive 2D Plotting)
- IPython Enhanced Interactive Console
- Sympy (Symbolic mathematics)
- pandas (Data structures and analysis)
-
symengine
SymEngine is a standalone fast C++ symbolic manipulation library. Optional thin wrappers allow usage of the library from other languages, e.g.:- C wrappers allow usage from C, or as a basis for other wrappers (the symengine/cwrapper.h file)
- Python wrappers allow easy usage from Python and integration with SymPy and Sage (the symengine.py repository)
- Ruby wrappers (the symengine.rb repository)
- Julia wrappers (the SymEngine.jl repository)
-
SymbolicC++ 3
SymbolicC++ uses C++ and object-oriented programming to develop a computer algebra system. Further example can be found in Advanced Programs in SymbolicC++ written by Willi-Hans Steeb for the International School for Scientific Computing at Johannesburg South Africa. See also Computer Algebra with SymbolicC++ by Yorick Hardy, Kiat Shi Tan and Willi-Hans Steeb. -
polybori
The core of PolyBoRi is a C++ library, which provides high-level data types for Boolean polynomials and monomials, exponent vectors, as well as for the underlying polynomial rings and subsets of the powerset of the Boolean variables. As a unique approach, binary decision diagrams are used as internal storage type for polynomial structures. On top of this C++-library a Python interface is provided. This allows parsing of complex polynomial systems, as well as sophisticated and extendable strategies for Groebner base computation. PolyBoRi features a powerful reference implementation for Groebner basis computation. -
Flint
FLINT is a C library for doing number theory, maintained by William Hart. FLINT is licensed GPL v2+. FLINT supports arithmetic with numbers, polynomials, power series and matrices over many base rings, including:- Multiprecision integers and rationals
- Integers modulo n
- p-adic numbers
- Finite fields (prime and non-prime order)
- Real and complex numbers (via the Arb extension library)
-
mpmath
mpmath is a free (BSD licensed) Python library for real and complex floating-point arithmetic with arbitrary precision. It has been developed by Fredrik Johansson since 2007, with help from many contributors.
A Reference Tool for Linking
Graphic tools
LaTex and Bibtex
Online Computation Engines
- Wolfram Alpha
Computational knowledge engine. Wolfram|Alpha introduces a fundamentally new way to get knowledge and answers— not by searching the web, but by doing dynamic computations based on a vast collection of built-in data, algorithms, and methods. - magma
magma calculator, based on the Magma Computational Algebra System - Dr Huang
Interactive Geometry tools
-
Geogebra
GeoGebra is free and multi-platform dynamic mathematics software for all levels of education that joins geometry, algebra, tables, graphing, statistics and calculus in one easy-to-use package. It has received several educational software awards in Europe and the USA. Geogebra is run by International GeoGebra Institute (non profit organization located in Wolfauerstr 90, 4040 Linz, Austria). Geogebra is a proprietary software release under Geogebra license it is freely available for personal usage but has restriction for any commercial use of the software.- DR.GEO
Dr. Geo is an interactive geometry software initially written by Hilaire Fernandes. Dr. Geo (source code, translations, icons and installer) released under GPL- KIG
KIG (KDE Interactive Geometry Software) is a free and open-source interactive geometry software released under the GPL (version 2). KIG is part of the KDE Education Project. KIG has some facilities for scripting in Python, as well as the creating macros from existing constructions. See also the The Kig Handbook- C.a.R Metal
Compass and Ruler (C.a.R.) is a dynamic geometry software developed by Rene Grothmann since 1989. CaRMetal is based on C.a.R. : it includes all of its functionalities - or almost - but follows a different approach from the graphical interface point of view. It's not just a different design - which would not make sense - but instead it gives another way to reach functionnalities.- Eukleides
Eukleides is a computer language devoted to elementary plane geometry. It aims to be a fairly comprehensive system to create geometric figures, either static or dynamic. Eukleides allows to handle basic types of data: numbers and strings, as well as geometric types of data: points, vectors, sets (of points), lines, circles and conics.- GCLC
GCLC Geometry Constructions LaTex Converter is a tool for visualizing geometry, and for producing mathematical illustrations. Its main purposes are:- producing digital mathematical illustrations of high quality;
- use in teaching geometry;
- use in studying geometry and as a research tool.
Numerical Computations
Other Useful Links
- Freeplane
is a mind map tool with LaTex support. - Number Theory Web
The Number Theory Web is a collection of links to online information of interest to number theorists.
- DR.GEO