RVLUmin::ChebStep< Scalar > Class Template Reference

Single step of Chebyshev iteration for the normal equations. More...

#include <chebalg.hh>

Inheritance diagram for RVLUmin::ChebStep< Scalar >:

RVLAlg::Algorithm List of all members.

Public Member Functions

 ChebStep (LinearOp< Scalar > const &_A, Vector< Scalar > &_x, Vector< Scalar > const &_b, atype &_rnorm, atype &_nrnorm, std::vector< atype > &_coeff, int &_kc, int &_nrt, atype _gamma=0.04, atype _epsilon=0.001, atype _alpha=1.1, atype _lbd_est=0.0, ostream &_str=cout)
void run ()
 Run a single step of the Chebyshev iteration for the normal equations.
atype getSpectrumBound () const
 ~ChebStep ()

Detailed Description

template<typename Scalar>
class RVLUmin::ChebStep< Scalar >

Single step of Chebyshev iteration for the normal equations.

On construction, internal workspace allocated and initialized. Each step updates internal state of ChebStep object. Since solution vector, residual norm, and normal residual norm are stored as mutable references to external objects, these external objects are updated as well.

IMPORTANT NOTE: this version of the algorithm assumes that the solution vector reference (internal data member x) refers to a zero vector on initialization. To accommodate nontrivial initial guess, modify the right-hand-side vector (argument _b) externally.

Solution vector (x), iteration count, residual norm, and normal residual (gradient) norm are all references to external objects, which may be monitored by appropriate terminators to build a LoopAlg out of this Algorithm.

See ChebAlg for description of a fully functional algorithm class, combining this step with a Terminator to make a LoopAlg.

Definition at line 80 of file chebalg.hh.


Constructor & Destructor Documentation

template<typename Scalar>
RVLUmin::ChebStep< Scalar >::ChebStep ( LinearOp< Scalar > const &  _A,
Vector< Scalar > &  _x,
Vector< Scalar > const &  _b,
atype &  _rnorm,
atype &  _nrnorm,
std::vector< atype > &  _coeff,
int &  _kc,
int &  _nrt,
atype  _gamma = 0.04,
atype  _epsilon = 0.001,
atype  _alpha = 1.1,
atype  _lbd_est = 0.0,
ostream &  _str = cout 
)

Definition at line 86 of file chebalg.hh.

template<typename Scalar>
RVLUmin::ChebStep< Scalar >::~ChebStep (  ) 

Definition at line 180 of file chebalg.hh.


Member Function Documentation

template<typename Scalar>
void RVLUmin::ChebStep< Scalar >::run (  )  [virtual]

Run a single step of the Chebyshev iteration for the normal equations.

Implements RVLAlg::Algorithm.

Definition at line 132 of file chebalg.hh.

template<typename Scalar>
atype RVLUmin::ChebStep< Scalar >::getSpectrumBound (  )  const

Definition at line 178 of file chebalg.hh.


The documentation for this class was generated from the following file:
Generated on 5 Jan 2017 for RvlUmin by  doxygen 1.4.7