MyraMath
Classes
minres.h File Reference

Linear system solution via minimum residual method (symmetric action A, can be indefinite) More...

#include <myramath/MYRAMATH_EXPORT.h>
#include <myramath/utility/Number.h>
#include <vector>
Include dependency graph for minres.h:

Go to the source code of this file.

Classes

class  myra::Action< Number >
 Applies the "Action" of a linear operator, b := A*x. More...
 
class  myra::CVectorRange< Number >
 Represents a const VectorRange. More...
 
class  myra::VectorRange< Number >
 Represents a mutable VectorRange. More...
 
class  myra::CMatrixRange< Number >
 Represents a const MatrixRange. More...
 
class  myra::MatrixRange< Number >
 Represents a mutable MatrixRange. More...
 
class  myra::minres_output< Precision >
 Return type of minres() More...
 

Functions

minres_output< NumberS > myra::minres (const Action< NumberS > &M, const Action< NumberS > &A, const CVectorRange< NumberS > &b, const VectorRange< NumberS > &x, NumberS tolerance=1.0e-4, int iterations=100)
 Solves A*x = b for x, with symmetric A. Returns residual history.
 
minres_output< NumberD > myra::minres (const Action< NumberD > &M, const Action< NumberD > &A, const CVectorRange< NumberD > &b, const VectorRange< NumberD > &x, NumberD tolerance, int iterations)
 Solves A*x = b for x, with symmetric A. Returns residual history.
 
minres_output< NumberS > myra::minres (const Action< NumberC > &M, const Action< NumberC > &A, const CVectorRange< NumberC > &b, const VectorRange< NumberC > &x, NumberS tolerance, int iterations)
 Solves A*x = b for x, with symmetric A. Returns residual history.
 
minres_output< NumberD > myra::minres (const Action< NumberZ > &M, const Action< NumberZ > &A, const CVectorRange< NumberZ > &b, const VectorRange< NumberZ > &x, NumberD tolerance, int iterations)
 Solves A*x = b for x, with symmetric A. Returns residual history.
 
minres_output< NumberS > myra::minres (const Action< NumberS > &M, const Action< NumberS > &A, const CMatrixRange< NumberS > &B, const MatrixRange< NumberS > &X, NumberS tolerance=1.0e-4, int iterations=100)
 Solves A*X = B for X, with symmetric A. Returns residual history.
 
minres_output< NumberD > myra::minres (const Action< NumberD > &M, const Action< NumberD > &A, const CMatrixRange< NumberD > &B, const MatrixRange< NumberD > &X, NumberD tolerance, int iterations)
 Solves A*X = B for X, with symmetric A. Returns residual history.
 
minres_output< NumberS > myra::minres (const Action< NumberC > &M, const Action< NumberC > &A, const CMatrixRange< NumberC > &B, const MatrixRange< NumberC > &X, NumberS tolerance, int iterations)
 Solves A*X = B for X, with symmetric A. Returns residual history.
 
minres_output< NumberD > myra::minres (const Action< NumberZ > &M, const Action< NumberZ > &A, const CMatrixRange< NumberZ > &B, const MatrixRange< NumberZ > &X, NumberD tolerance, int iterations)
 Solves A*X = B for X, with symmetric A. Returns residual history.
 

Detailed Description

Linear system solution via minimum residual method (symmetric action A, can be indefinite)

Arguments:

M (input): Action of (left) preconditioner. A (input): Action of forward operator. b (input): Right hand side. x (input/output): Initial guess / final answer. tolerance(input): termination criteria, desired tolerance. iterations(input): termination criteria, maximum iterations allowed