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.
 Cocoa5
Cocoa5 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 builtin compiler. Axioms is available for
Linux, however
it can also be installed on other platform using dockermachine 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, 19872008.
kash
can be copied and distributed freely for any noncommercial 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, lightweight alternative to Mathematica)
Mathics is a free, generalpurpose online computer algebra system
featuring Mathematicacompatible syntax and functions.
It is backed by highly extensible
Python code, relying on SymPy for most mathematical tasks.

Mathomatics
Mathomatic is a portable, commandline, 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 mathematicsoriented 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 generalpurpose 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 opensource mathematics software system
licensed under the GPL. It builds on top of many existing
opensource packages: NumPy, SciPy, matplotlib, Sympy,
Maxima, GAP, FLINT, R and many more. Access their combined
power through a common, Pythonbased language or directly
via interfaces or wrappers. See also
sagemath documentation.

singular
Singular is a computer algebra system for polynomial
computations, with special emphasis on commutative and
noncommutative algebra, algebraic geometry, and singularity
theory. It is free and opensource 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 (2d and 3d), spreadsheet and
statistics, programing. It may be used as a replacement for
high end graphic calculators for example on netbooks
(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 objectoriented programming to
develop a computer algebra system. Further example can
be found in
Advanced Programs in SymbolicC++ written by WilliHans 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 WilliHans 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 arbitraryprecision 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 spaceeconomical.
Programming Libraries

SymPy
SymPy is a Python library for symbolic mathematics.
It aims to become a fullfeatured 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.
It contains among other things:
a powerful Ndimensional array object,
sophisticated (broadcasting) functions,
tools for integrating C/C++ and Fortran code,
useful linear algebra, Fourier transform, and random number capabilities.
 SciPy
SciPy (pronounced “Sigh Pie”) is a Pythonbased ecosystem of opensource software for mathematics, science, and engineering. In particular, these are some of the core packages:
 NumPy(Base Ndimensional 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)
All files are licensed under MIT license

SymbolicC++ 3
SymbolicC++ uses C++ and objectoriented programming to develop a computer algebra system.
Further example can be found in
Advanced Programs in SymbolicC++ written by WilliHans 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 WilliHans Steeb.

polybori
The core of PolyBoRi is a C++ library, which
provides highlevel 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
 padic numbers
 Finite fields (prime and nonprime order)
 Real and complex numbers
(via the
Arb extension library)

mpmath
mpmath is a free (BSD licensed) Python library for
real and complex floatingpoint 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.
WolframAlpha 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 builtin data, algorithms, and methods.
 magma
magma calculator, based on the
Magma Computational Algebra System
 Dr Huang
Interactive Geometry tools

Geogebra
GeoGebra is free and multiplatform dynamic mathematics
software for all levels of education that joins geometry,
algebra, tables, graphing, statistics and calculus in one
easytouse 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 opensource 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.
The basic idea behind GCLC is that constructions are formal procedures,
rather than drawings. Thus, in GCLC, producing mathematical illustrations
is based on "describing figures" rather than on "drawing figures". Created
figures, of course, can be displayed and can be exported to LaTeX and other formats.
Numerical Computations
Other Useful Links