- Octave and Scilab (tried to make a
GPL-like license, but didn't really succeed...), both built on top
of the original FORTRAN code (through some C and C++ wrappers) from
Netlib (public domain).
(Netlib is where most other matrix libraries, including Matlab, got
their inspiration too.)
- Matrix and
Quaternion FAQ, with lots of useful facts and algorithms for
transformation matrices, Euler and Roll/Pitch/Yaw representations,
- CVXOpt, a
Python module for convex optimization.
an object-oriented nonlinear optimization library.
- GSL (GNU
Scientific Library). This is an ongoing effort to get a modern,
extensive and ANSI C library for numerical computing. GSL is, for
many of its routines, appropriate for realtime use, in that the
method calls include the temporary vectors and matrices needed in
the algorithms. Hence, for applications where the dimensions of the
numerical problems are known in advance, all data can be allocated
before entering a realtime loop.
For the above-mentioned realtime use, the original FORTRAN packages
of LAPACK are still
The Open Optimization
Library is a GSL companion project for optimization
And libDSP is a GPL
libray of signal processing functions.
- tvmet (Tiny
Vector Matrix library using Expression Templates) is the only
vector and matrix library that doesn't use the heap, and hence it
is potentially realtime safe. exmat is another (starting)
matrix library using expression templates. TooN is a
(LGPL) compromise library, putting “small” matrices on
the stack, and “large” matrices on the heap.
- IT++, a GPL vector
and matrix library, with a focus on communication (coding/decoding,
convolutions, etc.). It interfaces with other libraries such as
ATLAS, BLAS, Lapack, etc.
- MTL (Matrix
Template Library) a C++ library, built on top on the standardized
Library (STL). It is a successor to the Template Numerical Toolkit (TNT),
Lapack++, IML++, SparseLib++, and MV++. None of these projects seems
to be very active anymore…
Java3d vector and matrix API, and JADE (physical units aware
- Sundials is an
ANSI C/Fortran collection of BSD-licensed software for the
numerical solution of ODEs and DAEs.
Hairer's Fortran and Matlab code for numerical integration of
ODEs that are relevant to, among other things, constrained
mechanical systems. Other libraries for ODE and DAE
solvers (needed, for example, for solving the dynamics of
constrained multi-body systems): ODE,
ODASSL, DAEPACK and MEXAX.
- Lush "is an
object-oriented programming language designed for researchers,
experimenters, and engineers interested in large-scale numerical
and graphic applications. Lush is designed to be used in situations
where one would want to combine the flexibility of a high-level,
loosely-typed interpreted language, with the efficiency of a
strongly-typed, natively-compiled language, and with the easy
integration of code written in C, C++, or other languages."
- GiNaC "is designed to allow
the creation of integrated systems that embed symbolic
manipulations together with more established areas of computer
science (like computation- intense numeric applications, graphical
interfaces, etc.) under one roof."
- The VSIPL (Vector Signal
Image Processing Library) is an API of a portable computational
middleware for signal and image processing applications, defined by
an open standards body comprised of embedded signal and image
processing hardware and software vendors, academia, users, and