mat::arn::Lanczos< Treal, Tmatrix, Tvector > Class Template Reference

Class template for building Krylov subspaces with Lanczos. More...

#include <Lanczos.h>

Inheritance diagram for mat::arn::Lanczos< Treal, Tmatrix, Tvector >:

mat::arn::LanczosLargestMagnitudeEig< Treal, Tmatrix, Tvector > mat::arn::LanczosLargestMagnitudeEigIfSmall< Treal, Tmatrix, Tvector > List of all members.

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

Detailed Description

template<typename Treal, typename Tmatrix, typename Tvector>
class mat::arn::Lanczos< Treal, Tmatrix, Tvector >

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


Constructor & Destructor Documentation

template<typename Treal, typename Tmatrix, typename Tvector>
mat::arn::Lanczos< Treal, Tmatrix, Tvector >::Lanczos ( Tmatrix const &  AA,
Tvector const &  startVec,
int  maxIt = 100,
int  cap = 100 
) [inline]

template<typename Treal, typename Tmatrix, typename Tvector>
virtual mat::arn::Lanczos< Treal, Tmatrix, Tvector >::~Lanczos (  )  [inline, virtual]


Member Function Documentation

template<typename Treal, typename Tmatrix, typename Tvector>
virtual bool mat::arn::Lanczos< Treal, Tmatrix, Tvector >::converged (  )  const [protected, pure virtual]

Implemented in mat::arn::LanczosLargestMagnitudeEig< Treal, Tmatrix, Tvector >, and mat::arn::LanczosLargestMagnitudeEigIfSmall< Treal, Tmatrix, Tvector >.

template<typename Treal, typename Tmatrix, typename Tvector>
void mat::arn::Lanczos< Treal, Tmatrix, Tvector >::copyTridiag ( MatrixTridiagSymmetric< Treal > &  Tricopy  )  [inline]

template<typename Treal, typename Tmatrix, typename Tvector>
void mat::arn::Lanczos< Treal, Tmatrix, Tvector >::getEigVector ( Tvector &  eigVec,
Treal const *const   eVecTri 
) const [protected]

template<typename Treal, typename Tmatrix, typename Tvector>
void mat::arn::Lanczos< Treal, Tmatrix, Tvector >::increaseCapacity ( int const   newCapacity  )  [protected]

template<typename Treal, typename Tmatrix, typename Tvector>
void mat::arn::Lanczos< Treal, Tmatrix, Tvector >::restart ( Tvector const &  startVec  )  [inline]

template<typename Treal, typename Tmatrix, typename Tvector>
virtual void mat::arn::Lanczos< Treal, Tmatrix, Tvector >::run (  )  [inline, virtual]

Reimplemented in mat::arn::LanczosLargestMagnitudeEig< Treal, Tmatrix, Tvector >, and mat::arn::LanczosLargestMagnitudeEigIfSmall< Treal, Tmatrix, Tvector >.

template<typename Treal, typename Tmatrix, typename Tvector>
void mat::arn::Lanczos< Treal, Tmatrix, Tvector >::step (  )  [protected]

template<typename Treal, typename Tmatrix, typename Tvector>
virtual void mat::arn::Lanczos< Treal, Tmatrix, Tvector >::update (  )  [protected, pure virtual]

Implemented in mat::arn::LanczosLargestMagnitudeEig< Treal, Tmatrix, Tvector >, and mat::arn::LanczosLargestMagnitudeEigIfSmall< Treal, Tmatrix, Tvector >.


Member Data Documentation

template<typename Treal, typename Tmatrix, typename Tvector>
Tmatrix const& mat::arn::Lanczos< Treal, Tmatrix, Tvector >::A [protected]

template<typename Treal, typename Tmatrix, typename Tvector>
Treal mat::arn::Lanczos< Treal, Tmatrix, Tvector >::alpha [private]

template<typename Treal, typename Tmatrix, typename Tvector>
Treal mat::arn::Lanczos< Treal, Tmatrix, Tvector >::beta [private]

template<typename Treal, typename Tmatrix, typename Tvector>
int mat::arn::Lanczos< Treal, Tmatrix, Tvector >::capacity [protected]

template<typename Treal, typename Tmatrix, typename Tvector>
int mat::arn::Lanczos< Treal, Tmatrix, Tvector >::j [protected]

template<typename Treal, typename Tmatrix, typename Tvector>
int mat::arn::Lanczos< Treal, Tmatrix, Tvector >::maxIter [protected]

Current step.

template<typename Treal, typename Tmatrix, typename Tvector>
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

template<typename Treal, typename Tmatrix, typename Tvector>
MatrixTridiagSymmetric<Treal> mat::arn::Lanczos< Treal, Tmatrix, Tvector >::Tri [protected]

Residual vector.

template<typename Treal, typename Tmatrix, typename Tvector>
Tvector* mat::arn::Lanczos< Treal, Tmatrix, Tvector >::v [protected]


The documentation for this class was generated from the following file:
Generated on Wed Nov 21 09:32:03 2012 for ergo by  doxygen 1.4.7