IterativeSolverBase< Derived > Class Template Reference

Base class for linear iterative solvers. More...

#include <IterativeSolverBase.h>

Public Member Functions

Derived & analyzePattern (const MatrixType &A)
 
Derived & compute (const MatrixType &A)
 
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
 
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
 

Detailed Description

template<typename Derived>
class Eigen::IterativeSolverBase< Derived >

Base class for linear iterative solvers.

See also
class SimplicialCholesky, DiagonalPreconditioner, IdentityPreconditioner

Constructor & Destructor Documentation

◆ IterativeSolverBase() [1/2]

template<typename Derived>
IterativeSolverBase ( )
inline

Default constructor.

◆ IterativeSolverBase() [2/2]

template<typename Derived>
IterativeSolverBase ( const MatrixType & A)
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().

Warning
this class stores a reference to the matrix A as well as some precomputed values that depend on it. Therefore, if A is changed this class becomes invalid. Call compute() to update it with the new matrix A, or modify a copy of A.

Member Function Documentation

◆ analyzePattern()

template<typename Derived>
Derived & analyzePattern ( const MatrixType & A)
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.

Referenced by IterativeSolverBase< BiCGSTAB >::analyzePattern().

◆ compute()

template<typename Derived>
Derived & compute ( const MatrixType & A)
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.

Warning
this class stores a reference to the matrix A as well as some precomputed values that depend on it. Therefore, if A is changed this class becomes invalid. Call compute() to update it with the new matrix A, or modify a copy of A.

Referenced by IterativeSolverBase< BiCGSTAB >::compute(), and IterativeSolverBase< BiCGSTAB >::IterativeSolverBase().

◆ error()

template<typename Derived>
RealScalar error ( ) const
inline
Returns
the tolerance error reached during the last solve

◆ factorize()

template<typename Derived>
Derived & factorize ( const MatrixType & A)
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.

Warning
this class stores a reference to the matrix A as well as some precomputed values that depend on it. Therefore, if A is changed this class becomes invalid. Call compute() to update it with the new matrix A, or modify a copy of A.

◆ info()

template<typename Derived>
ComputationInfo info ( ) const
inline
Returns
Success if the iterations converged, and NoConvergence otherwise.

◆ iterations()

template<typename Derived>
int iterations ( ) const
inline
Returns
the number of iterations performed during the last solve

◆ maxIterations()

template<typename Derived>
int maxIterations ( ) const
inline
Returns
the max number of iterations

◆ preconditioner() [1/2]

template<typename Derived>
Preconditioner & preconditioner ( )
inline
Returns
a read-write reference to the preconditioner for custom configuration.

◆ preconditioner() [2/2]

template<typename Derived>
const Preconditioner & preconditioner ( ) const
inline
Returns
a read-only reference to the preconditioner.

◆ setMaxIterations()

template<typename Derived>
Derived & setMaxIterations ( int maxIters)
inline

Sets the max number of iterations

◆ setTolerance()

template<typename Derived>
Derived & setTolerance ( RealScalar tolerance)
inline

Sets the tolerance threshold used by the stopping criteria

◆ solve() [1/2]

template<typename Derived>
template<typename Rhs>
const internal::solve_retval< Derived, Rhs > solve ( const MatrixBase< Rhs > & b) const
inline
Returns
the solution x of $ A x = b $ using the current decomposition of A.
See also
compute()

◆ solve() [2/2]

template<typename Derived>
template<typename Rhs>
const internal::sparse_solve_retval< IterativeSolverBase, Rhs > solve ( const SparseMatrixBase< Rhs > & b) const
inline
Returns
the solution x of $ A x = b $ using the current decomposition of A.
See also
compute()

◆ tolerance()

template<typename Derived>
RealScalar tolerance ( ) const
inline
Returns
the tolerance threshold used by the stopping criteria

The documentation for this class was generated from the following file: