This class implements a wrapper to the Eigen generalized eigen solver for square real symmetric matrices, i.e. to solve \( Ax = \lambda Bx\), where A is symmetric and B is positive definite. A and B have to be dense matrices. More...
#include <ikarus/solver/eigenvaluesolver/generalizedeigensolver.hh>
Public Types | |
using | ScalarType = typename MT::Scalar |
using | MatrixType = MT |
using | SolverType = Eigen::GeneralizedSelfAdjointEigenSolver< MatrixType > |
Public Member Functions | |
template<typename MATA , typename MATB > requires (Concepts::EigenMatrix<std::remove_cvref_t<MATA>>) | |
GeneralizedSymEigenSolver (MATA &&A, MATB &&B) | |
Construct a new GeneralizedSymEigenSolver object. More... | |
template<Concepts::FlatAssembler AssemblerA, Concepts::FlatAssembler AssemblerB> | |
GeneralizedSymEigenSolver (std::shared_ptr< AssemblerA > assemblerA, std::shared_ptr< AssemblerB > assemblerB) | |
Construct a new GeneralSymEigenSolver object. More... | |
bool | compute (int options=Eigen::ComputeEigenvectors) |
Starts the computation of the eigenvalue solver. More... | |
auto & | eigenvalues () const |
Returns the eigenvalues of the generalized eigenvalue problem. More... | |
auto & | eigenvectors () const |
Returns the eigenvectors of the generalized eigenvalue problem. More... | |
Eigen::Index | nev () const |
Returns the number of eigenvalues of the problem. More... | |
Under the hood it uses the Eigen::GeneralizedSelfAdjointEigenSolver
MT | the used Matrix Type, can be a dense Eigen::Matrix |
using Ikarus::GeneralizedSymEigenSolver< EigenValueSolverType::Eigen, MT >::MatrixType = MT |
using Ikarus::GeneralizedSymEigenSolver< EigenValueSolverType::Eigen, MT >::ScalarType = typename MT::Scalar |
using Ikarus::GeneralizedSymEigenSolver< EigenValueSolverType::Eigen, MT >::SolverType = Eigen::GeneralizedSelfAdjointEigenSolver<MatrixType> |
|
inline |
MATA | the deduced type of the matrix A |
MATB | the deduced type of the matrix B |
A | the matrix A |
B | the matrix B |
|
inline |
AssemblerA | the type of the assembler for matrix A. |
AssemblerB | the type of the assembler for matrix B. |
assemblerA | assembler for matrix A. |
assemblerB | assembler for matrix B. |
|
inline |
options | defaults to Eigen::ComputeEigenvectors, can be set to Eigen::EigenvaluesOnly, accessing eigenvectors in that case will results in an error |
|
inline |
|
inline |
|
inline |