This class implements a wrapper to the Spectra generalized eigen solver for square real symmetric matrices, i.e. to solve \( Ax = \lambda Bx\), where A is symmetric and B is positive definite. It calculates a selection of eigenvalues. At most \( n - 1 \), where \( n \) is the number of rows/cols of the matrices.
More...
#include <ikarus/solver/eigenvaluesolver/generalizedeigensolver.hh>
|
static constexpr bool | isDense = Concepts::EigenMatrix<MT> |
|
template<Concepts::DenseOrSparseEigenMatrix MT>
struct Ikarus::PartialGeneralizedSymEigenSolver< MT >
Under the hood it uses the Spectra::SymGEigsSolver with Cholesky decomposition for B
- Template Parameters
-
MT | the used Matrix Type, can be a sparse or dense Eigen::Matrix |
◆ CholeskyType
template<Concepts::DenseOrSparseEigenMatrix MT>
◆ MatrixType
template<Concepts::DenseOrSparseEigenMatrix MT>
◆ ProductType
template<Concepts::DenseOrSparseEigenMatrix MT>
◆ ScalarType
template<Concepts::DenseOrSparseEigenMatrix MT>
◆ SolverType
template<Concepts::DenseOrSparseEigenMatrix MT>
◆ PartialGeneralizedSymEigenSolver() [1/2]
template<Concepts::DenseOrSparseEigenMatrix MT>
template<typename MATA , typename MATB >
requires (Concepts::DenseOrSparseEigenMatrix<std::remove_cvref_t<MATA>>)
- Template Parameters
-
MATA | the deduced type of the matrix A |
MATB | the deduced type of the matrix B |
- Parameters
-
A | the matrix A |
B | the matrix B |
◆ PartialGeneralizedSymEigenSolver() [2/2]
template<Concepts::DenseOrSparseEigenMatrix MT>
template<Concepts::FlatAssembler AssemblerA, Concepts::FlatAssembler AssemblerB>
- Template Parameters
-
AssemblerA | the type of the assembler for matrix A. |
AssemblerB | the type of the assembler for matrix B. |
- Parameters
-
assemblerA | assembler for matrix A. |
assemblerB | assembler for matrix B. |
◆ compute()
template<Concepts::DenseOrSparseEigenMatrix MT>
- Parameters
-
selection | defines which n eigenvalues should be returned (i.e. smallest or greatesst). |
sortRule | defines how these eigenvalues should be sorted. |
tolerance | given tolerance for iterative eigenvalue solving (default: 1e-10). |
maxit | givenn maximum iterations for eigenvalue solving (default: 1000). |
- Returns
- true solving was successful.
-
false solving was not successful.
◆ eigenvalues()
template<Concepts::DenseOrSparseEigenMatrix MT>
- Returns
- Eigen::VectorXd vector of eigenvalues
◆ eigenvectors()
template<Concepts::DenseOrSparseEigenMatrix MT>
- Parameters
-
_nev | optionally specify how many eigenvectors are requested |
- Returns
- auto matrix with the eigevectors as columns
◆ nev()
template<Concepts::DenseOrSparseEigenMatrix MT>
◆ isDense
template<Concepts::DenseOrSparseEigenMatrix MT>
The documentation for this struct was generated from the following file: