All Classes Namespaces Functions Variables Typedefs Enumerator Groups Pages
Iterative solvers module

Detailed Description

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

Namespaces

 Eigen
 iterative scaling algorithm to equilibrate rows and column norms in matrices
 

Classes

class  IterationController
 Controls the iterations of the iterative solvers. More...
 

Functions

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

Function Documentation

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 $

References Eigen::internal::pseudo_inverse().

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.

Referenced by Eigen::internal::constrained_cg().