FreeMat is a free environment for rapid engineering and scientific prototyping and data processing. It is similar to commercial systems such as MATLAB from Mathworks, and IDL from Research Systems, but is Open Source. FreeMat includes several novel features such as a codeless interface to external C/C++/FORTRAN code, parallel/distributed algorithm development (via MPI), and plotting and visualization capabilities. Read more hot
(commercial) Maple is the ultimate productivity tool for solving mathematical problems and creating interactive technical applications. Intuitive and easy to use, it delivers the most advanced, complete, reliable mathematical capabilities that can only come from a market-leading tool that has been developed and tested over 25 years. Maple allows you to create rich, executable technical documents that provide both the answer and the thinking behind the analysis. Maple documents seamlessly combine numeric and symbolic calculations, explorations, mathematical notation, documentation, buttons and sliders, graphics, and animations that can be shared and reused by your colleagues. hot
(commercial) Mathematica seamlessly integrates a numeric and symbolic computational engine, graphics system, programming language, documentation system, and advanced connectivity to other applications. It is this range of capabilities--many world-leading in their own right--that makes Mathematica uniquely capable as a "one-stop shop" for you or your organization's technical work. It can handle complex symbolic calculations that often involve hundreds of thousands or millions of terms. Read more hot
(commercial) MATLAB is a high-level language and interactive environment that enables
you to perform computationally intensive tasks faster than with traditional programming languages such as C, C++, and Fortran. Read more hot
matplotlib is a pure Python plotting library designed to bring publication quality plotting to Python with a syntax familiar to MATLAB users. All of the plotting commands in the pylab interface can be accessed either via a functional interface familiar to MATLAB users or an object oriented interface familiar to Python users. Read more hot
1DRANGE is a branch-and-bound algorithm for computing rigorous outer and inner bounds for the range of univariate functions, using boundary-value forms.
aamath is a program that reads mathematical expressions in infix notation and renders them as ASCII art. It may be useful to send mathematics through text-only media, such as e-mail or newsgroups.
a package for automatic differentiation of Algorithms; it facilitates the evaluation of first and higher derivatives of vector functions that are defined by computer programs written in C or C++
AnallogicA is an application that generates logical tables based on logical propositions.
APFP (Arbitrary Precision Floating Point) is an Unicon class for performing arbitrary precision floating point calculations. It also includes a class for calculating with arbitrary precision complex numbers. It requires unicon overloaded operators.
ASCEND is both a large-scale object-oriented mathematical modeling environment and a strongly typed mathematical modeling language.
Axiom is a general purpose system for doing mathematics by computer. It is especially useful for mathematical research and for development of mathematical algorithms. The Axiom Language is a strongly-typed high-level programming language for expressing abstract mathematical concepts. Read more
BAYES-LIN is intended for people who already know about Bayes linear methods, graphical modelling and local computation, and want a collection of object-oriented programming tools for carrying out computations. Local computation in BAYES-LIN is achieved via message-passing between objects representing clique-tree nodes.
Bear is a mathematical research tool for calculating and testing discreteness of holonomy representations of complex projective structures on punctured tori. It can be used to draw pictures of Bers slices and explore the geometry of quasifuchsian space in the SL2(C) representation variety. It also has powerful scripting features that make it easy to create complex animations or to automate larger calculations.
bernina is an interactive interface to the Sum^it library that provides some efficient computations revolving around operators in Q[x,d/dx] or Q(x)[d/dx].
Cadabra is a computer algebra system for the manipulation of what could loosely be called tensorial expressions. It is aimed at, though not necessarily restricted to, theoretical high-energy physicists. Because of its target audience, the program's interface, storage system and underlying philosophy differ substantially from other computer algebra systems
Calculating Pi is an opensource project for the calculation of the mathematical constant Pi.
Cantor is a front-end to powerful mathematics and statistics packages. Cantor integrates them into the KDE Platform and provides a nice, worksheet-based, graphical user interface.
Computer Algebra Software for constructive Algebraic geometry: designed for performing computations and reasoning about geometric objects in classical algebraic geometry, in particular affine and projective algebraic geometry over an algebraically closed field F of characteristic 0
Cellumat3D is a tool for simulating and exploring 3D cellular automata. The simulated universe is effectively unbound and visualized using OpenGL. Currently 2-state automata similar to Conway's 2D "Game of Life" with customizable rulesets are supported.
Centrinia is a set of modules that perform various mathematical operations. The locus of functionality is in a dynamically loaded library. In the future, the Centrinia project will be comprised of many stand-alone applications that will use the library as their kernel.
ChaosExplorer is a C++ QT project developed to give users the ability to investigate fractals, attractors, bifurcations and other chaotic functions. The program's focus is on freedom to manipulate any possible parameter.
The Chombo package provides a set of tools for implementing finite difference methods for the solution of partial differential equations on block-structured adaptively refined rectangular grids. Both elliptic and time-dependent modules are included. Support for parallel platforms and standardized self-describing file formats are included.
CMAT is a matrix calculator program, written in C. Calculations can be performed on matrices with complex rational coefficients using exact arithmetic routines, as well as on matrices with elements mod p.
The Coq tool is a proof assistant which is able to handle calculus assertions, to check proofs of these assertions mechanically, and to extract a certified program from the constructive proof of its formal specification.
The DAKOTA (Design Analysis Kit for Optimization and Terascale Applications) toolkit provides a flexible, extensible interface between analysis codes and iterative systems analysis methods. DAKOTA contains algorithms for optimization with gradient and nongradient-based methods; uncertainty quantification with sampling, reliability, and stochastic finite element methods; parameter estimation with nonlinear least squares methods; and sensitivity/variance analysis with design of experiments and parameter study capabilities
DataMelt is a free mathematics software for scientists, engineers and students. It can be used for numeric computation, statistics, symbolic calculations, data analysis and data visualization.
Dr. Geo is a GTK interactive geometry software. It allows one to create geometric figure plus the interactive manipulation of such figure in respect with their geometric constraints. It is usable in teaching situation with students from primary or secondary level. Dr. Geo integrates advanced features as an integrated Scheme programming language to define scripts within a figure. The language is also used to define functionnaly interactive figure. Read more
E is a a purely equational theorem prover for full first-order logic. That means it is a program that you can stuff a mathematical specification (in first-order format) and a hypothesis into, and which will then run forever, using up all of your machines resources. E's inference core is based on a modified version of the superposition calculus for equational clausal logic as described in [BG94].
EasyMaths is a mathematics program for Linux which has two components: a computation server, and a GTK GUI for communicating with the server.
ECPP is a package containing a primality proving program. It is based in particular on the multiprecision package BigNum, developed jointly by INRIA and Digital PRL.
ehrhart is a polynomials and parametric vertices program.
Empirical Gramian framework (emgr) for model reduction and system identification of input-output systems.
EngLab is a cross-compile mathematical platform with a C like syntax intended to be used both by engineers and users with small programming knowledge. It supports programming through small script files but also enables the user to easily compile his own functions as shared objects and use them through the program's main interface. The ability to easily integrate new code and toolboxes as shared objects is expected to drive community in developing new functions extremely fast.
Euler is a powerful numerical laboratory with a programming language. The system can handle real, complex and interval numbers, vectors and matrices. It can produce 2D/3D plots. Included is a programming language. Euler comes with Yacas, a computer algebra system. So one can combine symbolic and fast numeric programming.
Euler for GTK+
The GTK+ based version of EULER, a program for quickly and interactively computing with real and complex numbers and matrices, or with intervals, in the style of MatLab, Octave, ... It can draw and animate your functions in two and three dimensions.
GetDP is a general finite element solver using mixed elements to discretize de Rham-type complexes in one, two and three dimensions. The main feature of GetDP is the closeness between the input data defining discrete problems (written by the user in ASCII data files) and the symbolic mathematical expressions of these problems.
The name GiNaC is an iterated and recursive abbreviation for GiNaC is Not a CAS, where CAS stands for Computer Algebra System. It has been developed to become a replacement engine for xloops which in the past was powered by the Maple CAS. Its design is revolutionary in a sense that contrary to other CAS it does not try to provide extensive algebraic capabilities and a simple programming language but instead accepts a given language (C++) and extends it by a set of algebraic capabilities.
A gnome mathematical GUI designed to be a central tool where you can launch various other existing mathematical tools. It now supports Numerical Python Session, and more soon.
Gnatlab is a freeware clone of the Matlab mathematics package.
goldstr generates the golden string. The golden string is a binary sequence which is mathematically related to the golden section and the Fibonacci numbers.
Groups, Algorithms, and Programming
GAP is a system for computational discrete algebra with particular emphasis on computational group theory and related areas. It provides a Pascal-like interpreted language, data types for many algebraic objects, a function library, and large libraries of data.
GTybalt is a free computer algebra system featuring: Object Oriented: gTybalt allows symbolic calculations within the C++ programming language, High quality output: Mathematical formulae are visualized using TeX fonts and can easily be converted to LaTeX on a what-you-see-is-what-you-get basis.
Hilbert Class Library is a collection of C++ classes which apply object-oriented programming principles to implement mathematical objects such as vectors, linear and nonlinear operators, and functions.
HECKE is a program for computing with modular forms using modular symbols. Among other things, it can be used to compute basis of q-expansions and Hecke operators on fairly general spaces of modular forms, and for computing special values of L-functions.
highest is a program that efficiently finds the n highest (or lowest) numbers in a list of numbers on stdin. The traditional way of computing this using GNU sort should have a running time of O(n log n), where n is the number of numbers to check.
Hilbert II provides a program suite that enables a mathematician to put theorems and proofs into that knowledge base. These proofs are automatically verified by a proof checker. Also texts in "common mathematical language" can be integrated. The mathematical axioms, definitions and propositions are combined to so called qedeq modules. Such a module could be seen as a mathematical textbook which includes formal correct proofs.
HOPDM is a package for solving large scale linear, convex quadratic and convex nonlinear programming problems. The code is an implementation of the infeasible primal-dual interior point method. It uses multiple centrality correctors; their number is chosen appropriately for a given problem in order to reduce the overall solution time. HOPDM automatically chooses the most efficient factorization method for a given problem (either normal equations or augmented system). The code compares favourably with commercial LP, QP and NLP packages.
(commercial) IDL is software for data analysis, visualization, and cross-platform application development. IDL combines all of the tools you need for any type of project, from "quick-look," interactive analysis and display to large-scale commercial programming projects. Thousands of technical professionals use IDL every day to rapidly develop algorithms, interfaces, and powerful visualizations and quickly crunch through large numerical problems.
ised is a command-line tool for generating number sequences and arithmetic evaluation. Unlike big gui-based software (e.g. Mathematica, Derive, Matlab, Octave,...) it is intended for use in shell scripting, together with gnu core utilities.
Jacket by AccelerEyes
(commercial) The Jacket platform consists of a runtime and language processing system that automatically optimizes existing applications or new algorithms for GPU computing. Jacket currently supports the MATLAB language as a frontend to the platform.
Kalamaris is a mathematics research framework which is similar to Mathematica in some aspects, while offering a new approach to solve mathematical problems and simulate physics models in an easy way.
KANT is a software package for mathematicians interested in algebraic number theory. For those KANT is a tool for sophisticated computations in number fields and in global function fields.
you are able to use the powerful KANT V4 functions within a shell and you do not need to know anything at all about programming in C
Kayali is a Qt based Computer Algebra System (CAS) that can also be used as an advanced replacement for KDE KCalc. It is essentially a front end GUI for Maxima (and is easily extended to other CAS back-ends) and Gnuplot.
Kig is an application for interactive geometric construction, allowing students to draw and explore mathematical figures and concepts using the computer. Read more
KSEG is for exploring Euclidean geometry. You create a construction, such as a triangle with a circumcenter, and then, as you drag verteces of the triangle, you can see the circumcenter moving in real time.
Lazy-L is an interpreter for pure untyped lambda calculus using combinator graph reduction techniques.
LEGO is a powerful tool for interactive proof development in the natural deduction style. It supports refinement proof as a basic operation. The system design emphasizes removing the more tedious aspects of interactive proofs. For example, features of the system like argument synthesis and universe polymorphism make proof checking more practical by bringing the level of formalization closer to that of informal mathematics.
LMP is a command line "calculator" comparable to the GNU command expr, but more flexible. It supports floating point and complex numbers and even higher level operations like differenziation and integration.
Library of Location Algorithms: designed as a software system comprising the algorithmic methods known in location planning
Macaulay is a software system devoted to supporting research in algebraic geometry and commutative algebra, whose development has been funded by the National Science Foundation.
Magma is a large, well-supported software package designed to solve computationally hard problems in algebra, number theory, geometry and combinatorics. It provides a mathematically rigorous environment for computing with algebraic, number-theoretic, combinatoric and geometric objects.
The MAGNUS Computational Group Theory Package is an innovative symbolic algebra package providing facilities for doing calculations in and about infinite groups. Almost all symbolic algebra systems are oriented toward finite computations that are guaranteed to produce answers, given enough time and resources. By contrast, MAGNUS is concerned with experiments and computations on infinite groups which in some cases are known to terminate, while in others are known to be generally recursively unsolvable.
Matgen is a command line matrix generator. It uses an input file describing the features of the matrix and writes it to stdout as an ASCII formatted stream according to the MatrixMarket file format.
Mathomatic is a small, portable symbolic math program that can automatically solve, simplify, differentiate, combine, and compare algebraic equations, perform polynomial and complex arithmetic. Read more
MathSpad is a general-purpose structure editor that is particularly
useful for writing articles that contain substantial amounts of mathematical calculations.
mathtools is for calculating different geometrical figures or applications of algebra-functions.
MathXplorer/T provides numerical analysis and visualization capabilities within the Tcl/Tk environment. It extends the Tcl environment with two Tcl packages: Mxt and MxtGr. Package Mxt provides minterp, a command used to create MathViews interpreters. Package MxtGr provides a command graph for creating Tk widgets capable of rendering MathViews figures.
MatLisp is a set of CLOS classes for handling matrices. The classes allow a simple and consistent interface to matrix operations. Matlisp is powered by the well-known and well-tested linear algebra packages BLAS and LAPACK.
MatPy is a Python package for numerical computation and plotting with a MatLab-like interface. It currently consists of wrappers around the Numeric, Gnuplot and SpecialFuncs packages. It provides an alternative interface to NumPy that is somewhat more convenient for matrix and vector computation.
Matrix Math is a package currently in an early phase that allows auser to quickly and easily perform mathematical operations on matrices.
Matrix Operations is a program designed to do basic matrix operations such as determinants, inverses, adjoints, multiplication, addition/substraction and others. It is written in c++ for Linux, and it uses basic I/O display to output the matrices.
MatView is a handy tool for viewing and exploring large sparse matrices. Using MatView, a sparse matrix with millions of elements can be reduced to a graphically viewable size for overviews of the high-level structure, or a detailed view can be obtained by zooming in and navigating through small regions of the matrix.
mcl-algorithm is a fast and scalable cluster algorithm for graphs based on simulation of (stochastic) flow in graphs.
MCS is a Matlab program for bound constrained global optimization using function values only, based on a multilevel coordinate search that balances global and local search.
MINQ is a Matlab program for bound constrained indefinite quadratic programming based on rank 1 modifications. It solves the optimization problem.
MMACH is a toolbox for Mathematical Morphology for the Khoros System. MMACH stands for Morphological Machine.
MODELbuilder is a free opensource mathematical program which is designed to give scientists and engineers the means to find any multivariate model for any dataset, how complex or large both may be. MODELbuilder has a built-in model library, but can easily be exended for user defined models.
Mtk is a basic mathematical package for X11. It makes no claim to rival large commercial computer algebra systems but it is handy for quickly doing small calculations. The main window of the application consists of a list of equations and an output display. Equations can be entered in. Mtk supports a large range of common functions and there will hopefully be more in the future.
MuPAD is a mathematical expert system for doing symbolic and exact algebraic computations as well as numerical calculations with almost arbitrary accuracy. For example, the number of significant digits can be chosen freely. Apart from a vast variety of mathematical libraries the system provides tools for high quality visualization of 2- and 3-dimensional objects.
OpenEuclide is a 2D geometry software: figures are defined dynamically by describing formal geometrical constraints. This project is a basic tool for educational or modeling purpose that aims to be extended as far as possible in response to user needs.
PARI/GP is a widely used computer algebra system designed for fast computations in number theory (factorizations, algebraic number theory, elliptic curves...), but also contains a large number of other 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 to allow for faster computations. Read more
Project Lima is a software tool for factorizing arbitrary integers using probabilistic algorithms and distributed computing methods.
Parallel Software for Implicit Differential Equations is a Fortran 77 code for solving implicit differential equations on shared memory parallel computers.
PYDL is a free clone of IDL for Linux. It is developed in Python using Numerical Python, Python Imaging Library and Dislin (plotting) packages. Array arithmetic, plotting, 24 and 8-bit imaging and some numerical routines are implemented.
Python Stencil Environment
Python Stencil Environment (PySE) is a framework for solving partial differential equations with the Finite Difference Method. Its main focus is on Stencil Abstractions.
Queen Mckliskey is a well known Logic Minimization algorithm, which has the power and flexibilty to remove redundant terms in a boolean algebra equation, and finds only the essential terms.
RandomCsp can be used to generate random constraint satisfaction problems using several parameters to produce CSPs that are supposed to be difficult to solve.
Relational is an interface to load relations from a file, to write relational algebra queries, and to see their result.
Ricci is a Mathematica package for doing tensor calculations in differential geometry. It has the following features and capabilities: Manipulation of tensor expressions with and without indices, Implicit use of the Einstein summation convention, Correct manipulation of dummy indices, and more.
Rlab is an interactive, interpreted scientific programming environment. Rlab is a very high level language intended to provide fast prototyping and program development, as well as easy data-visualization, and processing. Rlab is not a clone of languages such as those used by tools like Matlab or Matrix-X/Xmath. However, as Rlab focuses on creating a good experimental environment (or laboratory) in which to do matrix math, it can be called ``Matlab-like''; since the programming language possesses similar operators and concepts.
RLaBPlus is a continuation of work on an open-source scripting environment for scientific computations RLaB2. Project rlabplus provides release 2 of RLaB2, which contains upgrades of the numerical libraries used in the first release, and many new libraries and toolkits, e.g., Gnu Scientific Library (GSL).
SADE is a genetic based optimisation method that uses differential operators and is a derivative of Differential Evolution invented by K. Price and R. Storn.
Sage is a computer algebra system written in Python and Cython and integrates an included distribution of specialized mathematics software into a common experience. It tries to cover many aspects of mathematics, including algebra, combinatorics, numerical mathematics and calculus. Read more
SegyMAT is a set of m-files that allows matlab programs to easily read and write segy data, and a Matlab GUI to read and write SEG-Y files, and edit the SEG-Y headers.
(commercial) ShapeKit Suite is a highly specialized software focused on data modeling. It helps engineers and researchers in creating a data model based on empirical data gathered from experiments.
SIMATH is a computer algebra system mostly designed for computations in number theory.
SINGULAR is a Computer Algebra System for polynomial computations with special emphasis on the needs of commutative algebra, algebraic geometry, singularity theory, and polynomial system solving. Read more
Simple Linear Algebra TEmplates: a vector/matrix package for C++. Based on templates, slate++ facilitates basic linear algebra (+, -, *, /, inverse, determinant, ...) on many data types (int, float, double, complex, ...). It is very simple to use and has been thoroughly documented with an extensive tutorial
Tired of having to perform tedious arithmetic without aid? Never having the pen and paper necessary for doing long division? Then SlideRule might be the product for you! Good slide rules are expensive and hard to come by these days, but with SlideRule you can always have a state-of-the-art mathematics aid on your desktop.
an equation editor for MathML and LaTeX built on open Web standards. The editor itself uses a SVG interface and the application logic is implemented in ECMAScript using the DOM. Both MathML and LaTeX are supported as exporting formats in addition to the SVG format
sparseLM is a software package for efficiently solving arbitrarily sparse non-linear least squares problems. It offers a generic implementation of the Levenberg - Marquardt optimization algorithm on top of a variety of sparse direct solvers, thus being applicable to problems with arbitrary sparseness.
(commercial) Speakeasy is the easy-to-learn application that allows its users to concentrate on solving problems right from the start.
Speakeasy is based on the idea of structured, multiple-value variables or objects. Speakeasy supports all of the standard types of structured objects - scalars, arrays, sets, time series, matrices and vectors - and can solve any arithmetic expression using these objects.
Scalable Parallel Random Number Generators Library for Parallel Monte Carlo Computations
SuiteSparse is a suite of C, Fortran, and MATLAB functions for manipulating sparse matrices.
SUite of Nonlinear and DIfferential/ALgebraic equation Solvers: consists of the following four solvers: CVODE solves initial value problems for ordinary differential equation (ODE) systems. CVODES solves ODE systems and includes sensitivity analysis capabilities (forward and adjoint). IDA solves initial value problems for differential-algebraic equation (DAE) systems. KINSOL solves nonlinear algebraic systems
Surface Evolver is an interactive program for the modelling of liquid surfaces shaped by various forces and constraints.
Symaxx is a frontend for Maxima computer algebra system.
Symaxx/2 is a graphical frontend for Maxima.
Symmetrica is a collection of routines to handle ordinary representation theory of the symmetric group and related groups, ordinary representation theory of the classical groups, modular representation theory of the symmetric group, projective representation theory of the symmetric group and more.
Sympy is a symbolic manipulation package, written in pure Python. Its aim is to become a full featured CAS in Python, while keeping the code as simple as possible in order to be comprehensible and easily extensible.
TaDaPro (Tabular Data Processor) is a command-line utility to operate with numerical column tabulated data. It is intended for operations that are cumbersome to do by hand in a spreadsheet and for transformations that have to be applied as a batch process on many files.
The Quine McClusky Simplification Tool
The Quine McClusky Simplification Tool should optimize boolean equations by using the Quine McClusky process.
The Spider is a complete object-oriented environment for machine learning in Matlab. Aside from ease of use for base learning algorithms, algorithms can be plugged together and can be compared with, for example, model selection, statistical tests, and visual plots. This gives all the power of objects (reusability, the ability to plug together, sharing of code), but also all the power of Matlab for machine learning research.
Time-Frequency Toolbox is a collection of about 100 M-files, developed for the analysis of non-stationary signals using time-frequency distributions.
(commercial) The TOMLAB Optimization Environment is a powerful optimization platform for solving applied optimization problems in Matlab. TOMLAB provides a wide range of features, tools and services for your solution process.
ToscanaJ offers a visual frontend for a mathematical technique for data analysis based on set theory.
umatrix is a matrix unit for Free Pascal, which supports real and complex matrices. It provides basic routines (addition, multiplication) via overloaded operators. Some of the features it includes are solving of equation systems, norms, inversion, and determinants.
Unit Circle shows the relationship between angles and trigonometric functions like sine and cosine
Unnamed Math Program
Ump is a graphical, easy to use math program, which works with complex numbers, matrices, functions and much more.
VFGEN is a program that takes a specification of a vector field (in other words, a system of differential equations) and generates source code for a wide variety of ODE solvers and other numerical tools. In other words, it is a vector field file generator for differential equation solvers and other computational tools.
WavePacket is a MatLab program package for numerical simulation of quantum-mechanical wavepacket dynamics for distinguishable particles. It can be used to solve (one or several coupled) time-independent or time-dependent linear Schrödinger equations.
Xeukleides is a complete system for editing and viewing figures described in Eukleides, an Euclidean geometry drawing language. The figures can be interactive, i.e., while viewing, it is possible to modify some numerical values using the keyboard
The aim of this project is to create a software to design and manipulate knots. It will be used as an experimental tool for the Knot Theory.
Xmath is a mathematical expression editor for X Window. Its WYSWYG feature lets the user make expression and symbols easily. Also, it's a TeX friendly application.
XmdS is a code generator that integrates equations. You write them down in human readable form in an XML file, and it goes away and writes and compiles a C++ program that integrates those equations as fast as it can possibly be done in your architecture.
XPP is a system for the analysis and simulation of dynamic and probabilistic phenomena.
yacts, yet another continuous time simulator, uses J+ to interpret scripts, defining systems of ordinary differential equations, which it solves.
Yet Another Wavelet toolbox
Yet Another Wavelet toolbox aims to provide a clear and well documented implementation in Matlab of some time-frequency and time-scale transformations like the well known continuous/discrete wavelet transforms.
Yorick Maintenon Branch
Yorick Maintenon Branch is a language for scientific computing à la Matlab/Octave. The Maintenon Branch is an enhanced version of Yorick, supporting true color image display and printing, extended C type support, support for compiled extensions in dynamic libraries, and readline binding.