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: