#include <Lanczos.h>
Inheritance diagram for mat::arn::Lanczos< Treal, Tmatrix, Tvector >:
Public Member Functions | |
Lanczos (Tmatrix const &AA, Tvector const &startVec, int maxIt=100, int cap=100) | |
void | restart (Tvector const &startVec) |
virtual void | run () |
void | copyTridiag (MatrixTridiagSymmetric< Treal > &Tricopy) |
virtual | ~Lanczos () |
Protected Member Functions | |
void | increaseCapacity (int const newCapacity) |
void | step () |
void | getEigVector (Tvector &eigVec, Treal const *const eVecTri) const |
virtual void | update ()=0 |
virtual bool | converged () const =0 |
Protected Attributes | |
Tmatrix const & | A |
Tvector * | v |
Tvector | r |
Vectors spanning Krylov subspace. | |
MatrixTridiagSymmetric< Treal > | Tri |
Residual vector. | |
int | capacity |
int | j |
int | maxIter |
Current step. | |
Private Attributes | |
Treal | alpha |
Treal | beta |
Build up Krylov subspace for symmetric matrix with a Lanczos process.
Treal: Type for real numbers
Tmatrix: The matrix class
Tvector: Vector class
mat::arn::Lanczos< Treal, Tmatrix, Tvector >::Lanczos | ( | Tmatrix const & | AA, | |
Tvector const & | startVec, | |||
int | maxIt = 100 , |
|||
int | cap = 100 | |||
) | [inline] |
virtual mat::arn::Lanczos< Treal, Tmatrix, Tvector >::~Lanczos | ( | ) | [inline, virtual] |
virtual bool mat::arn::Lanczos< Treal, Tmatrix, Tvector >::converged | ( | ) | const [protected, pure virtual] |
void mat::arn::Lanczos< Treal, Tmatrix, Tvector >::copyTridiag | ( | MatrixTridiagSymmetric< Treal > & | Tricopy | ) | [inline] |
void mat::arn::Lanczos< Treal, Tmatrix, Tvector >::getEigVector | ( | Tvector & | eigVec, | |
Treal const *const | eVecTri | |||
) | const [protected] |
void mat::arn::Lanczos< Treal, Tmatrix, Tvector >::increaseCapacity | ( | int const | newCapacity | ) | [protected] |
void mat::arn::Lanczos< Treal, Tmatrix, Tvector >::restart | ( | Tvector const & | startVec | ) | [inline] |
virtual void mat::arn::Lanczos< Treal, Tmatrix, Tvector >::run | ( | ) | [inline, virtual] |
void mat::arn::Lanczos< Treal, Tmatrix, Tvector >::step | ( | ) | [protected] |
virtual void mat::arn::Lanczos< Treal, Tmatrix, Tvector >::update | ( | ) | [protected, pure virtual] |
Tmatrix const& mat::arn::Lanczos< Treal, Tmatrix, Tvector >::A [protected] |
Treal mat::arn::Lanczos< Treal, Tmatrix, Tvector >::alpha [private] |
Treal mat::arn::Lanczos< Treal, Tmatrix, Tvector >::beta [private] |
int mat::arn::Lanczos< Treal, Tmatrix, Tvector >::capacity [protected] |
int mat::arn::Lanczos< Treal, Tmatrix, Tvector >::j [protected] |
int mat::arn::Lanczos< Treal, Tmatrix, Tvector >::maxIter [protected] |
Current step.
Tvector mat::arn::Lanczos< 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
MatrixTridiagSymmetric<Treal> mat::arn::Lanczos< Treal, Tmatrix, Tvector >::Tri [protected] |
Residual vector.
Tvector* mat::arn::Lanczos< Treal, Tmatrix, Tvector >::v [protected] |