Comparison of linear algebra libraries
The following tables provide a comparison of linear algebra software libraries, either specialized or general purpose libraries with significant linear algebra coverage.
Dense linear algebra
General information
Creator | Language | First public release | Latest stable version | Cost (USD) | License | Notes | ||
---|---|---|---|---|---|---|---|---|
ALGLIB | Sergey Bochkanov | C++, C#, FreePascal, VBA | 2006 | 2.6.0 / 06.2010 | Free | GPL | General purpose numerical analysis library. Uses automatic code generation to support several programming languages. | |
ATLAS | R. Clint Whaley et al. | C | 2001 | 3.8.3 / 02.2009 | Free | BSD | Automatically tuned implementation of BLAS. Also includes LU and Cholesky decompositions. | |
− |
FinMath | RTMath | C / C# | October 2011 | 1.4.28.00 / 03.2013 | Non-free | Proprietary | General purpose numerical library for .NET. |
GNU Scientific Library | GNU Project | C, C++ | 1996 | 1.16 / 07.2013 | Free | GPL | General purpose numerical analysis library. Includes some support for linear algebra. | |
IMSL Numerical Libraries | Rogue Wave Software | C, Java, C#, Fortran, Python | 1970 | many components | Non-free | Proprietary | General purpose numerical analysis library. | |
LAPACK | Fortran | 1992 | 3.4.0 / 11.2011 | Free | 3-clause BSD | Numerical linear algebra library with long history | ||
MKL | Intel | C++, Fortran | 2003 | 10.3 update 8 / 2011 | Non-free | Proprietary | Numerical analysis library optimized for Intel CPUs | |
NAG Numerical Library | The Numerical Algorithms Group | C, Fortran | 1971 | many components | Non-free | Proprietary | General purpose numerical analysis library. | |
NMath | CenterSpace Software | C# | 2003 | 4.0 / November 2009 | Non-free | Proprietary | Math and statistical libraries for the .NET Framework | |
SciPy | Enthought | Python | 0.8.0 / 2010 | Free | BSD | based on Python | ||
Eigen | Benoît Jacob | C++ | 2008 | 3.24 / 2015 | Free | MPL2 | Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. | |
Armadillo | NICTA | C++ | 2009 | 4.650 / 2015 | Free | MPL2 | C++ template library for linear algebra; includes various decompositions and factorisations; syntax (API) is similar to MATLAB. |
Matrix types and operations
Matrix types (special types like bidiagonal/tridiagonal are not listed):
- Real - general (nonsymmetric) real
- Complex - general (nonsymmetric) complex
- SPD - symmetric positive definite (real)
- HPD - Hermitian positive definite (complex)
- SY - symmetric (real)
- HE - Hermitian (complex)
- BND - band
Operations:
- TF - triangular factorizations (LU, Cholesky)
- OF - orthogonal factorizations (QR, QL, generalized factorizations)
- EVD - eigenproblems
- SVD - singular value decomposition
- GEVD - generalized EVD
- GSVD - generalized SVD
Real | Complex | SPD | HPD | SY | HE | BND | TF | OF | EVD | SVD | GEVD | GSVD | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ALGLIB | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | No |
ATLAS | Yes | Yes | Yes | Yes | No | No | No | Yes | No | No | No | No | No |
GNU Scientific Library | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | No |
FinMath | Yes | No | No | No | No | No | No | Yes | Yes | No | Yes | No | No |
ILNumerics.Net | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | No | No |
IMSL Numerical Libraries | Yes | Yes | Yes | Yes | No | No | Yes | Yes | No | Yes | Yes | Yes | No |
LAPACK | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
MKL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
NAG Numerical Library | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
NMath | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
SciPy (Python packages) | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | No | No |
Eigen | Yes | Yes | Yes | ? | Yes | ? | Yes | Yes | Yes | Yes | Yes | Yes | ? |
Armadillo | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes |