Eigen::BiCGSTABL< MatrixType_, Preconditioner_ > Class Template Reference

#include <BiCGSTABL.h>

+ Inheritance diagram for Eigen::BiCGSTABL< MatrixType_, Preconditioner_ >:

Public Types

typedef MatrixType_ MatrixType
 
typedef MatrixType::Scalar Scalar
 
typedef MatrixType::RealScalar RealScalar
 
typedef Preconditioner_ Preconditioner
 
- Public Types inherited from Eigen::IterativeSolverBase< BiCGSTABL< MatrixType_, Preconditioner_ > >
enum  
 
typedef internal::traits< BiCGSTABL< MatrixType_, Preconditioner_ > >::MatrixType MatrixType
 
typedef internal::traits< BiCGSTABL< MatrixType_, Preconditioner_ > >::Preconditioner Preconditioner
 
typedef MatrixType::Scalar Scalar
 
typedef MatrixType::StorageIndex StorageIndex
 
typedef MatrixType::RealScalar RealScalar
 

Public Member Functions

 BiCGSTABL ()
 
template<typename MatrixDerived >
 BiCGSTABL (const EigenBase< MatrixDerived > &A)
 
template<typename Rhs , typename Dest >
void _solve_vector_with_guess_impl (const Rhs &b, Dest &x) const
 
void setL (Index L)
 
- Public Member Functions inherited from Eigen::IterativeSolverBase< BiCGSTABL< MatrixType_, Preconditioner_ > >
 IterativeSolverBase ()
 
 IterativeSolverBase (const EigenBase< MatrixDerived > &A)
 
 IterativeSolverBase (IterativeSolverBase &&)=default
 
 ~IterativeSolverBase ()
 
BiCGSTABL< MatrixType_, Preconditioner_ > & analyzePattern (const EigenBase< MatrixDerived > &A)
 
BiCGSTABL< MatrixType_, Preconditioner_ > & factorize (const EigenBase< MatrixDerived > &A)
 
BiCGSTABL< MatrixType_, Preconditioner_ > & compute (const EigenBase< MatrixDerived > &A)
 
EIGEN_CONSTEXPR Index rows () const EIGEN_NOEXCEPT
 
EIGEN_CONSTEXPR Index cols () const EIGEN_NOEXCEPT
 
RealScalar tolerance () const
 
BiCGSTABL< MatrixType_, Preconditioner_ > & setTolerance (const RealScalar &tolerance)
 
Preconditionerpreconditioner ()
 
const Preconditionerpreconditioner () const
 
Index maxIterations () const
 
BiCGSTABL< MatrixType_, Preconditioner_ > & setMaxIterations (Index maxIters)
 
Index iterations () const
 
RealScalar error () const
 
const SolveWithGuess< BiCGSTABL< MatrixType_, Preconditioner_ >, Rhs, Guess > solveWithGuess (const MatrixBase< Rhs > &b, const Guess &x0) const
 
ComputationInfo info () const
 
void _solve_with_guess_impl (const Rhs &b, SparseMatrixBase< DestDerived > &aDest) const
 
std::enable_if_t< Rhs::ColsAtCompileTime !=1 &&DestDerived::ColsAtCompileTime !=1 > _solve_with_guess_impl (const Rhs &b, MatrixBase< DestDerived > &aDest) const
 
std::enable_if_t< Rhs::ColsAtCompileTime==1||DestDerived::ColsAtCompileTime==1 > _solve_with_guess_impl (const Rhs &b, MatrixBase< DestDerived > &dest) const
 
void _solve_impl (const Rhs &b, Dest &x) const
 
BiCGSTABL< MatrixType_, Preconditioner_ > & derived ()
 
const BiCGSTABL< MatrixType_, Preconditioner_ > & derived () const
 
- Public Member Functions inherited from Eigen::SparseSolverBase< Derived >
 SparseSolverBase ()
 
 SparseSolverBase (SparseSolverBase &&other)
 
 ~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
 

Private Types

typedef IterativeSolverBase< BiCGSTABLBase
 

Private Member Functions

const ActualMatrixTypematrix () const
 

Private Attributes

Index m_L
 
RealScalar m_error
 
ComputationInfo m_info
 
bool m_isInitialized
 
Index m_iterations
 

Additional Inherited Members

- Protected Types inherited from Eigen::IterativeSolverBase< BiCGSTABL< MatrixType_, Preconditioner_ > >
typedef SparseSolverBase< BiCGSTABL< MatrixType_, Preconditioner_ > > Base
 
typedef internal::generic_matrix_wrapper< MatrixTypeMatrixWrapper
 
typedef MatrixWrapper::ActualMatrixType ActualMatrixType
 
- Protected Member Functions inherited from Eigen::IterativeSolverBase< BiCGSTABL< MatrixType_, Preconditioner_ > >
void init ()
 
const ActualMatrixTypematrix () const
 
void grab (const InputType &A)
 
- Protected Attributes inherited from Eigen::IterativeSolverBase< BiCGSTABL< MatrixType_, Preconditioner_ > >
MatrixWrapper m_matrixWrapper
 
Preconditioner m_preconditioner
 
Index m_maxIterations
 
RealScalar m_tolerance
 
RealScalar m_error
 
Index m_iterations
 
ComputationInfo m_info
 
bool m_analysisIsOk
 
bool m_factorizationIsOk
 
bool m_isInitialized
 
- Protected Attributes inherited from Eigen::SparseSolverBase< Derived >
bool m_isInitialized
 

Member Typedef Documentation

◆ Base

template<typename MatrixType_ , typename Preconditioner_ >
typedef IterativeSolverBase<BiCGSTABL> Eigen::BiCGSTABL< MatrixType_, Preconditioner_ >::Base
private

◆ MatrixType

template<typename MatrixType_ , typename Preconditioner_ >
typedef MatrixType_ Eigen::BiCGSTABL< MatrixType_, Preconditioner_ >::MatrixType

◆ Preconditioner

template<typename MatrixType_ , typename Preconditioner_ >
typedef Preconditioner_ Eigen::BiCGSTABL< MatrixType_, Preconditioner_ >::Preconditioner

◆ RealScalar

template<typename MatrixType_ , typename Preconditioner_ >
typedef MatrixType::RealScalar Eigen::BiCGSTABL< MatrixType_, Preconditioner_ >::RealScalar

◆ Scalar

template<typename MatrixType_ , typename Preconditioner_ >
typedef MatrixType::Scalar Eigen::BiCGSTABL< MatrixType_, Preconditioner_ >::Scalar

Constructor & Destructor Documentation

◆ BiCGSTABL() [1/2]

template<typename MatrixType_ , typename Preconditioner_ >
Eigen::BiCGSTABL< MatrixType_, Preconditioner_ >::BiCGSTABL ( )
inline

Default constructor.

298 : m_L(2) {}
Index m_L
Definition: BiCGSTABL.h:289

◆ BiCGSTABL() [2/2]

template<typename MatrixType_ , typename Preconditioner_ >
template<typename MatrixDerived >
Eigen::BiCGSTABL< MatrixType_, Preconditioner_ >::BiCGSTABL ( const EigenBase< MatrixDerived > &  A)
inlineexplicit

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.
312 : Base(A.derived()), m_L(2) {}
Matrix< SCALARA, Dynamic, Dynamic, opt_A > A
Definition: bench_gemm.cpp:47
IterativeSolverBase< BiCGSTABL > Base
Definition: BiCGSTABL.h:283

Member Function Documentation

◆ _solve_vector_with_guess_impl()

template<typename MatrixType_ , typename Preconditioner_ >
template<typename Rhs , typename Dest >
void Eigen::BiCGSTABL< MatrixType_, Preconditioner_ >::_solve_vector_with_guess_impl ( const Rhs &  b,
Dest &  x 
) const
inline

Loops over the number of columns of b and does the following:

  1. sets the tolerance and maxIterations
  2. Calls the function that has the core solver routine
320  {
322 
324 
327  }
Scalar * b
Definition: benchVecAdd.cpp:17
ComputationInfo m_info
Definition: IterativeSolverBase.h:389
RealScalar m_error
Definition: IterativeSolverBase.h:387
Index m_iterations
Definition: IterativeSolverBase.h:388
const ActualMatrixType & matrix() const
Definition: IterativeSolverBase.h:374
Index maxIterations() const
Definition: IterativeSolverBase.h:251
Preconditioner m_preconditioner
Definition: IterativeSolverBase.h:382
RealScalar m_tolerance
Definition: IterativeSolverBase.h:385
@ NumericalIssue
Definition: Constants.h:442
@ Success
Definition: Constants.h:440
@ NoConvergence
Definition: Constants.h:444
Eigen::DenseIndex ret
Definition: level1_cplx_impl.h:43
bool bicgstabl(const MatrixType &mat, const Rhs &rhs, Dest &x, const Preconditioner &precond, Index &iters, typename Dest::RealScalar &tol_error, Index L)
Definition: BiCGSTABL.h:47
list x
Definition: plotDoE.py:28

References b, Eigen::internal::bicgstabl(), Eigen::BiCGSTABL< MatrixType_, Preconditioner_ >::m_error, Eigen::BiCGSTABL< MatrixType_, Preconditioner_ >::m_info, Eigen::BiCGSTABL< MatrixType_, Preconditioner_ >::m_iterations, Eigen::BiCGSTABL< MatrixType_, Preconditioner_ >::m_L, Eigen::IterativeSolverBase< Derived >::m_preconditioner, Eigen::IterativeSolverBase< Derived >::m_tolerance, Eigen::BiCGSTABL< MatrixType_, Preconditioner_ >::matrix(), Eigen::IterativeSolverBase< Derived >::maxIterations(), Eigen::NoConvergence, Eigen::NumericalIssue, ret, Eigen::Success, and plotDoE::x.

◆ matrix()

template<typename MatrixType_ , typename Preconditioner_ >
const ActualMatrixType& Eigen::IterativeSolverBase< Derived >::matrix
inlineprivate

◆ setL()

template<typename MatrixType_ , typename Preconditioner_ >
void Eigen::BiCGSTABL< MatrixType_, Preconditioner_ >::setL ( Index  L)
inline

Sets the parameter L, indicating how many minimize residual steps are used. Default: 2

331  {
332  eigen_assert(L >= 1 && "L needs to be positive");
333  m_L = L;
334  }
MatrixXd L
Definition: LLT_example.cpp:6
#define eigen_assert(x)
Definition: Macros.h:910

References eigen_assert, L, and Eigen::BiCGSTABL< MatrixType_, Preconditioner_ >::m_L.

Member Data Documentation

◆ m_error

template<typename MatrixType_ , typename Preconditioner_ >
RealScalar Eigen::IterativeSolverBase< Derived >::m_error
mutableprivate

◆ m_info

template<typename MatrixType_ , typename Preconditioner_ >
ComputationInfo Eigen::IterativeSolverBase< Derived >::m_info
mutableprivate

◆ m_isInitialized

template<typename MatrixType_ , typename Preconditioner_ >
bool Eigen::SparseSolverBase< Derived >::m_isInitialized
mutableprivate

◆ m_iterations

template<typename MatrixType_ , typename Preconditioner_ >
Index Eigen::IterativeSolverBase< Derived >::m_iterations
mutableprivate

◆ m_L

template<typename MatrixType_ , typename Preconditioner_ >
Index Eigen::BiCGSTABL< MatrixType_, Preconditioner_ >::m_L
private

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