- Singular Value Decomposition
- Eigen Values
- Linear Equations
- Sylvester Equations
- Least Squares
- Orthogonal Factorizations
- Factorizations
- Factored Calculations
- Reductions
- Matrix Norm
- Matrix Balance
- Dynamic Mode Decomposition
- Singular Spectrum Analysis
- L1 Trend Filter
- BLAS Level 2
- BLAS Level 3
OpenBLAS Methods
OpenBLAS is a high-performance open-source linear algebra library that implements BLAS (Basic Linear Algebra Subprograms) and some LAPACK functions. OpenBLAS is designed to improve computational performance, particularly in matrix and vector operations, which are often used in scientific and engineering tasks such as machine learning, numerical methods, and simulations.
Key features of OpenBLAS:
- Multithreading support: OpenBLAS can efficiently use multiple processor cores for parallel computations, significantly accelerating operations on multiprocessor systems.
- Optimization for processor architectures: OpenBLAS includes optimized builds for various processors such as Intel, AMD, ARM and others. The library automatically detects processor characteristics and selects the most suitable function implementations.
- Extensive BLAS operation support: OpenBLAS implements core BLAS functions, including vector operations (e.g., vector addition and dot product), matrix operations (multiplication), and vector-matrix operations.
- LAPACK compatibility: The library supports LAPACK (Linear Algebra PACKage) functions for more complex linear algebra operations, such as solving systems of linear equations, calculating matrix eigenvalues, and others.
- High performance: Compared to other BLAS libraries, OpenBLAS often shows better results due to hand-optimization for specific processor architectures.
Most LAPACK functions in the OpenBLAS library use an integer info parameter to return the function or subroutine completion status: whether it completed successfully, input parameter errors were detected, or numerical issues occurred.
In all cases, an info value of 0 means that the LAPACK function completed successfully. Any other value sets the ERR_MATRIX_OPENBLAS (5707) or ERR_MATRIX_OPENBLAS_PARAMETER (5708) error.
Many LAPACK functions have a mode for querying the workspace size required to execute the function with specified parameters. In this mode, the function performs no calculations and only checks the input parameters for correctness. On success, it returns the required workspace size; otherwise, the info parameter returns the number of the invalid parameter. The ERR_MATRIX_OPENBLAS_PARAMETER error is set in this case.
To find out which info code was returned after an unsuccessful LAPACK function execution, use MQLInfoInteger(MQL_LAST_OPENBLAS_ERROR).
Some methods, such as ReflectBidiagonalToQP, FactorizationQR, FactorizationRQ2 and others, sequentially call several LAPACK functions. To find out exactly which function produced the error, use MQLInfoString(MQL_LAST_OPENBLAS_FUNCTION).
Applications
OpenBLAS is widely used in applications involving numerical computations:
- Training neural networks and other machine learning tasks.
- Scientific computing (e.g. modeling of physical processes).
- Processing and analyzing large amounts of data.
The library is integrated into many popular scientific software packages such as NumPy, SciPy, and TensorFlow, which rely on high-performance linear algebra operations.
OpenBLAS is an excellent choice for those seeking an open-source solution for high-performance computing, particularly when working with large matrices and vectors.
Function |
Action |
|---|---|
Singular Value Decomposition, "divide-and-conquer" algorithm. This algorithm is considered the fastest among other SVD algorithms (LAPACK function GESDD). |
|
Singular Value Decomposition, QR algorithm. This algorithm is considered a classical SVD algorithm (LAPACK function GESVD). |
|
Singular Value Decomposition, QR with pivoting algorithm (LAPACK function GESVDQ). |
|
Singular Value Decomposition, bisection algorithm (LAPACK function GESVDX). |
|
Singular Value Decomposition, Jacobi high level algorithm (LAPACK function GEJSV). |
|
Singular Value Decomposition, Jacobi low level algorithm (LAPACK function GESVJ). The method computes small singular values and their singular vectors with much greater accuracy than other SVD routines in certain cases. |
|
Singular Value Decomposition, divide-and-conquer algorithm for bidiagonal matrices (LAPACK function BDSDC). |
|
Singular Value Decomposition, bisection algorithm for bidiagonal matrices (LAPACK function BDSVDX). |
|
Computes the singular value decomposition of a general matrix that has been reduced to bidiagonal form by the method ReduceToBidiagonal. LAPACK function BDSQR. |
|
Compute eigenvalues and eigenvectors of a regular square matrix using the classical algorithm (LAPACK function GEEV). |
|
Compute eigenvalues and eigenvectors of a regular square matrix in Expert mode, i.e. with the ability to influence the computation algorithm and the ability to obtain accompanying computation data (LAPACK function GEEVX). |
|
Compute eigenvalues, upper triangular matrix in Schur form, and matrix of Schur vectors (LAPACK function GEES). See also Schur decomposition. |
|
Compute generalized eigenvalues and eigenvectors for a pair of ordinary square matrices (LAPACK function GGEV). |
|
Compute generalized eigenvalues and eigenvectors for a pair of regular square matrices in Expert mode, i.e. with the ability to influence the computation algorithm and the ability to obtain accompanying computation data (LAPACK function GGEVX). Both matrices must be the same size. |
|
Compute a pair of ordinary square matrices of generalized eigenvalues, generalized eigenvectors, generalized Schur forms, as well as left and right Schur vectors (LAPACK function GGES). |
|
Compute generalized eigenvalues and eigenvectors for a pair of regular square matrices using a block algorithm (LAPACK function GGEV3). Both matrices must be the same size. The method parameters are exactly the same as EigenSolver2. |
|
Compute a pair of regular square matrices of generalized eigenvalues, generalized eigenvectors, generalized Schur forms, as well as left and right Schur vectors (LAPACK function GGES3). |
|
Computes the eigenvalues of a Hessenberg matrix H and the matrices T and Z from the Schur decomposition H = Z T Z**T, where T is an upper quasi-triangular matrix (the Schur form), and Z is the orthogonal matrix of Schur vectors. LAPACK function HSEQR. See also Schur decomposition. |
|
Computes eigenvectors of an real upper quasi-triangular or complex upper triangular matrix computed by EigenHessenbergSchurQ or EigenSolverSchur. A = Q * T * Q**H, where T is an upper quasi-triangular matrix (the Schur form), and Q is the orthogonal matrix of Schur vectors. LAPACK function TREVC. |
|
Computes eigenvectors of an real upper quasi-triangular or complex upper triangular matrix computed by EigenHessenbergSchurQ or EigenSolverSchur. A = Q * T * Q**H, where T is an upper quasi-triangular matrix (the Schur form), and Q is the orthogonal matrix of Schur vectors. LAPACK function TREVC3. This is the block version (OpenBLAS level 3) of TREVC. Faster but not so accurate. |
|
Compute eigenvalues and eigenvectors of a symmetric or Hermitian (complex conjugate) matrix using the divide-and-conquer algorithm (LAPACK functions SYEVD, HEEVD). |
|
Compute eigenvalues and eigenvectors of a symmetric or Hermitian (complex conjugate) matrix using the QR algorithm (LAPACK functions SYEV, HEEV). |
|
Compute eigenvalues and eigenvectors of a symmetric or Hermitian (complex conjugate) matrix using the Multiple Relatively Robust Representations, MRRR algorithm (LAPACK functions SYEVR, HEEVR). |
|
Compute eigenvalues and eigenvectors of a symmetric or Hermitian (complex conjugate) matrix using the bisection algorithm (LAPACK functions SYEVX, HEEVX). |
|
Compute all eigenvalues and, optionally, eigenvectors of a real symmetric or Hermitian (complex conjugated) matrix using the 2stage technique for the reduction to tridiagonal. If eigenvectors are desired, it uses a divide and conquer algorithm (LAPACK functions SYEVD_2STAGE, HEEVD_2STAGE). |
|
Compute all eigenvalues and, optionally, eigenvectors of a real symmetric or Hermitian (complex conjugated) matrix using the 2stage technique for the reduction to tridiagonal (LAPACK functions SYEV_2STAGE, HEEV_2STAGE). |
|
Compute eigenvalues and eigenvectors of a symmetric or Hermitian (complex conjugated) matrix using the 2stage technique for the reduction to tridiagonal then using the Multiple Relatively Robust Representations, MRRR algorithm (LAPACK functions SYEVR_2STAGE, HEEVR_2STAGE). |
|
Compute eigenvalues and eigenvectors of a symmetric or Hermitian (complex conjugated) matrix using the 2stage technique for the reduction to tridiagonal then using the bisection algorithm (LAPACK functions SYEVX_2STAGE, HEEVX_2STAGE). |
|
Compute all the eigenvalues, and optionally, the eigenvectors of a generalized symmetric-definite eigenproblem, of the form A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x. LAPACK functions SYGVD, HEGVD. |
|
Compute all the eigenvalues, and optionally, the eigenvectors of a generalized symmetric-definite eigenproblem, of the form A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x. LAPACK functions SYGV, HEGV. |
|
Compute all the eigenvalues, and optionally, the eigenvectors of a generalized symmetric-definite eigenproblem, of the form A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x. LAPACK functions SYGVX, HEGVX. |
|
Compute eigenvalues and eigenvectors of a symmetric tridiagonal matrix using the divide-and-conquer algorithm (LAPACK function STEVD). |
|
Compute eigenvalues and eigenvectors of a symmetric tridiagonal matrix using the QR algorithm (LAPACK function STEV). |
|
Compute eigenvalues and eigenvectors of a symmetric tridiagonal matrix using the Multiple Relatively Robust Representations, MRRR algorithm (LAPACK function STEVR). |
|
Compute eigenvalues and eigenvectors of a symmetric tridiagonal matrix using the bisection algorithm (LAPACK function STEVX). |
|
Compute all eigenvalues of a symmetric tridiagonal matrix using the Pal-Walker-Kahan variant of the QL or QR algorithm (LAPACK function STERF). |
|
Compute eigenvalues and eigenvectors of a symmetric tridiagonal matrix using the divide-and-conquer algorithm (LAPACK function STEDC). |
|
Compute eigenvalues and eigenvectors of a symmetric tridiagonal matrix using the QR algorithm (LAPACK function STEQR). |
|
Compute eigenvalues and eigenvectors of a symmetric positive definite (положительно определённая) tridiagonal matrix using the QR algorithm (LAPACK function PTEQR). |
|
Computes the solution to the system of linear equations with a square coefficient matrix A and multiple right-hand sides. A*X = B, where A is an n-by-n general matrix, the columns of matrix B are individual right-hand sides, and the columns of X are the corresponding solutions. LAPACK function GESV. |
|
Computes the solution to the system of linear equations with a square triangular coefficient matrix A and multiple right-hand sides. A*X = B, where A is an n-by-n general matrix, the columns of matrix B are individual right-hand sides, and the columns of X are the corresponding solutions. LAPACK function TRTRS. |
|
Computes the inverse of a upper or lower triangular matrix A. LAPACK function TRTRI. |
|
Estimates the reciprocal of the condition number of a upper or lower triangular matrix A in either the one-norm or infinity-norm. LAPACK function TRCON. |
|
Computes the solution to the system of linear equations with a symmetric or Hermitian conjugated matrix A and multiple right-hand sides. A*X = B, where A is an n-by-n symmetric or Hermitian conjugated matrix, the columns of matrix B are individual right-hand sides, and the columns of X are the corresponding solutions. LAPACK functions SYSV, HESV. |
|
Computes the solution to the system of linear equations with a complex symmetric (not Hermitian conjugated!) matrix A and multiple right-hand sides. A*X = B, where A is an n-by-n complex symmetric matrix, the columns of matrix B are individual right-hand sides, and the columns of X are the corresponding solutions. LAPACK function SYSV. |
|
Computes the solution to the system of linear equations with a symmetric or Hermitian conjugated positive-definite matrix A and multiple right-hand sides. A*X = B, where A is an n-by-n symmetric or Hermitian conjugated positive-definite matrix, the columns of matrix B are individual right-hand sides, and the columns of X are the corresponding solutions. LAPACK function POSV. |
|
Computes the solution to the system of linear equations with a general (nonsymmetric) tridiagonal coefficient matrix A and multiple right-hand sides. A*X = B, where A is an n-by-n general tridiagonal matrix, the columns of matrix B are individual right-hand sides, and the columns of X are the corresponding solutions. LAPACK function GTSV. |
|
Computes the solution to the system of linear equations with a symmetric tridiagonal positive-definite coefficient matrix A and multiple right-hand sides. A*X = B, where A is an n-by-n symmetric tridiagonal matrix, the columns of matrix B are individual right-hand sides, and the columns of X are the corresponding solutions. LAPACK function PTSV. |
|
Solves Sylvester equation for real or complex square matrices: A*X + X*B = scale*C where A is m-by-m and B is n-by-n general matrices; the right hand side C and the solution X are m-by-n; and scale is an output scale factor, set <= 1 to avoid overflow in X. LAPACK functions GEES and TRSYL are used |
|
Solves Sylvester equation for real quasi-triangular or complex triangular matrices: op(A)*X + X*op(B) = scale*C or op(A)*X - X*op(B) = scale*C where op(A) = A or A**T or A**H, and A and B are both upper triangular. LAPACK function TRSYL. |
|
Solves Sylvester equation for real quasi-triangular or complex triangular matrices: op(A)*X + X*op(B) = scale*C or op(A)*X - X*op(B) = scale*C where op(A) = A or A**T or A**H, and A and B are both upper triangular. LAPACK function TRSYL3. This is the block (BLAS level 3) version of TRSYL. Faster up to 5 times but not so accurate. |
|
Solves Sylvester equation for real quasi-triangular or complex triangular matrices: A*X + X*B = C where A and B are both upper triangular. A is m-by-m and B is n-by-n; the right hand side C and the solution X are m-by-n. LAPACK function TRSYL. |
|
Solves Sylvester equation for real quasi-triangular or complex triangular matrices: A*X + X*B = C where A and B are both upper triangular. A is m-by-m and B is n-by-n; the right hand side C and the solution X are m-by-n. LAPACK function TRSYL3. This is the block (BLAS level 3) version of TRSYL. Faster up to 5 times but not so accurate. |
|
Solves overdetermined or underdetermined real / complex linear systems involving an m-by-n matrix A, or its transpose / conjugate-transpose, using a QR or LQ factorization of A. It is assumed that A has full rank. LAPACK function GELS. |
|
Computes the minimum-norm solution to a real or complex linear least squares problem: minimize 2-norm(| b - A*x |) using the singular value decomposition (SVD) of A. A is an m-by-n matrix which may be rank-deficient. The divide and conquer algorithm makes very mild assumptions about floating point arithmetic. LAPACK function GELSD. |
|
Computes the minimum-norm solution to a real or complex linear least squares problem: minimize 2-norm(| b - A*x |) using the singular value decomposition (SVD) of A. A is an m-by-n matrix which may be rank-deficient. LAPACK function GELSS. |
|
Solves overdetermined or underdetermined real / complex linear systems involving an m-by-n matrix A, or its transpose / conjugate-transpose, using a QR or LQ factorization of A with compact WY representation of Q. It is assumed that A has full rank. LAPACK function GELST. |
|
Computes the minimum-norm solution to a real or complex linear least squares problem: minimize 2-norm(| b - A*x |) using a complete orthogonal factorization of A. A is an m-by-n matrix which may be rank-deficient. LAPACK function GELSY. |
|
Solves overdetermined or underdetermined real / complex linear systems involving an m-by-n matrix A, or its transpose / conjugate-transpose, using a tall skinny QR or short wide LQ factorization of A. It is assumed that A has full rank. LAPACK function GETSLS. |
|
Solves a general Gauss-Markov linear model problem: minimize || y ||_2 subject to d = A*x + B*y, using a generalized QR factorization of matrices A and B. LAPACK function GGGLM. |
|
Computes the QR factorization of a general m-by-n matrix: A = Q * R. LAPACK function GEQRF. |
|
Computes the QR factorization of a general m-by-n matrix: A = Q * R. R is an upper triangular matrix with nonnegative diagonal entries. LAPACK function GEQRFP. |
|
Computes the QR factorization of a general m-by-n matrix with column pivoting: A * P = Q * R. LAPACK function GEQP3. |
|
Computes a blocked Tall-Skinny QR factorization of an m-by-n (m>n) matrix: A = Q * R. LAPACK function LATSQR. |
|
Computes the LQ factorization of a general m-by-n matrix: A = L * Q. LAPACK function GELQF. |
|
Computes a blocked Short-Wide LQ factorization of an m-by-n (m<n) matrix: A = L * Q. LAPACK function LASWLQ. |
|
Computes the QL factorization of a general m-by-n matrix: A = Q * L. LAPACK function GEQLF. |
|
Computes the RQ factorization of a general m-by-n matrix: A = R * Q. LAPACK function GERQF. |
|
Reduces the M-by-N ( M<=N ) real or complex upper trapezoidal matrix A to upper triangular form by means of orthogonal transformations. LAPACK function TZRZF. |
|
Computes the generalized QR factorization of two matrices - A of n-by-m size and B of n-by-p size: A = Q * R, B = Q * T * Z. LAPACK function GGQRF. |
|
Computes the generalized RQ factorization of an m-by-n matrix A and a p-by-n matrix B: A = R * Q, B = Z * T * Q. LAPACK function GGRQF. |
|
Computes an LU factorization of a general M-by-N matrix A using partial pivoting with row interchanges. The factorization has the form A = P * L * U. LAPACK function GETRF. |
|
Computes an LU factorization of a general N-by-N matrix A with complete pivoting (row and column interchanges). The factorization has the form A = P * L * U * Q where P is a rows permutation matrix, L is lower triangular with unit diagonal elements, U is upper triangular, and Q is a columns permutation matrix. LAPACK function GETC2. |
|
Computes an LU factorization of a general (non-symmetric) tridiagonal N-by-N matrix A using elimination with partial pivoting and row interchanges. The factorization has the form A = P * L * U. LAPACK function GTTRF. |
|
Computes the factorization of a real symmetric or complex Hermitian matrix A using the Bunch-Kaufman diagonal pivoting method. LAPACK functions SYTRF, HETRF. |
|
Computes the factorization of a complex symmetric (not Hermitian conjugated!) matrix A using the Bunch-Kaufman diagonal pivoting method. LAPACK function SYTRF. |
|
Forms the factorization of a symmetric positive-definite or, for complex data, Hermitian positive-definite tridiagonal matrix A. LAPACK function PTTRF. |
|
Computes the factorization of a real symmetric or complex Hermitian positive-definite matrix A. LAPACK function POTRF. |
|
Computes the Cholesky factorization with complete pivoting of a real symmetric (complex Hermitian) positive semidefinite N-by-N matrix. LAPACK function PSTRF. |
|
Computes an LU factorization of a general M-by-N matrix A using partial pivoting with row interchanges. The factorization has the form A = P * L * U where P is a permutation matrix, L is lower triangular with unit diagonal elements (lower trapezoidal if m > n), and U is upper triangular (upper trapezoidal if m < n). LAPACK function GETRF. |
|
Computes an LU factorization of a general N-by-N matrix A with complete pivoting (row and column interchanges). The factorization has the form A = P * L * U * Q where P is a rows permutation matrix, L is lower triangular with unit diagonal elements, U is upper triangular, and Q is a columns permutation matrix. LAPACK function GETC2. |
|
Computes an LU factorization of a general (non-symmetric) tridiagonal N-by-N matrix A using elimination with partial pivoting and row interchanges. The factorization has the form A = P * L * U where P is a permutation matrix, L is lower triangular with unit diagonal elements, and U is upper triangular. LAPACK function GTTRF. |
|
Computes the factorization of a real symmetric or complex Hermitian matrix A using the Bunch-Kaufman diagonal pivoting method. LAPACK functions SYTRF, HETRF. |
|
Computes the factorization of a complex symmetric matrix A using the Bunch-Kaufman diagonal pivoting method. LAPACK function SYTRF. |
|
Solves a system of linear equations A * X = B, A**T * X = B, or A**H * X = B with an LU-factored square coefficient matrix AF computed by FactorizationPLURaw, with multiple right-hand sides. LAPACK function GETRS. |
|
Computes the inverse of an LU-factored general matrix AF computed by FactorizationPLURaw. LAPACK function GETRI. |
|
Estimates the reciprocal of the condition number of a general matrix A in either the one-norm or infinity-norm, using the LU factorization computed by FactorizationPLURaw. LAPACK function GECON. |
|
Solves a system of linear equations A * X = scale * RHS with a general N-by-N matrix A using the LU-factoization with complete pivoting computed by FactorizationPLUQRaw. LAPACK function GESC2. |
|
Solves a system of linear equations A * X = B, A**T * X = B, or A**H * X = B with a tridiagonal matrix A using the LU-factorization computed by FactorizationPLUGeTridRaw, with multiple right-hand sides. LAPACK function GTTRS. |
|
Estimates the reciprocal of the condition number of a general tridiagonal matrix A in either the one-norm or infinity-norm, using the LU factorization computed by FactorizationPLUGeTridRaw. LAPACK function GTCON. |
|
Solves a system of linear equations A * X = B with a real symmetric or complex Hermitian indefinite matrix using the factorization A = U**T * D * U or A = L * D * L**T computed by FactorizationLDLRaw, with multiple right-hand sides. LAPACK functions SYTRS, HETRS. |
|
Computes the inverse of a real symmetric or complex Hermitian indefinite matrix using the factorization A = U**T * D * U or A = L * D * L**T computed by FactorizationLDLRaw. LAPACK functions SYTRI, HETRI. |
|
Estimates the reciprocal of the condition number of a real symmetric or complex Hermitian indefinite matrix A, using the LDLT factorization computed by FactorizationLDLRaw. LAPACK functions SYCON, HECON. |
|
Solves a system of linear equations A * X = B with a complex symmetric indefinite matrix using the factorization A = U**T * D * U or A = L * D * L**T computed by FactorizationLDLComplexSyRaw, with multiple right-hand sides. LAPACK function SYTRS. |
|
Computes the inverse of a complex symmetric indefinite matrix using the factorization A = U**T * D * U or A = L * D * L**T computed by FactorizationLDLComplexSyRaw. LAPACK function SYTRI. |
|
Estimates the reciprocal of the condition number of a complex symmetric indefinite matrix A, using the LDLT factorization computed by FactorizationLDLComplexSyRaw. LAPACK function SYCON. |
|
Solves a system of linear equations A * X = B with a real symmetric or complex Hermitian positive-definite tridiagonal matrix using the factorization A = L * D * L**T computed by FactorizationLDLSyTridPD, with multiple right-hand sides. LAPACK function PTTRS. |
|
Estimates the reciprocal of the condition number of a real symmetric or complex Hermitian positive-definite tridiagonal matrix A using the LDLT factorization computed by FactorizationLDLSyTridPD. LAPACK function PTCON. |
|
Solves a system of linear equations A * X = B with a real symmetric or complex Hermitian positive-definite matrix using the factorization A = L * L**T computed by FactorizationCholesky, with multiple right-hand sides. LAPACK function POTRS. |
|
Computes the inverse of a real symmetric or complex Hermitian positive-definite matrix using the LLT factorization computed by FactorizationCholesky. LAPACK function POTRI. |
|
Estimates the reciprocal of the condition number of a real symmetric or complex Hermitian positive-definite matrix A using the LDL factorization computed by FactorizationCholesky. LAPACK function POCON. |
|
There is no special function in the OpenBLAS library to calculate the pseudo-inverse of a matrix. However, for this purpose can be used singular value decomposition (SVD) |
|
There is no special function in the OpenBLAS library to calculate the polar decomposition of a matrix. However, for this purpose can be used singular value decomposition (SVD) |
|
Reduces a general real or complex m-by-n matrix A to upper or lower bidiagonal form B by an orthogonal transformation: Q**T * A * P = B. If m >= n, B is upper bidiagonal; if m < n, B is lower bidiagonal. LAPACK function GEBRD. |
|
Generates orthogonal matrices Q and P**T (or P**H for complex types) determined by ReduceToBidiagonal method when reducing a real or complex matrix A to bidiagonal form: A = Q * B * P**T. Q and P**T are defined as products of elementary reflectors H(i) or G(i) respectively. LAPACK functions ORGBR, UNGBR. |
|
Reduces a real symmetric or complex Hermitian matrix A to trdiagonal form B by an orthogonal similarity transformation: Q**T * A * Q = B. LAPACK functions SYTRD, HETRD. |
|
Generates orthogonal matrix Q which is defined as the product of n-1 elementary reflectors of order n, as returned by ReduceSymmetricToTridiagonal |
|
Reduces a real or complex general n-by-n matrix A to upper Hessenberg form B by an orthogonal similarity transformation: Q**T * A * Q = H. LAPACK function GEHRD. |
|
Generates orthogonal matrix Q which is defined as the product of n-1 elementary reflectors of order n, as returned by ReduceToHessenberg: Q = H(1) H(2) . . . H(n-1). LAPACK function ORGHR. |
|
Returns the value of the 1-norm, infinity-norm, Frobenius norm, or the largest absolute value of any element of a general rectangular matrix. LAPACK function LANGE. |
|
Returns the value of the 1-norm, infinity-norm, Frobenius norm, or the largest absolute value of any element of a general tridiagonal matrix. LAPACK function LANGT. |
|
Returns the value of the 1-norm, infinity-norm, Frobenius norm, or the largest absolute value of any element of an upper Hessenberg matrix. LAPACK function LANHS. |
|
Returns the value of the 1-norm, infinity-norm, Frobenius norm, or the largest absolute value of any element of a real symmetric or complex Hermitian matrix. LAPACK functions LANSY, LANHE. |
|
Returns the value of the 1-norm, infinity-norm, Frobenius norm, or the largest absolute value of any element of a complex symmetric (not Hermitian) matrix. LAPACK function LANSY. |
|
Returns the value of the 1-norm, infinity-norm, Frobenius norm, or the largest absolute value of any element of a real symmetric or complex Hermitian tridiagonal matrix. LAPACK functions LANST, LANHT. |
|
Returns the value of the 1-norm, infinity-norm, Frobenius norm, or the largest absolute value of any element of a trapezoidal m-by-n or triangular matrix. LAPACK function LANTR. |
|
Balances a general real or complex square matrix A. This involves, first, permuting A by a similarity transformation to isolate eigenvalues in the first 1 to ILO-1 and last IHI+1 to N elements on the diagonal; and second, applying a diagonal similarity transformation to rows and columns ILO to IHI to make the rows and columns as close in norm as possible. Both steps are optional. Balancing may reduce the 1-norm of the matrix, and improve the accuracy of the computed eigenvalues and/or eigenvectors. LAPACK function GEBAL. |
|
Forms the right or left eigenvectors of a real or complex general matrix by backward transformation on the computed eigenvectors of the balanced matrix output by MatrixBalance. LAPACK function GEBAK. |
|
Reduces a real or complex general n-by-n balanced matrix A to upper Hessenberg form B by an orthogonal similarity transformation: Q**T * A * Q = H. LAPACK function GEHRD. |
|
Generates orthogonal matrix Q which is defined as the product of ihi-ilo elementary reflectors of order n, as returned by ReduceToHessenbergBalanced: Q = H(ilo) H(ilo+1) . . . H(ihi-1). LAPACK function ORGHR. |
|
Computes the eigenvalues of a Hessenberg matrix H and the matrices T and Z from the Schur decomposition H = Z T Z**T, where T is an upper quasi-triangular matrix (the Schur form), and Z is the orthogonal matrix of Schur vectors. Optionally Z may be postmultiplied into an input orthogonal matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the orthogonal matrix Q: A = Q*H*Q**T = (QZ)*T*(QZ)**T. LAPACK function HSEQR. |
|
Compute the Dynamic Mode Decomposition (DMD) for a pair of data snapshot matrices. LAPACK function GEDMD. |
|
Compute the Dynamic Mode Decomposition (DMD) for a pair of data snapshot matrices, using a QR factorization based compression of the data. LAPACK function GEDMDQ. |
|
A method function for calculating the relative contributions of spectral components based on their eigenvalues. |
|
A method function for calculating reconstructed and predicted data using spectral components of the input time series. |
|
A method function for calculating reconstructed components of the input time series and their contributions. |
|
A method function for calculating the reconstructed time series using the first component_count components. |
|
Method for calculating the maximum value of the regularization parameter λmax for a data vector. |
|
Method for calculating the L1 trend for a data vector. The regularization parameter lambda can be specified either in absolute units (relative=false) or in units of λmax. |
|
Computes a matrix-vector product using a general m-by-n matrix. y = alpha * op(A) * x + beta * y. BLAS function GEMV. |
|
Computes a matrix-vector product for a symmetric n-by-n matrix. y = alpha*A*x + beta*y. BLAS function SYMV. |
|
Computes a matrix-vector product for a Hermitian n-by-n matrix. y = alpha*A*x + beta*y. BLAS function HEMV. |
|
Computes a matrix-vector product using a triangular n-by-n matrix. y = op(A) * x. BLAS function TRMV. |
|
Performs a rank-1 update of a general m-by-n matrix. AU = alpha*x*y + A. BLAS functions GER, GERU. |
|
Performs a rank-1 conjugated update of a general m-by-n matrix. AU = alpha * x * conjg(y) + A. BLAS function GERC. |
|
Performs a rank-1 update of a symmetric n-by-n matrix. AU = alpha*x*x + A. BLAS function SYR. |
|
Performs a rank-1 conjugated update of a Hermitian n-by-n matrix. AU = alpha * x * conjg(x) + A. BLAS function HER2. |
|
Performs a rank-2 update of a symmetric n-by-n matrix. AU = alpha*x*y + alpha*y*x + A. BLAS function SYR2. |
|
Performs a rank-2 conjugated update of a Hermitian n-by-n matrix. AU = alpha * x * conjg(y) + conjg(alpha) * y * conjg(x) + A. BLAS function HER2. |
|
Computes a matrix-matrix product with general matrices. C = alpha * op(A) * op(B) + beta * C, where C is m-by-n matrix, op(A) is m-by-k matrix, op(B) is k-by-n matrix. BLAS function GEMM. |
|
Computes a matrix-matrix product where the input matrix A is symmetric. C = alpha*A*B + beta*C or C = alpha*B*A + beta*C, where A is a symmetric matrix of m-by-m size if side='L', or n-by-n size otherwise; B and C are m-by-n matrices. BLAS function SYMM. |
|
Computes a matrix-matrix product where the input matrix A is Hermitian. C = alpha*A*B + beta*C or C = alpha*B*A + beta*C, where A is a Hermitian matrix of m-by-m size if side='L', or n-by-n size otherwise; B and C are m-by-n matrices. BLAS function HEMM. |
|
Computes a matrix-matrix product where the input matrix A is triangular. C = alpha*op(A) or C = alpha*B*op(A), where A is a triangular matrix of m-by-m size if side='L', or n-by-n size otherwise; B and C are m-by-n matrices. BLAS function TRMM. |
|
Multiplies a complex matrix by a square real matrix. C = A * B, where A is m-by-n and complex; B is n-by-n and real; C is m-by-n and complex. BLAS function LACRM. |
|
Multiplies a square real matrix by a complex matrix. C = A * B, where A is m-by-m and real; B is m-by-n and complex; C is m-by-n and complex. BLAS function LARCM. |
|
Performs a symmetric rank-k update. CU = alpha * A * A**T + beta*C or CU = alpha * A**T * A + beta*C. BLAS function SYRK. |
|
Performs a Hermitian rank-k update. CU = alpha * A * A**H + beta*C or CU = alpha * A**H * A + beta*C. BLAS function HERK. |
|
Performs a symmetric rank-2k update. CU = alpha * A * B**T + alpha * B * A**T + beta*C or CU = alpha * A**T * B + alpha * B**T * A + beta*C. BLAS function SYR2K. |
|
Performs a Hermitian rank-2k update. CU = alpha * A * B**H + alpha * B * A**H + beta*C or CU = alpha * A**H * B + alpha * B**H * A + beta*C. BLAS function HER2K. |