Interface to LAPACK routines. More...
Functions | |
template<typename Array2d , typename Array1d > | |
void | cusp::lapack::getrf (Array2d &A, Array1d &piv) |
Compute LU factorization of matrix. More... | |
template<typename Array2d > | |
void | cusp::lapack::potrf (Array2d &A, char uplo= 'U') |
Computes the Cholesky factorization of a symmetric (Hermitian) positive-definite matrix. More... | |
template<typename Array2d , typename Array1d > | |
void | cusp::lapack::sytrf (Array2d &A, Array1d &piv, char uplo= 'U') |
Computes the Bunch-Kaufman factorization of a symmetric matrix. More... | |
template<typename Array2d , typename Array1d > | |
void | cusp::lapack::getrs (const Array2d &A, const Array1d &piv, Array2d &B, char trans= 'N') |
Solves a system of linear equations with an LU-factored square matrix, with multiple right-hand sides. More... | |
template<typename Array2d > | |
void | cusp::lapack::potrs (const Array2d &A, Array2d &B, char uplo= 'U') |
Solves a system of linear equations with a Cholesky-factored symmetric (Hermitian) positive-definite matrix. More... | |
template<typename Array2d , typename Array1d > | |
void | cusp::lapack::sytrs (const Array2d &A, const Array1d &piv, Array2d &B, char uplo= 'U') |
Solves a system of linear equations with a UDU- or LDL-factored symmetric matrix. More... | |
template<typename Array2d > | |
void | cusp::lapack::trtrs (const Array2d &A, Array2d &B, char uplo= 'U', char trans= 'N', char diag= 'N') |
Solves a system of linear equations with a triangular matrix, with multiple right-hand sides. More... | |
template<typename Array2d > | |
void | cusp::lapack::trtri (Array2d &A, char uplo= 'U', char diag= 'N') |
This routine computes the inverse of a triangular matrix. More... | |
template<typename Array2d , typename Array1d > | |
void | cusp::lapack::syev (const Array2d &A, Array1d &eigvals, Array2d &eigvecs, char uplo= 'U') |
Computes all eigenvalues and eigenvectors of a real symmetric matrix. More... | |
template<typename Array1d1 , typename Array1d2 , typename Array1d3 , typename Array2d > | |
void | cusp::lapack::stev (const Array1d1 &alphas, const Array1d2 &betas, Array1d3 &eigvals, Array2d &eigvecs, char job= 'V') |
Computes all eigenvalues and, optionally, eigenvectors of a real symmetric tridiagonal matrix. More... | |
template<typename Array2d1 , typename Array2d2 , typename Array1d , typename Array2d3 > | |
void | cusp::lapack::sygv (const Array2d1 &A, const Array2d2 &B, Array1d &eigvals, Array2d3 &eigvecs) |
Computes all eigenvalues and, optionally, eigenvectors of a real generalized symmetric definite eigenproblem. More... | |
template<typename Array2d , typename Array1d > | |
void | cusp::lapack::gesv (const Array2d &A, Array2d &B, Array1d &piv) |
Computes the solution of a system of linear equations with a square matrix A and multiple right-hand sides. More... | |
void cusp::lapack::gesv | ( | const Array2d & | A, |
Array2d & | B, | ||
Array1d & | piv | ||
) |
Computes the solution of a system of linear equations with a square matrix A and multiple right-hand sides.
Array2d | Type of the input matrix |
Array1d | Type of the input pivots array |
A | Contains the upper or lower triangle of a symmetric matrix |
B | Contains the upper or lower triangle of a symmetric positive definite matrix |
piv | Array containing pivots |
An LU decomposition with partial pivoting and row interchanges is used to factor A as A = P*L*U, where P is a permutation matrix, L is unit lower triangular, and U is upper triangular. The factored form of A is then used to solve the system of equations A*X = B.
void cusp::lapack::getrf | ( | Array2d & | A, |
Array1d & | piv | ||
) |
Compute LU factorization of matrix.
Array2d | Type of the input matrix to factor |
Array1d | Type of pivot array |
A | Input matrix to factor |
piv | Array containing pivots |
void cusp::lapack::getrs | ( | const Array2d & | A, |
const Array1d & | piv, | ||
Array2d & | B, | ||
char | trans = 'N' |
||
) |
Solves a system of linear equations with an LU-factored square matrix, with multiple right-hand sides.
Array2d | Type of the input matrices |
Array1d | Type of pivot array |
A | LU factored input matrix |
piv | Array containing pivots |
B | matrix containing multiple right-hand side vectors |
trans | If 'N', then A*X = B is solved for X. |
void cusp::lapack::potrf | ( | Array2d & | A, |
char | uplo = 'U' |
||
) |
Computes the Cholesky factorization of a symmetric (Hermitian) positive-definite matrix.
Array2d | Type of the input matrix to factor |
A | Input matrix to factor |
uplo | Indicates whether A is upper or lower triangular |
void cusp::lapack::potrs | ( | const Array2d & | A, |
Array2d & | B, | ||
char | uplo = 'U' |
||
) |
Solves a system of linear equations with a Cholesky-factored symmetric (Hermitian) positive-definite matrix.
Array2d | Type of the input matrices |
A | Cholesky factored input matrix |
B | matrix containing multiple right-hand side vectors |
uplo | Indicates whether A is upper or lower triangular |
A = UT*U for real data, A = UH*U for complex dataif UHplo='U' A = L*LT for real data, A = L*LH for complex dataif uplo='L'
where L is a lower triangular matrix and U is upper triangular. The system is solved with multiple right-hand sides stored in the columns of the matrix B.
void cusp::lapack::stev | ( | const Array1d1 & | alphas, |
const Array1d2 & | betas, | ||
Array1d3 & | eigvals, | ||
Array2d & | eigvecs, | ||
char | job = 'V' |
||
) |
Computes all eigenvalues and, optionally, eigenvectors of a real symmetric tridiagonal matrix.
Array1d1 | Type of the input array |
Array1d2 | Type of the input array |
Array1d3 | Type of the input array |
Array2d | Type of the input array |
alphas | Main diagonal entries |
betas | First sub-diagonal entries |
eigvals | On return contain eigenvalues of matrix |
eigvecs | On return contain eigenvectors of the matrix |
job | If 'V', then eigenvalues and eigenvectors are computed |
void cusp::lapack::syev | ( | const Array2d & | A, |
Array1d & | eigvals, | ||
Array2d & | eigvecs, | ||
char | uplo = 'U' |
||
) |
Computes all eigenvalues and eigenvectors of a real symmetric matrix.
Array2d | Type of the input matrices |
Array1d | Type of the input array |
A | Symmetric input matrix |
eigvals | On return contain eigenvalues of matrix |
eigvecs | On return contain eigenvectors of the matrix |
uplo | Indicates whether upper or lower portion of symmetric matrix is stored. |
void cusp::lapack::sygv | ( | const Array2d1 & | A, |
const Array2d2 & | B, | ||
Array1d & | eigvals, | ||
Array2d3 & | eigvecs | ||
) |
Computes all eigenvalues and, optionally, eigenvectors of a real generalized symmetric definite eigenproblem.
Array2d1 | Type of the input array |
Array2d2 | Type of the input array |
Array1d | Type of the input array |
Array2d3 | Type of the input array |
A | Contains the upper or lower triangle of a symmetric matrix |
B | Contains the upper or lower triangle of a symmetric positive definite matrix |
eigvals | On return contain eigenvalues of matrix |
eigvecs | On return contain eigenvectors of the matrix |
A*x = λ*B*x, A*B*x = λ*x, or B*A*x = λ*x.
Here A and B are assumed to be symmetric and B is also positive definite.
void cusp::lapack::sytrf | ( | Array2d & | A, |
Array1d & | piv, | ||
char | uplo = 'U' |
||
) |
Computes the Bunch-Kaufman factorization of a symmetric matrix.
Array2d | Type of the input matrix to factor |
Array1d | Type of pivot array |
A | Input matrix to factor |
piv | Array containing pivots |
uplo | Indicates whether A is upper or lower triangular |
void cusp::lapack::sytrs | ( | const Array2d & | A, |
const Array1d & | piv, | ||
Array2d & | B, | ||
char | uplo = 'U' |
||
) |
Solves a system of linear equations with a UDU- or LDL-factored symmetric matrix.
Array2d | Type of the input matrices |
Array1d | Type of pivot array |
A | Input matrix to factor |
piv | Array containing pivots |
B | matrix containing multiple right-hand side vectors |
uplo | Indicates whether A is upper or lower triangular |
A = P*U*D*UT*PT, if uplo='U' A = P*L*D*LT*PT, if uplo='L'
where P is a permutation matrix, U and L are upper and lower triangular matrices with unit diagonal, and D is a symmetric block-diagonal matrix. The system is solved with multiple right-hand sides stored in the columns of the matrix B.
void cusp::lapack::trtri | ( | Array2d & | A, |
char | uplo = 'U' , |
||
char | diag = 'N' |
||
) |
This routine computes the inverse of a triangular matrix.
Array2d | Type of the input matrix |
A | Triangular input matrix |
uplo | Indicates whether A is upper or lower triangular |
diag | If 'N', then A is not a unit triangular matrix. |
void cusp::lapack::trtrs | ( | const Array2d & | A, |
Array2d & | B, | ||
char | uplo = 'U' , |
||
char | trans = 'N' , |
||
char | diag = 'N' |
||
) |
Solves a system of linear equations with a triangular matrix, with multiple right-hand sides.
Array2d | Type of the input matrices |
A | Triangular input matrix |
B | matrix containing multiple right-hand side vectors |
uplo | Indicates whether A is upper or lower triangular |
trans | If 'N', then A*X = B is solved for X. |
diag | If 'N', then A is not a unit triangular matrix. |