Implements standard convergence criteria and reporting for iterative solvers.
ValueType | scalar type used in the solver (e.g. float or cusp::complex<double> ). |
monitor
terminates iteration when the residual norm satisfies the condition ||b - A x|| <= absolute_tolerance + relative_tolerance * ||b|| or when the iteration limit is reached. Classes to monitor iterative solver progress, check for convergence, etc. Follows the implementation of Iteration in the ITL: monitor
and use it with an iterative solver.#include <monitor.h>
Public Types | |
typedef cusp::norm_type < ValueType >::type | Real |
Public Methods | |
template<typename VectorType > | |
monitor (const VectorType &b, const size_t iteration_limit=500, const Real relative_tolerance=1e-5, const Real absolute_tolerance=0, const bool verbose=false) | |
Constructs a monitor for a given right-hand-side b . More... | |
void | operator++ (void) |
Increments the iteration count. | |
bool | converged (void) const |
Indicates whether the last tested residual satisfies the convergence tolerance. More... | |
Real | residual_norm (void) const |
Euclidean norm of last residual. More... | |
size_t | iteration_count (void) const |
Returns the number of iterations that the monitor has executed. More... | |
size_t | iteration_limit (void) const |
Returns the maximum number of iterations. More... | |
Real | relative_tolerance (void) const |
Returns the relative tolerance. More... | |
Real | absolute_tolerance (void) const |
Returns the absolute tolerance. More... | |
Real | tolerance (void) const |
Return the tolerance equal to absolute_tolerance() + relative_tolerance() * ||b||. More... | |
template<typename Vector > | |
bool | finished (const Vector &r) |
Applies convergence criteria to determine whether iteration is finished. More... | |
void | set_verbose (bool verbose_=true) |
Sets the verbosity level of the monitor. More... | |
bool | is_verbose (void) |
Gets the verbosity level of the monitor. More... | |
template<typename Vector > | |
void | reset (const Vector &b) |
Resets the monitor using same convergence criteria. More... | |
void | print (void) |
Prints the number of iterations and convergence history information. | |
Real | immediate_rate (void) |
Returns the immedidate convergence rate. More... | |
Real | geometric_rate (void) |
Returns the geometric convergence rate. More... | |
Real | average_rate (void) |
Returns the average convergence rate. More... | |
Public Members | |
cusp::array1d< Real, cusp::host_memory > | residuals |