Computation links

  1. 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.)
  2. Matrix and Quaternion FAQ, with lots of useful facts and algorithms for transformation matrices, Euler and Roll/Pitch/Yaw representations, quaternions, etc.
  3. CVXOpt, a Python module for convex optimization.
  4. OPT++, an object-oriented nonlinear optimization library.
  5. 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 most appropriate.
    The Open Optimization Library is a GSL companion project for optimization algorithms.
    And libDSP is a GPL libray of signal processing functions.
  6. 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.
  7. 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.
  8. MTL (Matrix Template Library) a C++ library, built on top on the standardized Standard Template 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…
  9. Java3d vector and matrix API, and JADE (physical units aware numerical library).
  10. Sundials is an ANSI C/Fortran collection of BSD-licensed software for the numerical solution of ODEs and DAEs.
    Ernst 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.
  11. 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."
  12. 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."
  13. 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 government labs.