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 |
Reimplemented in BiCGSTAB< _MatrixType, _Preconditioner >, and ConjugateGradient< _MatrixType, _UpLo, _Preconditioner >.
| typedef internal::traits<Derived>::MatrixType MatrixType |
Reimplemented in BiCGSTAB< _MatrixType, _Preconditioner >, and ConjugateGradient< _MatrixType, _UpLo, _Preconditioner >.
| typedef internal::traits<Derived>::Preconditioner Preconditioner |
Reimplemented in BiCGSTAB< _MatrixType, _Preconditioner >, and ConjugateGradient< _MatrixType, _UpLo, _Preconditioner >.
| typedef MatrixType::RealScalar RealScalar |
Reimplemented in BiCGSTAB< _MatrixType, _Preconditioner >, and ConjugateGradient< _MatrixType, _UpLo, _Preconditioner >.
| typedef MatrixType::Scalar Scalar |
Reimplemented in BiCGSTAB< _MatrixType, _Preconditioner >, and ConjugateGradient< _MatrixType, _UpLo, _Preconditioner >.
|
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 |
using the current decomposition of A.
|
inline |
using the current decomposition of A.
|
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().
1.8.1.1