Iterative methods for computing eigenpairs of hermitian and non-hermitian linear systems. More...
Functions | |
template<typename Matrix , typename Array2d > | |
void | cusp::eigen::arnoldi (const Matrix &A, Array2d &H, size_t k=10) |
Approximate spectral radius of A using Arnoldi. More... | |
template<typename Matrix , typename Array1d1 , typename Array2d1 , typename Array1d2 , typename Array2d2 , typename LanczosOptions > | |
void | cusp::eigen::lanczos (const Matrix &A, Array1d1 &eigVals, Array2d1 &eigVecs, LanczosOptions &options) |
Lanczos method. More... | |
template<class LinearOperator , class Vector , class Monitor , class Preconditioner > | |
void | cusp::eigen::lobpcg (LinearOperator &A, Vector &S, Vector &X, Monitor &monitor, Preconditioner &M, bool largest=true) |
LOBPCG method. More... | |
template<typename MatrixType > | |
double | cusp::eigen::disks_spectral_radius (const MatrixType &A) |
Uses Gershgorin disks to approximate spectral radius. More... | |
template<typename MatrixType > | |
double | cusp::eigen::estimate_rho_Dinv_A (const MatrixType &A) |
Approximate spectral radius of (D^-1)A. More... | |
template<typename MatrixType > | |
double | cusp::eigen::estimate_spectral_radius (const MatrixType &A, size_t k=20) |
Approximate spectral radius of A using Lanczos. More... | |
template<typename MatrixType > | |
double | cusp::eigen::ritz_spectral_radius (const MatrixType &A, size_t k=10, bool symmetric=false) |
Approximate spectral radius of A using Lanczos or Arnoldi. More... | |
void cusp::eigen::arnoldi | ( | const Matrix & | A, |
Array2d & | H, | ||
size_t | k = 10 |
||
) |
Approximate spectral radius of A using Arnoldi.
Matrix | type of a sparse or dense matrix |
Array2d | type of dense matrix of partials |
A | matrix of the linear system |
H | dense matrix of ritz values |
k | maximum number of outer Arnoldi iterations |
arnoldi
to compute the spectral radius of a 16x16 Laplacian matrix.double cusp::eigen::disks_spectral_radius | ( | const MatrixType & | A | ) |
Uses Gershgorin disks to approximate spectral radius.
MatrixType | type of a sparse or dense matrix |
A | matrix of the linear system |
disks_spectral_radius
to compute the spectral radius of a 16x16 Laplacian matrix.double cusp::eigen::estimate_rho_Dinv_A | ( | const MatrixType & | A | ) |
Approximate spectral radius of (D^-1)A.
MatrixType | type of a sparse or dense matrix |
A | matrix of the linear system |
estimate_rho_Dinv_A
to compute the spectral radius of a 16x16 Laplacian matrix.double cusp::eigen::estimate_spectral_radius | ( | const MatrixType & | A, |
size_t | k = 20 |
||
) |
Approximate spectral radius of A using Lanczos.
MatrixType | type of a sparse or dense matrix |
A | matrix of the linear system |
estimate_spectral_radius
to compute the spectral radius of a 16x16 Laplacian matrix.void cusp::eigen::lanczos | ( | const Matrix & | A, |
Array1d1 & | eigVals, | ||
Array2d1 & | eigVecs, | ||
LanczosOptions & | options | ||
) |
Lanczos method.
LinearOperator | is a matrix or subclass of linear_operator |
Vector | vector |
Monitor | is a monitor |
Preconditioner | is a matrix or subclass of linear_operator |
A | matrix of the linear system |
S | eigenvalues |
X | eigenvectors |
monitor | monitors iteration and determines stopping conditions |
M | preconditioner for A |
largest | If true compute the eigenpair corresponding to the largest eigenvalue otherwise compute the smallest. |
M
.A
and M
must be symmetric.lobpcg
to solve a 10x10 Poisson problem.void cusp::eigen::lobpcg | ( | LinearOperator & | A, |
Vector & | S, | ||
Vector & | X, | ||
Monitor & | monitor, | ||
Preconditioner & | M, | ||
bool | largest = true |
||
) |
LOBPCG method.
LinearOperator | is a matrix or subclass of linear_operator |
Vector | vector |
Monitor | is a monitor |
Preconditioner | is a matrix or subclass of linear_operator |
A | matrix of the linear system |
S | eigenvalues |
X | eigenvectors |
monitor | monitors iteration and determines stopping conditions |
M | preconditioner for A |
largest | If true compute the eigenpair corresponding to the largest eigenvalue otherwise compute the smallest. |
A
and M
must be symmetric.lobpcg
to solve a 10x10 Poisson problem.monitor
double cusp::eigen::ritz_spectral_radius | ( | const MatrixType & | A, |
size_t | k = 10 , |
||
bool | symmetric = false |
||
) |
Approximate spectral radius of A using Lanczos or Arnoldi.
MatrixType | type of a sparse or dense matrix |
A | matrix of the linear system |
ritz_spectral_radius
to compute the spectral radius of a 16x16 Laplacian matrix.