#include <LanczosSeveralLargestEig.h>
Public Member Functions | |
LanczosSeveralLargestEig (Tmatrix const &AA, Tvector const &startVec, int num_eigs, int maxit=100, int cap=100, Tvector *deflVec_=NULL, Treal sigma_=0) | |
void | setRelTol (Treal const newTol) |
void | setAbsTol (Treal const newTol) |
void | set_use_selective_orth () |
void | set_use_full_orth () |
void | unset_use_selective_orth () |
void | unset_use_full_orth () |
virtual void | run () |
virtual void | get_ith_eigenpair (int i, Treal &eigVal, Tvector &eigVec, Treal &acc) |
int | get_num_iter () const |
virtual | ~LanczosSeveralLargestEig () |
void | copyTridiag (MatrixTridiagSymmetric< Treal > &Tricopy) |
Protected Member Functions | |
void | increaseCapacity (int const newCapacity) |
void | getEigVector (Tvector &eigVec, Treal const *const eVecTri) const |
virtual void | step () |
virtual void | computeEigenPairTri () |
virtual void | update () |
void | selective_orth () |
virtual bool | converged () const |
virtual bool | converged_ith (int i) const |
Protected Attributes | |
Tmatrix const & | A |
Tvector * | v |
Tvector | r |
Vectors spanning Krylov subspace. | |
MatrixTridiagSymmetric< Treal > | Tri |
Residual vector. | |
Treal * | eigVectorTri |
int | capacity |
int | j |
int | maxIter |
Current step. | |
Treal | absTol |
Treal | relTol |
Treal * | eValTmp |
Treal * | accTmp |
int | number_of_eigenv |
int | size_accTmp |
Private Attributes | |
Treal | alpha |
Treal | beta |
bool | use_selective_orth |
bool | use_full_orth |
int | counter_all |
int | counter_orth |
Tvector * | deflVec |
Treal | sigma |
mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::LanczosSeveralLargestEig | ( | Tmatrix const & | AA, | |
Tvector const & | startVec, | |||
int | num_eigs, | |||
int | maxit = 100 , |
|||
int | cap = 100 , |
|||
Tvector * | deflVec_ = NULL , |
|||
Treal | sigma_ = 0 | |||
) | [inline] |
References mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::absTol, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::number_of_eigenv, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::r, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::relTol, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::sigma, template_blas_sqrt(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::unset_use_full_orth(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::unset_use_selective_orth(), and mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::v.
virtual mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::~LanczosSeveralLargestEig | ( | ) | [inline, virtual] |
References mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::accTmp, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::counter_all, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::counter_orth, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::eigVectorTri, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::eValTmp, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::use_selective_orth, and mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::v.
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::computeEigenPairTri | ( | ) | [inline, protected, virtual] |
References mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::accTmp, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::eigVectorTri, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::eValTmp, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::j, max, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::number_of_eigenv, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::size_accTmp, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::Tri, and mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::use_selective_orth.
Referenced by mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::update().
bool mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::converged | ( | ) | const [inline, protected, virtual] |
References mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::converged_ith(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::j, and mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::number_of_eigenv.
Referenced by mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::run().
bool mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::converged_ith | ( | int | i | ) | const [inline, protected, virtual] |
References mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::accTmp, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::eValTmp, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::relTol, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::size_accTmp, and template_blas_fabs().
Referenced by mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::converged().
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::copyTridiag | ( | MatrixTridiagSymmetric< Treal > & | Tricopy | ) | [inline] |
virtual void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::get_ith_eigenpair | ( | int | i, | |
Treal & | eigVal, | |||
Tvector & | eigVec, | |||
Treal & | acc | |||
) | [inline, virtual] |
References mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::accTmp, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::eigVectorTri, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::eValTmp, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::getEigVector(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::j, and mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::size_accTmp.
Referenced by eigvec::lanczos_method().
int mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::get_num_iter | ( | ) | const [inline] |
References mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::j.
Referenced by eigvec::lanczos_method().
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::getEigVector | ( | Tvector & | eigVec, | |
Treal const *const | eVecTri | |||
) | const [inline, protected] |
References mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::j, and mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::v.
Referenced by mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::get_ith_eigenpair(), and mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::selective_orth().
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::increaseCapacity | ( | int const | newCapacity | ) | [inline, protected] |
References mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::capacity, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::j, and mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::v.
Referenced by mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::step().
virtual void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::run | ( | ) | [inline, virtual] |
References mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::converged(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::j, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::maxIter, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::selective_orth(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::step(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::update(), and mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::use_selective_orth.
Referenced by eigvec::lanczos_method().
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::selective_orth | ( | ) | [inline, protected] |
References mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::accTmp, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::beta, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::counter_all, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::counter_orth, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::eigVectorTri, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::eValTmp, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::getEigVector(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::j, template_blas_fabs(), template_blas_sqrt(), mat::transpose(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::Tri, and mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::v.
Referenced by mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::run().
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::set_use_full_orth | ( | ) | [inline] |
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::set_use_selective_orth | ( | ) | [inline] |
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::setAbsTol | ( | Treal const | newTol | ) | [inline] |
References mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::absTol.
Referenced by eigvec::lanczos_method().
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::setRelTol | ( | Treal const | newTol | ) | [inline] |
References mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::relTol.
Referenced by eigvec::lanczos_method().
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::step | ( | ) | [inline, protected, virtual] |
References mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::A, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::alpha, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::beta, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::capacity, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::deflVec, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::increaseCapacity(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::j, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::r, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::sigma, mat::transpose(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::Tri, mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::use_full_orth, and mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::v.
Referenced by mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::run().
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::unset_use_full_orth | ( | ) | [inline] |
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::unset_use_selective_orth | ( | ) | [inline] |
virtual void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::update | ( | ) | [inline, protected, virtual] |
Tmatrix const& mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::A [protected] |
Treal mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::absTol [protected] |
Treal* mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::accTmp [protected] |
Referenced by mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::computeEigenPairTri(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::converged_ith(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::get_ith_eigenpair(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::selective_orth(), and mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::~LanczosSeveralLargestEig().
Treal mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::alpha [private] |
Treal mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::beta [private] |
int mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::capacity [protected] |
int mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::counter_all [private] |
int mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::counter_orth [private] |
Tvector* mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::deflVec [private] |
Treal* mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::eigVectorTri [protected] |
Referenced by mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::computeEigenPairTri(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::get_ith_eigenpair(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::selective_orth(), and mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::~LanczosSeveralLargestEig().
Treal* mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::eValTmp [protected] |
Referenced by mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::computeEigenPairTri(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::converged_ith(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::get_ith_eigenpair(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::selective_orth(), and mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::~LanczosSeveralLargestEig().
int mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::j [protected] |
Referenced by mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::computeEigenPairTri(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::converged(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::get_ith_eigenpair(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::get_num_iter(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::getEigVector(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::increaseCapacity(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::run(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::selective_orth(), and mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::step().
int mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::maxIter [protected] |
Current step.
Referenced by mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::run().
int mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::number_of_eigenv [protected] |
Tvector mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::r [protected] |
Vectors spanning Krylov subspace.
In step j: Vectors 0 : j-2 is on file Vectors j-1 : j is in memory
Referenced by mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::LanczosSeveralLargestEig(), and mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::step().
Treal mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::relTol [protected] |
Treal mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::sigma [private] |
int mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::size_accTmp [protected] |
MatrixTridiagSymmetric<Treal> mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::Tri [protected] |
Residual vector.
Referenced by mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::computeEigenPairTri(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::copyTridiag(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::selective_orth(), and mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::step().
bool mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::use_full_orth [private] |
bool mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::use_selective_orth [private] |
Referenced by mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::computeEigenPairTri(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::run(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::set_use_selective_orth(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::unset_use_selective_orth(), and mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::~LanczosSeveralLargestEig().
Tvector* mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::v [protected] |
Referenced by mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::getEigVector(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::increaseCapacity(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::LanczosSeveralLargestEig(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::selective_orth(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::step(), and mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::~LanczosSeveralLargestEig().