Iterative solvers module

Detailed Description

This module aims to provide various iterative linear and non linear solver algorithms. It currently provides:

Classes

class  Eigen::IterationController
 Controls the iterations of the iterative solvers. More...
 
class  Eigen::IterScaling< _MatrixType >
 iterative scaling algorithm to equilibrate rows and column norms in matrices More...
 

Functions

template<typename TMatrix , typename CMatrix , typename VectorX , typename VectorB , typename VectorF >
void Eigen::internal::constrained_cg (const TMatrix &A, const CMatrix &C, VectorX &x, const VectorB &b, const VectorF &f, IterationController &iter)
 
template<typename CMatrix , typename CINVMatrix >
void Eigen::internal::pseudo_inverse (const CMatrix &C, CINVMatrix &CINV)
 

Function Documentation

◆ constrained_cg()

template<typename TMatrix , typename CMatrix , typename VectorX , typename VectorB , typename VectorF >
void Eigen::internal::constrained_cg ( const TMatrix &  A,
const CMatrix &  C,
VectorX &  x,
const VectorB &  b,
const VectorF &  f,
IterationController iter 
)

Constrained conjugate gradient

Computes the minimum of $ 1/2((Ax).x) - bx $ under the contraint $ Cx \le f $

◆ pseudo_inverse()

template<typename CMatrix , typename CINVMatrix >
void Eigen::internal::pseudo_inverse ( const CMatrix &  C,
CINVMatrix &  CINV 
)

Compute the pseudo inverse of the non-square matrix C such that $ CINV = (C * C^T)^{-1} * C $ based on a conjugate gradient method.

This function is internally used by constrained_cg.