Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Comparison of linear algebra libraries

From Wikipedia, the free encyclopedia

The following tables provide a comparison oflinear algebrasoftware libraries, either specialized or general purpose libraries with significant linear algebra coverage.

Dense linear algebra

[edit]

General information

[edit]
CreatorLanguageFirst public releaseLatest stable versionSource code availabilityLicenseNotes
ALGLIB[1]ALGLIB ProjectC++, C#, Python, FreePascal20064.00.0 / 05.2023FreeGPL/commercialGeneral purpose numerical analysis library with C++, C#, Python, FreePascal interfaces.
Armadillo[2][3]NICTAC++200912.6.6 / 10.2023FreeApache License 2.0C++ template library for linear algebra; includes various decompositions and factorisations; syntax (API) is similar toMATLAB.
ATLASR. Clint Whaley et al.C20013.10.3 / 07.2016FreeBSDAutomatically tuned implementation of BLAS. Also includes LU and Cholesky decompositions.
Blaze[4]K. Iglberger et al.C++20123.8 / 08.2020FreeBSDBlaze is an open-source, high-performance C++ math library for dense and sparse arithmetic.
Blitz++Todd VeldhuizenC++?1.0.2 / 10.2019FreeGPLBlitz++ is a C++ template class library that provides high-performance multidimensional array containers for scientific computing.
Boost uBLASJ. Walter, M. KochC++20001.84.0 / 12.2023FreeBoost Software LicenseuBLAS is a C++ template class library that provides BLAS level 1, 2, 3 functionality for dense, packed and sparse matrices.
DlibDavis E. KingC++200619.24.2 / 05.2023FreeBoostC++ template library; binds to optimized BLAS such as the Intel MKL; Includes matrix decompositions, non-linear solvers, and machine learning tooling
EigenBenoît JacobC++20083.4.0 / 08.2021FreeMPL2Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
Fastor[5]R. Poya, A. J. Gil and R. OrtigosaC++20160.6.4 / 06.2023FreeMIT LicenseFastor is a high performance tensor (fixed multi-dimensional array) library for modern C++.
GNU Scientific Library[6]GNU ProjectC, C++19962.7.1 / 11.2021FreeGPLGeneral purpose numerical analysis library. Includes some support for linear algebra.
IMSL Numerical LibrariesRogue Wave SoftwareC, Java, C#, Fortran, Python1970many componentsNon-freeProprietaryGeneral purpose numerical analysis library.
LAPACK[7][8]Fortran19923.12.0 / 11.2023Free3-clause BSDNumerical linear algebra library with long history
librsbMichele MartoneC, Fortran, M420111.2.0 / 09.2016FreeGPLHigh-performance multi-threaded primitives for large sparse matrices. Support operations for iterative solvers: multiplication, triangular solve, scaling, matrix I/O, matrix rendering. Many variants: e.g.: symmetric, hermitian, complex, quadruple precision.
oneMKLIntelC, C++, Fortran20032023.1 / 03.2023Non-freeIntel Simplified Software LicenseNumerical analysis library optimized for Intel CPUs and GPUs. C++ SYCL based reference API implementation available in source for free.
Math.NET NumericsC. Rüegg, M. Cuda, et al.C#20095.0.0 / 04.2022FreeMIT LicenseC# numerical analysis library with linear algebra support
Matrix Template LibraryJeremy Siek, Peter Gottschling, Andrew Lumsdaine, et al.C++19984.0 / 2018FreeBoost Software LicenseHigh-performance C++ linear algebra library based onGeneric programming
NAG Numerical LibraryThe Numerical Algorithms GroupC, Fortran1971many componentsNon-freeProprietaryGeneral purpose numerical analysis library.
NMathCenterSpace SoftwareC#20037.1 / 12.2019Non-freeProprietaryMath and statistical libraries for the.NET Framework
SciPy[9][10][11]EnthoughtPython20011.11.1 / 6.2023FreeBSDBased on Python
Xtensor[12]S. Corlay, W. Vollprecht, J. Mabille et al.C++20160.21.10 / 11.2020Free3-clause BSDXtensor is a C++ library meant for numerical analysis with multi-dimensional array expressions, broadcasting and lazy computing.

Matrix types and operations

[edit]

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
  • SVDsingular value decomposition
  • GEVP – generalized EVP
  • GSVDgeneralized SVD
RealComplexSPDHPDSYHEBNDTFOFEVPSVDGEVPGSVD
ALGLIBYesYesYesYesNoNoNoYesYesYesYesYesNo
ATLASYesYesYesYesNoNoNoYesNoNoNoNoNo
DlibYesYesYesYesYesYesNoYesYesYesYesNoNo
GNU Scientific LibraryYesYesYesYesNoNoNoYesYesYesYesYesYes
ILNumerics.NetYesYesYesYesNoNoNoYesYesYesYesNoNo
IMSL Numerical LibrariesYesYesYesYesNoNoYesYesNoYesYesYesNo
LAPACKYesYesYesYesYesYesYesYesYesYesYesYesYes
oneMKLYesYesYesYesYesYesYesYesYesYesYesYesYes
NAG Numerical LibraryYesYesYesYesYesYesYesYesYesYesYesYesYes
NMathYesYesYesYesYesYesYesYesYesYesYesNoNo
SciPy (Python packages)YesYesYesYesNoNoNoYesYesYesYesNoNo
EigenYesYesYesYesYesYesYesYesYesYesYesYesNo
ArmadilloYesYesYesYesYesYesNoYesYesYesYesYesNo

References

[edit]
  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".
  5. ^Poya, Roman and Gil, Antonio J. and Ortigosa, Rogelio (2017)."A high performance data parallel tensor contraction framework: Application to coupled electro-mechanics".Computer Physics Communications.216:35–52.Bibcode:2017CoPhC.216...35P.doi:10.1016/j.cpc.2017.02.016.hdl:10317/17584.{{cite journal}}: CS1 maint: multiple names: authors list (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".GitHub. 13 February 2022.

External links

[edit]
Linear equations
Three dimensional Euclidean space
Matrices
Matrix decompositions
Relations and computations
Vector spaces
Structures
Multilinear algebra
Affine and projective
Numerical linear algebra
Retrieved from "https://en.wikipedia.org/w/index.php?title=Comparison_of_linear_algebra_libraries&oldid=1316897197"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp