Base class for linear iterative solvers.
More...
#include <IterativeSolverBase.h >
IterativeSolverBase ()
template<typename MatrixDerived >
IterativeSolverBase (const EigenBase < MatrixDerived > &A )
~IterativeSolverBase ()
template<typename MatrixDerived >
Derived & analyzePattern (const EigenBase < MatrixDerived > &A )
template<typename MatrixDerived >
Derived & factorize (const EigenBase < MatrixDerived > &A )
template<typename MatrixDerived >
Derived & compute (const EigenBase < MatrixDerived > &A )
EIGEN_CONSTEXPR Index rows () const EIGEN_NOEXCEPT
EIGEN_CONSTEXPR Index cols () const EIGEN_NOEXCEPT
RealScalar tolerance () const
Derived & setTolerance (const RealScalar &tolerance )
Preconditioner & preconditioner ()
const Preconditioner & preconditioner () const
Index maxIterations () const
Derived & setMaxIterations (Index maxIters)
Index iterations () const
RealScalar error () const
template<typename Rhs , typename Guess >
const SolveWithGuess < Derived, Rhs, Guess > solveWithGuess (const MatrixBase < Rhs > &b , const Guess &x0) const
ComputationInfo info () const
template<typename Rhs , typename DestDerived >
void _solve_with_guess_impl (const Rhs &b , SparseMatrixBase < DestDerived > &aDest) const
template<typename Rhs , typename DestDerived >
internal::enable_if < Rhs::ColsAtCompileTime!=1 &&DestDerived::ColsAtCompileTime!=1 >::type _solve_with_guess_impl (const Rhs &b , MatrixBase < DestDerived > &aDest) const
template<typename Rhs , typename DestDerived >
internal::enable_if < Rhs::ColsAtCompileTime==1||DestDerived::ColsAtCompileTime==1 >::type _solve_with_guess_impl (const Rhs &b , MatrixBase < DestDerived > &dest) const
template<typename Rhs , typename Dest >
void _solve_impl (const Rhs &b , Dest &x ) const
Derived & derived ()
const Derived & derived () const
SparseSolverBase ()
~SparseSolverBase ()
Derived & derived ()
const Derived & derived () const
template<typename Rhs >
const Solve < Derived, Rhs > solve (const MatrixBase < Rhs > &b ) const
template<typename Rhs >
const Solve < Derived, Rhs > solve (const SparseMatrixBase < Rhs > &b ) const
template<typename Rhs , typename Dest >
void _solve_impl (const SparseMatrixBase < Rhs > &b , SparseMatrixBase < Dest > &dest) const
template<typename Derived>
class Eigen::IterativeSolverBase< Derived >
Base class for linear iterative solvers.
See also class SimplicialCholesky , DiagonalPreconditioner , IdentityPreconditioner
◆ ActualMatrixType
template<typename Derived >
◆ Base
template<typename Derived >
◆ MatrixType
template<typename Derived >
◆ MatrixWrapper
template<typename Derived >
◆ Preconditioner
template<typename Derived >
◆ RealScalar
template<typename Derived >
◆ Scalar
template<typename Derived >
◆ StorageIndex
template<typename Derived >
◆ anonymous enum
template<typename Derived >
Enumerator ColsAtCompileTime
MaxColsAtCompileTime
◆ IterativeSolverBase() [1/2]
template<typename Derived >
◆ IterativeSolverBase() [2/2]
template<typename Derived >
template<typename MatrixDerived >
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.
◆ ~IterativeSolverBase()
template<typename Derived >
◆ _solve_impl()
template<typename Derived >
template<typename Rhs , typename Dest >
◆ _solve_with_guess_impl() [1/3]
template<typename Derived >
template<typename Rhs , typename DestDerived >
◆ _solve_with_guess_impl() [2/3]
template<typename Derived >
template<typename Rhs , typename DestDerived >
◆ _solve_with_guess_impl() [3/3]
template<typename Derived >
template<typename Rhs , typename DestDerived >
◆ analyzePattern()
template<typename Derived >
template<typename MatrixDerived >
Initializes the iterative solver for the sparsity pattern of the matrix A for further solving Ax=b problems.
Currently, this function mostly calls analyzePattern on the preconditioner. In the future we might, for instance, implement column reordering for faster matrix vector products.
◆ cols()
template<typename Derived >
◆ compute()
template<typename Derived >
template<typename MatrixDerived >
Initializes the iterative solver with the matrix A for further solving Ax=b problems.
Currently, this function mostly initializes/computes the preconditioner. In the future we might, for instance, implement column reordering 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.
◆ derived() [1/2]
template<typename Derived >
◆ derived() [2/2]
template<typename Derived >
◆ error()
template<typename Derived >
Returns the tolerance error reached during the last solve. It is a close approximation of the true relative residual error |Ax-b|/|b|.
◆ factorize()
template<typename Derived >
template<typename MatrixDerived >
Initializes the iterative solver with the numerical values of the matrix A for further solving Ax=b problems.
Currently, this function mostly calls 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.
◆ grab()
template<typename Derived >
template<typename InputType >
◆ info()
template<typename Derived >
Returns Success if the iterations converged, and NoConvergence otherwise.
◆ init()
template<typename Derived >
◆ iterations()
template<typename Derived >
Returns the number of iterations performed during the last solve
◆ matrix()
template<typename Derived >
◆ maxIterations()
template<typename Derived >
Returns the max number of iterations. It is either the value set by setMaxIterations or, by default, twice the number of columns of the matrix.
◆ preconditioner() [1/2]
template<typename Derived >
Returns a read-write reference to the preconditioner for custom configuration.
◆ preconditioner() [2/2]
template<typename Derived >
Returns a read-only reference to the preconditioner.
◆ rows()
template<typename Derived >
◆ setMaxIterations()
template<typename Derived >
Sets the max number of iterations. Default is twice the number of columns of the matrix.
◆ setTolerance()
template<typename Derived >
Sets the tolerance threshold used by the stopping criteria.
This value is used as an upper bound to the relative residual error: |Ax-b|/|b|. The default value is the machine precision given by NumTraits<Scalar>::epsilon()
◆ solveWithGuess()
template<typename Derived >
template<typename Rhs , typename Guess >
Returns the solution x of using the current decomposition of A and x0 as an initial solution.
See also solve() , compute()
◆ tolerance()
template<typename Derived >
Returns the tolerance threshold used by the stopping criteria.
See also setTolerance()
◆ m_analysisIsOk
template<typename Derived >
◆ m_error
template<typename Derived >
◆ m_factorizationIsOk
template<typename Derived >
◆ m_info
template<typename Derived >
◆ m_isInitialized
template<typename Derived >
◆ m_iterations
template<typename Derived >
◆ m_matrixWrapper
template<typename Derived >
◆ m_maxIterations
template<typename Derived >
◆ m_preconditioner
template<typename Derived >
◆ m_tolerance
template<typename Derived >
The documentation for this class was generated from the following file: