0% found this document useful (0 votes)
15 views5 pages

Comparison of Linear Algebra Libraries - Wikipedia

The document provides a comprehensive comparison of various linear algebra libraries, detailing their creators, programming languages, release versions, licenses, and notable features. It includes information on both general-purpose and specialized libraries, covering aspects such as matrix types and operations supported by each library. The document serves as a resource for users seeking to understand the capabilities and differences among these libraries.

Uploaded by

gauravkuchankar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views5 pages

Comparison of Linear Algebra Libraries - Wikipedia

The document provides a comprehensive comparison of various linear algebra libraries, detailing their creators, programming languages, release versions, licenses, and notable features. It includes information on both general-purpose and specialized libraries, covering aspects such as matrix types and operations supported by each library. The document serves as a resource for users seeking to understand the capabilities and differences among these libraries.

Uploaded by

gauravkuchankar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Comparison of linear algebra libraries - Wikipedia [Link]

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

1 of 5 26/02/24, 18:58
Comparison of linear algebra libraries - Wikipedia [Link]

First Latest Source


Creator Language public stable code License Notes
release version availability

General purpose
numerical
C++, C#, analysis library
ALGLIB 4.00.0 / GPL/
ALGLIB[1] Python, 2006 Free with C++, C#,
Project 05.2023 commercial
FreePascal Python,
FreePascal
interfaces.

C++ template
library for linear
algebra; includes
various
Armadillo[2] 12.6.6 / Apache decompositions
[3] NICTA C++ 2009 Free
10.2023 License 2.0 and
factorisations;
syntax (API) is
similar to
MATLAB.

Automatically
tuned
R. Clint implementation
3.10.3 /
ATLAS Whaley et C 2001 Free BSD of BLAS. Also
07.2016
al. includes LU and
Cholesky
decompositions.

Blaze is an open-
source, high-
performance C+
K. Iglberger 3.8 /
Blaze[4] C++ 2012 Free BSD + math library
et al. 08.2020
for dense and
sparse
arithmetic.

Blitz++ is a C++
template class
library that
provides high-
Todd 1.0.2 /
Blitz++ C++ ? Free GPL performance
Veldhuizen 10.2019
multidimensional
array containers
for scientific
computing.

uBLAS is a C++
template class
library that
Boost provides BLAS
Boost J. Walter, M. 1.84.0 /
C++ 2000 Free Software level 1, 2, 3
uBLAS Koch 12.2023
License functionality for
dense, packed
and sparse
matrices.

C++ template
library; binds to
optimized BLAS
such as the Intel
MKL; Includes
Davis E. 19.24.2 /
Dlib C++ 2006 Free Boost matrix
King 05.2023
decompositions,
non-linear
solvers, and
machine
learning tooling

Eigen is a C++
template library
for linear
3.4.0 / algebra:
Eigen Benoît Jacob C++ 2008 Free MPL2 matrices,
08.2021
vectors,
numerical
solvers, and

2 of 5 26/02/24, 18:58
Comparison of linear algebra libraries - Wikipedia [Link]

First Latest Source


Creator Language public stable code License Notes
release version availability
related
algorithms.

Fastor is a high
performance
R. Poya, A. J. tensor (fixed
0.6.4 / MIT
Fastor[5] Gil and R. C++ 2016 Free multi-
06.2023 License
Ortigosa dimensional
array) library for
modern C++.

General purpose
numerical
GNU
2.7.1 / analysis library.
Scientific GNU Project C, C++ 1996 Free GPL
11.2021 Includes some
Library[6]
support for
linear algebra.

IMSL C, Java, C#, General purpose


Rogue Wave many
Numerical Fortran, 1970 Non-free Proprietary numerical
Software components
Libraries Python analysis library.

Numerical linear
LAPACK[7] 3.12.0 / 3-clause
[8] Fortran 1992 Free algebra library
11.2023 BSD
with long history

High-
performance
multi-threaded
primitives for
large sparse
matrices.
Support
operations for
iterative solvers:
Michele C, Fortran, 1.2.0 / multiplication,
librsb 2011 Free GPL
Martone M4 09.2016 triangular solve,
scaling, matrix I/
O, matrix
rendering. Many
variants: e.g.:
symmetric,
hermitian,
complex,
quadruple
precision.

Numerical
analysis library
optimized for
Intel Intel CPUs and
C, C++, 2023.1 / Simplified GPUs. C++ SYCL
oneMKL Intel 2003 Non-free
Fortran 03.2023 Software based reference
License API
implementation
available in
source for free.

C# numerical
[Link] C. Rüegg, M. 5.0.0 / MIT analysis library
C# 2009 Free
Numerics Cuda, et al. 04.2022 License with linear
algebra support

Jeremy Siek, High-


Peter performance C+
Matrix Boost
Gottschling, + linear algebra
Template C++ 1998 4.0 / 2018 Free Software
Andrew library based on
Library License
Lumsdaine, Generic
et al. programming

The
NAG General purpose
Numerical many
Numerical C, Fortran 1971 Non-free Proprietary numerical
Algorithms components
Library analysis library.
Group

3 of 5 26/02/24, 18:58
Comparison of linear algebra libraries - Wikipedia [Link]

First Latest Source


Creator Language public stable code License Notes
release version availability

Math and
CenterSpace 7.1 / statistical
NMath C# 2003 Non-free Proprietary
Software 12.2019 libraries for the
.NET Framework

SciPy[9][10] 1.11.1 /
[11] Enthought Python 2001 Free BSD Based on Python
6.2023

Xtensor is a C++
library meant for
numerical
analysis with
S. Corlay, W. multi-
0.21.10 / 3-clause
Xtensor[12] Vollprecht, J. C++ 2016 Free dimensional
11.2020 BSD
Mabille et al. array
expressions,
broadcasting
and lazy
computing.

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)
▪ EVP – eigenvalue problems
▪ SVD – singular value decomposition
▪ GEVP – generalized EVP
▪ GSVD – generalized SVD

4 of 5 26/02/24, 18:58
Comparison of linear algebra libraries - Wikipedia [Link]

Real Complex SPD HPD SY HE BND TF OF EVP SVD GEVP 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

Dlib Yes Yes Yes Yes Yes Yes No Yes Yes Yes Yes No No

GNU Scientific
Yes Yes Yes Yes No No No Yes Yes Yes Yes Yes Yes
Library

[Link] Yes Yes Yes Yes No No No Yes Yes Yes Yes No No

IMSL Numerical
Yes Yes Yes Yes No No Yes Yes No Yes Yes Yes No
Libraries

LAPACK Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes

oneMKL Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes

NAG Numerical
Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Library

NMath Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No

SciPy (Python
Yes Yes Yes Yes No No No Yes Yes Yes Yes No No
packages)

Eigen Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No

Armadillo Yes Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes No

References
1. Bochkanov, S., & Bystritsky, V. (2011). ALGLIB-a cross-platform numerical analysis and data
processing library. ALGLIB Project.
2. Sanderson, C., & Curtin, R. (2016). Armadillo: a template-based C++ library for linear algebra.
Journal of Open Source Software, 1(2), 26.
3. Sanderson, C. (2010). Armadillo: An open source C++ linear algebra library for fast prototyping and
computationally intensive experiments (p. 84). Technical report, NICTA.
4. "Bitbucket" ([Link]
5. Poya, Roman and Gil, Antonio J. and Ortigosa, Rogelio (2017). "A high performance data parallel
tensor contraction framework: Application to coupled electro-mechanics" ([Link]
Record/cronfa32097). Computer Physics Communications. 216: 35–52.
Bibcode:2017CoPhC.216...35P ([Link] doi:
10.1016/[Link].2017.02.016 ([Link]
6. Gough, B. (2009). GNU scientific library reference manual. Network Theory Ltd.
7. Anderson, E., Bai, Z., Bischof, C., Blackford, S., Dongarra, J., Du Croz, J., ... & Sorensen, D. (1999).
LAPACK Users' guide. SIAM.
8. Anderson, E., Bai, Z., Dongarra, J., Greenbaum, A., McKenney, A., Du Croz, J., ... & Sorensen, D.
(1990, November). LAPACK: A portable linear algebra library for high-performance computers. In
Proceedings of the 1990 ACM/IEEE conference on Supercomputing (pp. 2–11). IEEE Computer
Society Press.
9. Jones, E., Oliphant, T., & Peterson, P. (2001). SciPy: Open source scientific tools for Python.
10. Bressert, E. (2012). SciPy and NumPy: an overview for developers. " O'Reilly Media, Inc.".
11. Blanco-Silva, F. J. (2013). Learning SciPy for numerical and scientific computing. Packt Publishing
Ltd.
12. "Xtensor-stack/Xtensor" ([Link] GitHub. 13 February 2022.

External links
▪ scipy ([Link] on GitHub
▪ armadillo ([Link] on GitHub
▪ mathnet-numerics ([Link] on GitHub

Retrieved from "[Link]

5 of 5 26/02/24, 18:58

You might also like