20 #ifndef __mast__lapack_dggev_interface_h__ 21 #define __mast__lapack_dggev_interface_h__ 156 extern int dggev_(
char* jobvl,
194 bool computeEigenvectors =
true);
196 ComputationInfo
info()
const;
244 for (
unsigned int i=0; i<
_B.cols(); i++) {
246 if (std::abs(val) > 0.)
247 this->VR.col(i) *= (1./val);
254 r = this->
VL.conjugate().transpose() *
_A * this->
VR;
255 out <<
"conj(VL)' * A * VR" << std::endl
258 r = this->
VL.conjugate().transpose() *
_B * this->
VR;
259 out <<
"conj(VL)' * B * VR" << std::endl
283 #endif // __mast__lapack_dggev_interface_h__
void scale_eigenvectors_to_identity_innerproduct()
Scales the right eigenvector so that the inner product with respect to the B matrix is equal to an Id...
ComputationInfo info() const
Matrix< Complex, Dynamic, 1 > ComplexVectorX
const RealVectorX & betas() const
const ComplexMatrixX & right_eigenvectors() const
void print_inner_product(std::ostream &out) const
const RealMatrixX & B() const
const ComplexVectorX & alphas() const
const ComplexMatrixX & left_eigenvectors() const
Matrix< Real, Dynamic, Dynamic > RealMatrixX
Matrix< Complex, Dynamic, Dynamic > ComplexMatrixX
Matrix< Real, Dynamic, 1 > RealVectorX
const RealMatrixX & A() const
void compute(const RealMatrixX &A, const RealMatrixX &B, bool computeEigenvectors=true)
computes the eigensolution for .
int dggev_(char *jobvl, char *jobvr, int *n, double *a, int *lda, double *b, int *ldb, double *alpha_r, double *alpha_i, double *beta, double *vl, int *ldvl, double *vr, int *ldvr, double *work, int *lwork, int *info)