Английская Википедия: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 Source code availability License Notes
ALGLIB[1] ALGLIB Project C++, C#, Python, FreePascal 2006 4.00.0 / 05.2023 Шаблон:Free GPL/commercial General purpose numerical analysis library with C++, C#, Python, FreePascal interfaces.
Armadillo[2][3] NICTA C++ 2009 12.6.6 / 10.2023 Шаблон:Free Apache License 2.0 C++ template library for linear algebra; includes various decompositions and factorisations; syntax (API) is similar to MATLAB.
ATLAS R. Clint Whaley et al. C 2001 3.10.3 / 07.2016 Шаблон:Free BSD Automatically tuned implementation of BLAS. Also includes LU and Cholesky decompositions.
Blaze[4] K. Iglberger et al. C++ 2012 3.8 / 08.2020 Шаблон:Free BSD Blaze is an open-source, high-performance C++ math library for dense and sparse arithmetic.
Blitz++ Todd Veldhuizen C++ ? 1.0.2 / 10.2019 Шаблон:Free GPL Blitz++ is a C++ template class library that provides high-performance multidimensional array containers for scientific computing.
Boost uBLAS J. Walter, M. Koch C++ 2000 1.84.0 / 12.2023 Шаблон:Free Boost Software License uBLAS is a C++ template class library that provides BLAS level 1, 2, 3 functionality for dense, packed and sparse matrices.
Dlib Davis E. King C++ 2006 19.24.2 / 05.2023 Шаблон:Free Boost C++ template library; binds to optimized BLAS such as the Intel MKL; Includes matrix decompositions, non-linear solvers, and machine learning tooling
Eigen Benoît Jacob C++ 2008 3.4.0 / 08.2021 Шаблон:Free MPL2 Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
Fastor[5] R. Poya, A. J. Gil and R. Ortigosa C++ 2016 0.6.4 / 06.2023 Шаблон:Free MIT License Fastor is a high performance tensor (fixed multi-dimensional array) library for modern C++.
GNU Scientific Library[6] GNU Project C, C++ 1996 2.7.1 / 11.2021 Шаблон: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 Шаблон:Nonfree Proprietary General purpose numerical analysis library.
LAPACK[7][8] Fortran 1992 3.12.0 / 11.2023 Шаблон:Free 3-clause BSD Numerical linear algebra library with long history
librsb Michele Martone C, Fortran, M4 2011 1.2.0 / 09.2016 Шаблон:Free GPL High-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.
oneMKL Intel C, C++, Fortran 2003 2023.1 / 03.2023 Шаблон:Nonfree Intel Simplified Software License Numerical analysis library optimized for Intel CPUs and GPUs. C++ SYCL based reference API implementation available in source for free.
Math.NET Numerics C. Rüegg, M. Cuda, et al. C# 2009 5.0.0 / 04.2022 Шаблон:Free MIT License C# numerical analysis library with linear algebra support
Matrix Template Library Jeremy Siek, Peter Gottschling, Andrew Lumsdaine, et al. C++ 1998 4.0 / 2018 Шаблон:Free Boost Software License High-performance C++ linear algebra library based on Generic programming
NAG Numerical Library The Numerical Algorithms Group C, Fortran 1971 many components Шаблон:Nonfree Proprietary General purpose numerical analysis library.
NMath CenterSpace Software C# 2003 7.1 / 12.2019 Шаблон:Nonfree Proprietary Math and statistical libraries for the .NET Framework
SciPy[9][10][11] Enthought Python 2001 1.11.1 / 6.2023 Шаблон:Free BSD Based on Python
Xtensor[12] S. Corlay, W. Vollprecht, J. Mabille et al. C++ 2016 0.21.10 / 11.2020 Шаблон:Free 3-clause BSD Xtensor is a C++ library meant for numerical analysis with multi-dimensional 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
  • SVDsingular value decomposition
  • GEVP – generalized EVP
  • GSVDgeneralized SVD
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 Library Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
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
oneMKL Шаблон: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 Шаблон:Yes Шаблон:Yes Шаблон:No
Armadillo Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No

References

Шаблон:Reflist

External links

Шаблон:Linear algebra

  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. Шаблон:Cite web
  5. Шаблон:Cite journal
  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. Шаблон:Cite web