20 #ifndef __mast__lapack_zggev_interface_base_h__ 21 #define __mast__lapack_zggev_interface_base_h__ 46 bool computeEigenvectors =
true) = 0;
91 for (
unsigned int i=0; i<this->
VR.cols(); i++) {
93 l2 = this->
VR.col(i).norm();
94 libmesh_assert(l2 > 0.);
97 this->
VR.col(i) /= l2;
106 for (
unsigned int i=0; i<
_B.cols(); i++) {
108 if (std::abs(val) > 0.)
109 this->
VL.col(i) *= (1./val);
116 r = this->
VL.conjugate().transpose() *
_A * this->
VR;
117 out <<
"conj(VL)' * A * VR" << std::endl
120 r = this->
VL.conjugate().transpose() *
_B * this->
VR;
121 out <<
"conj(VL)' * B * VR" << std::endl
146 #endif // __mast__lapack_zggev_interface_base_h__
const ComplexMatrixX & left_eigenvectors() const
Matrix< Complex, Dynamic, 1 > ComplexVectorX
virtual void compute(const ComplexMatrixX &A, const ComplexMatrixX &B, bool computeEigenvectors=true)=0
computes the eigensolution for .
void print_inner_product(std::ostream &out) const
const ComplexMatrixX & B() const
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...
const ComplexMatrixX & right_eigenvectors() const
Matrix< Complex, Dynamic, Dynamic > ComplexMatrixX
const ComplexVectorX & betas() const
const ComplexMatrixX & A() const
const ComplexVectorX & alphas() const