Base class for linear iterative solvers. More...
#include <IterativeSolverBase.h>
Inherits noncopyable.
Public Types | |
typedef MatrixType::Index | Index |
typedef internal::traits < Derived >::MatrixType | MatrixType |
typedef internal::traits < Derived >::Preconditioner | Preconditioner |
typedef MatrixType::RealScalar | RealScalar |
typedef MatrixType::Scalar | Scalar |
Public Member Functions | |
template<typename Rhs , typename DestScalar , int DestOptions, typename DestIndex > | |
void | _solve_sparse (const Rhs &b, SparseMatrix< DestScalar, DestOptions, DestIndex > &dest) const |
Derived & | analyzePattern (const MatrixType &A) |
Index | cols () const |
Derived & | compute (const MatrixType &A) |
Derived & | derived () |
const Derived & | derived () const |
RealScalar | error () const |
Derived & | factorize (const MatrixType &A) |
ComputationInfo | info () const |
int | iterations () const |
IterativeSolverBase () | |
IterativeSolverBase (const MatrixType &A) | |
int | maxIterations () const |
Preconditioner & | preconditioner () |
const Preconditioner & | preconditioner () const |
Index | rows () const |
Derived & | setMaxIterations (int maxIters) |
Derived & | setTolerance (RealScalar tolerance) |
template<typename Rhs > | |
const internal::solve_retval < Derived, Rhs > | solve (const MatrixBase< Rhs > &b) const |
template<typename Rhs > | |
const internal::sparse_solve_retval < IterativeSolverBase, Rhs > | solve (const SparseMatrixBase< Rhs > &b) const |
RealScalar | tolerance () const |
~IterativeSolverBase () |
Protected Member Functions | |
void | init () |
Base class for linear iterative solvers.
typedef MatrixType::Index Index |
typedef internal::traits<Derived>::MatrixType MatrixType |
typedef internal::traits<Derived>::Preconditioner Preconditioner |
typedef MatrixType::RealScalar RealScalar |
typedef MatrixType::Scalar Scalar |
|
inline |
Default constructor.
|
inline |
Initialize the solver with matrix A for further Ax=b
solving.
This constructor is a shortcut for the default constructor followed by a call to compute().
|
inline |
|
inline |
|
inline |
Initializes the iterative solver for the sparcity pattern of the matrix A for further solving Ax=b
problems.
Currently, this function mostly call analyzePattern on the preconditioner. In the future we might, for instance, implement column reodering for faster matrix vector products.
|
inline |
|
inline |
Initializes the iterative solver with the matrix A for further solving Ax=b
problems.
Currently, this function mostly initialized/compute the preconditioner. In the future we might, for instance, implement column reodering for faster matrix vector products.
Referenced by IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::IterativeSolverBase().
|
inline |
Referenced by IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::_solve_sparse(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::analyzePattern(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::compute(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::factorize(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::setMaxIterations(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::setTolerance(), and IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::solve().
|
inline |
|
inline |
|
inline |
Initializes the iterative solver with the numerical values of the matrix A for further solving Ax=b
problems.
Currently, this function mostly call factorize on the preconditioner.
|
inline |
|
inlineprotected |
|
inline |
|
inline |
Referenced by ConjugateGradient< _MatrixType, _UpLo, _Preconditioner >::_solveWithGuess(), and BiCGSTAB< _MatrixType, _Preconditioner >::_solveWithGuess().
|
inline |
|
inline |
|
inline |
Referenced by IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::_solve_sparse(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::solve(), ConjugateGradient< _MatrixType, _UpLo, _Preconditioner >::solveWithGuess(), and BiCGSTAB< _MatrixType, _Preconditioner >::solveWithGuess().
|
inline |
Sets the max number of iterations
|
inline |
Sets the tolerance threshold used by the stopping criteria
|
inline |
|
inline |
|
inline |
Referenced by IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::setTolerance().
|
mutableprotected |
Referenced by IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::analyzePattern(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::compute(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::factorize(), and IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::init().
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
Referenced by IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::analyzePattern(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::compute(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::factorize(), and IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::info().
|
mutableprotected |
Referenced by IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::analyzePattern(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::compute(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::error(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::info(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::init(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::iterations(), and IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::solve().
|
mutableprotected |
|
protected |
Referenced by IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::init(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::maxIterations(), and IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::setMaxIterations().
|
protected |
Referenced by ConjugateGradient< _MatrixType, _UpLo, _Preconditioner >::_solveWithGuess(), BiCGSTAB< _MatrixType, _Preconditioner >::_solveWithGuess(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::analyzePattern(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::compute(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::factorize(), and IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::preconditioner().
|
protected |
Referenced by ConjugateGradient< _MatrixType, _UpLo, _Preconditioner >::_solveWithGuess(), BiCGSTAB< _MatrixType, _Preconditioner >::_solveWithGuess(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::init(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::setTolerance(), and IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::tolerance().
|
protected |
Referenced by IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::cols(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::compute(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::factorize(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::maxIterations(), and IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::rows().