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
|
inline |
References A, alpha, beta, capacity, mat::getRelPrecision(), j, mat::Matrix< Treal >::ONE, maxIter, r, template_blas_sqrt(), and v.
Referenced by mat::arn::LanczosLargestMagnitudeEig< Treal, Tmatrix, Tvector >::LanczosLargestMagnitudeEig().
|
inlinevirtual |
References v.
|
protectedpure virtual |
Implemented in mat::arn::LanczosLargestMagnitudeEig< Treal, Tmatrix, Tvector >, and mat::arn::LanczosLargestMagnitudeEigIfSmall< Treal, Tmatrix, Tvector >.
Referenced by run().
|
inline |
References Tri.
|
protected |
|
protected |
|
inline |
References alpha, beta, capacity, j, mat::Matrix< Treal >::ONE, r, Tri, and v.
Referenced by mat::arn::LanczosLargestMagnitudeEig< Treal, Tmatrix, Tvector >::rerun().
|
inlinevirtual |
Reimplemented in mat::arn::LanczosLargestMagnitudeEig< Treal, Tmatrix, Tvector >, and mat::arn::LanczosLargestMagnitudeEigIfSmall< Treal, Tmatrix, Tvector >.
References converged(), j, maxIter, step(), and update().
Referenced by mat::arn::LanczosLargestMagnitudeEig< Treal, Tmatrix, Tvector >::rerun(), mat::arn::LanczosLargestMagnitudeEig< Treal, Tmatrix, Tvector >::run(), and mat::arn::LanczosLargestMagnitudeEigIfSmall< Treal, Tmatrix, Tvector >::run().
|
protected |
References A, alpha, beta, capacity, increaseCapacity(), j, mat::Matrix< Treal >::ONE, r, mat::transpose(), Tri, and v.
Referenced by run().
|
protectedpure virtual |
Implemented in mat::arn::LanczosLargestMagnitudeEig< Treal, Tmatrix, Tvector >, and mat::arn::LanczosLargestMagnitudeEigIfSmall< Treal, Tmatrix, Tvector >.
Referenced by run().
|
protected |
Referenced by Lanczos(), mat::arn::LanczosLargestMagnitudeEig< Treal, Tmatrix, Tvector >::run(), and step().
|
private |
|
private |
|
protected |
Referenced by increaseCapacity(), Lanczos(), restart(), and step().
|
protected |
|
protected |
|
protected |
|
protected |
Residual vector.
Referenced by mat::arn::LanczosLargestMagnitudeEig< Treal, Tmatrix, Tvector >::computeEigenPairTri(), copyTridiag(), restart(), and step().
|
protected |
Referenced by getEigVector(), increaseCapacity(), Lanczos(), restart(), step(), and ~Lanczos().