|
ergo
|
Class template for building Krylov subspaces with Lanczos. More...
#include <Lanczos.h>
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 |
Class template for building Krylov subspaces with Lanczos.
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::Lanczos | ( | Tmatrix const & | AA, |
| Tvector const & | startVec, | ||
| int | maxIt = 100, |
||
| int | cap = 100 |
||
| ) | [inline] |
| virtual mat::arn::Lanczos::~Lanczos | ( | ) | [inline, virtual] |
| virtual bool mat::arn::Lanczos::converged | ( | ) | const [protected, pure virtual] |
Implemented in mat::arn::LanczosLargestMagnitudeEig.
Referenced by mat::arn::Lanczos< Treal, Tmatrix, Tvector >::run().
| void mat::arn::Lanczos::copyTridiag | ( | MatrixTridiagSymmetric< Treal > & | Tricopy | ) | [inline] |
| void mat::arn::Lanczos::getEigVector | ( | Tvector & | eigVec, |
| Treal const *const | eVecTri | ||
| ) | const [protected] |
| void mat::arn::Lanczos::increaseCapacity | ( | int const | newCapacity | ) | [protected] |
| void mat::arn::Lanczos::restart | ( | Tvector const & | startVec | ) | [inline] |
| virtual void mat::arn::Lanczos::run | ( | ) | [inline, virtual] |
Reimplemented in mat::arn::LanczosLargestMagnitudeEig.
| void mat::arn::Lanczos::step | ( | ) | [protected] |
References A, and mat::transpose().
Referenced by mat::arn::Lanczos< Treal, Tmatrix, Tvector >::run().
| virtual void mat::arn::Lanczos::update | ( | ) | [protected, pure virtual] |
Implemented in mat::arn::LanczosLargestMagnitudeEig.
Referenced by mat::arn::Lanczos< Treal, Tmatrix, Tvector >::run().
Tmatrix const& mat::arn::Lanczos::A [protected] |
Treal mat::arn::Lanczos::alpha [private] |
Referenced by mat::arn::Lanczos< Treal, Tmatrix, Tvector >::restart().
Treal mat::arn::Lanczos::beta [private] |
Referenced by mat::arn::Lanczos< Treal, Tmatrix, Tvector >::restart().
int mat::arn::Lanczos::capacity [protected] |
Referenced by mat::arn::Lanczos< Treal, Tmatrix, Tvector >::restart().
int mat::arn::Lanczos::j [protected] |
int mat::arn::Lanczos::maxIter [protected] |
Current step.
Referenced by mat::arn::Lanczos< Treal, Tmatrix, Tvector >::run().
Tvector mat::arn::Lanczos::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::Lanczos< Treal, Tmatrix, Tvector >::Lanczos(), and mat::arn::Lanczos< Treal, Tmatrix, Tvector >::restart().
MatrixTridiagSymmetric<Treal> mat::arn::Lanczos::Tri [protected] |
Residual vector.
Referenced by mat::arn::Lanczos< Treal, Tmatrix, Tvector >::restart(), and mat::arn::Lanczos< Treal, Tmatrix, Tvector >::copyTridiag().
Tvector* mat::arn::Lanczos::v [protected] |