11#ifndef EIGEN_GENERALIZEDSELFADJOINTEIGENSOLVER_H
12#define EIGEN_GENERALIZEDSELFADJOINTEIGENSOLVER_H
14#include "./Tridiagonalization.h"
47template<
typename _MatrixType>
53 typedef typename Base::Index Index;
54 typedef _MatrixType MatrixType;
162template<
typename MatrixType>
164compute(
const MatrixType& matA,
const MatrixType& matB,
int options)
166 eigen_assert(matA.cols()==matA.rows() && matB.rows()==matA.rows() && matB.cols()==matB.rows());
167 eigen_assert((options&~(EigVecMask|GenEigMask))==0
168 && (options&EigVecMask)!=EigVecMask
169 && ((options&GenEigMask)==0 || (options&GenEigMask)==
Ax_lBx
170 || (options&GenEigMask)==
ABx_lx || (options&GenEigMask)==
BAx_lx)
171 &&
"invalid option parameter");
173 bool computeEigVecs = ((options&EigVecMask)==0) || ((options&EigVecMask)==
ComputeEigenvectors);
178 int type = (options&GenEigMask);
185 MatrixType matC = matA.template selfadjointView<Lower>();
186 cholB.
matrixL().template solveInPlace<OnTheLeft>(matC);
187 cholB.
matrixU().template solveInPlace<OnTheRight>(matC);
193 cholB.
matrixU().solveInPlace(Base::m_eivec);
198 MatrixType matC = matA.template selfadjointView<Lower>();
206 cholB.
matrixU().solveInPlace(Base::m_eivec);
211 MatrixType matC = matA.template selfadjointView<Lower>();
219 Base::m_eivec = cholB.
matrixL() * Base::m_eivec;
Computes eigenvalues and eigenvectors of the generalized selfadjoint eigen problem.
Definition GeneralizedSelfAdjointEigenSolver.h:49
GeneralizedSelfAdjointEigenSolver(const MatrixType &matA, const MatrixType &matB, int options=ComputeEigenvectors|Ax_lBx)
Constructor; computes generalized eigendecomposition of given matrix pencil.
Definition GeneralizedSelfAdjointEigenSolver.h:107
GeneralizedSelfAdjointEigenSolver()
Default constructor for fixed-size matrices.
Definition GeneralizedSelfAdjointEigenSolver.h:63
GeneralizedSelfAdjointEigenSolver & compute(const MatrixType &matA, const MatrixType &matB, int options=ComputeEigenvectors|Ax_lBx)
Computes generalized eigendecomposition of given matrix pencil.
Definition GeneralizedSelfAdjointEigenSolver.h:164
GeneralizedSelfAdjointEigenSolver(Index size)
Constructor, pre-allocates memory for dynamic-size matrices.
Definition GeneralizedSelfAdjointEigenSolver.h:77
Standard Cholesky decomposition (LL^T) of a matrix and associated features.
Definition LLT.h:51
Traits::MatrixL matrixL() const
Definition LLT.h:104
Traits::MatrixU matrixU() const
Definition LLT.h:97
SelfAdjointEigenSolver()
Default constructor for fixed-size matrices.
Definition SelfAdjointEigenSolver.h:112
SelfAdjointEigenSolver & compute(const MatrixType &matrix, int options=ComputeEigenvectors)
Computes eigendecomposition of given matrix.
Definition SelfAdjointEigenSolver.h:385
@ Ax_lBx
Definition Constants.h:337
@ BAx_lx
Definition Constants.h:343
@ ComputeEigenvectors
Definition Constants.h:332
@ EigenvaluesOnly
Definition Constants.h:329
@ ABx_lx
Definition Constants.h:340