![]() |
ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
|
A class to perform a conjugate gradient optimization. More...
#include <ConjugateGradient.h>


Public Member Functions | |
| ConjugateGradient () | |
| Default constructor. More... | |
| virtual | ~ConjugateGradient ()=default |
| Default destructor. More... | |
| cloudViewer::SquareMatrixTpl< Scalar > & | A () |
| Returns A matrix. More... | |
| Scalar * | b () |
| Returns b vector. More... | |
| void | initConjugateGradient (const Scalar *X0) |
| Initializes the conjugate gradient. More... | |
| Scalar | iterConjugateGradient (Scalar *Xn) |
| Iterates the conjugate gradient. More... | |
Protected Attributes | |
| Scalar | cg_Gn [N] |
| Residuals vector. More... | |
| Scalar | cg_Hn [N] |
| 'Hn' vector More... | |
| Scalar | cg_u [N] |
| 'u' vector More... | |
| Scalar | cg_b [N] |
| 'b' vector More... | |
| cloudViewer::SquareMatrixTpl< Scalar > | cg_A |
| 'A' matrix More... | |
A class to perform a conjugate gradient optimization.
Inspired from the "Numerical Recipes". Template parameter 'N' is the dimension of the linear system. Lets "A*Xn=b" be the system to optimize (at iteration n). First the user must init the A matrix (N*N) and b vector (N*1). Then the solver is initialized with X0 (see initConjugateGradient). And the conjugate gradient is iterated with iterConjugateGradient.
Definition at line 25 of file ConjugateGradient.h.
|
inline |
Default constructor.
Definition at line 28 of file ConjugateGradient.h.
References cloudViewer::ConjugateGradient< N, Scalar >::cg_b, cloudViewer::ConjugateGradient< N, Scalar >::cg_Gn, cloudViewer::ConjugateGradient< N, Scalar >::cg_Hn, and cloudViewer::ConjugateGradient< N, Scalar >::cg_u.
|
virtualdefault |
Default destructor.
|
inline |
Returns A matrix.
Definition at line 39 of file ConjugateGradient.h.
References cloudViewer::ConjugateGradient< N, Scalar >::cg_A.
Referenced by cloudViewer::Neighbourhood::computeQuadric().
|
inline |
Returns b vector.
Definition at line 42 of file ConjugateGradient.h.
References cloudViewer::ConjugateGradient< N, Scalar >::cg_b.
Referenced by cloudViewer::Neighbourhood::computeQuadric().
|
inline |
Initializes the conjugate gradient.
| X0 | the initial state (size N) |
Definition at line 47 of file ConjugateGradient.h.
References cloudViewer::ConjugateGradient< N, Scalar >::cg_A, cloudViewer::ConjugateGradient< N, Scalar >::cg_b, cloudViewer::ConjugateGradient< N, Scalar >::cg_Gn, and cloudViewer::ConjugateGradient< N, Scalar >::cg_Hn.
Referenced by cloudViewer::Neighbourhood::computeQuadric().
|
inline |
Iterates the conjugate gradient.
Xn will be automatically updated to Xn+1 on output.
| Xn | the current estimation of Xn (size N) |
Definition at line 59 of file ConjugateGradient.h.
References cloudViewer::ConjugateGradient< N, Scalar >::cg_A, cloudViewer::ConjugateGradient< N, Scalar >::cg_b, cloudViewer::ConjugateGradient< N, Scalar >::cg_Gn, cloudViewer::ConjugateGradient< N, Scalar >::cg_Hn, and cloudViewer::ConjugateGradient< N, Scalar >::cg_u.
Referenced by cloudViewer::Neighbourhood::computeQuadric().
|
protected |
'A' matrix
Equation solved: "A.X=b"
Definition at line 117 of file ConjugateGradient.h.
Referenced by cloudViewer::ConjugateGradient< N, Scalar >::A(), cloudViewer::ConjugateGradient< N, Scalar >::initConjugateGradient(), and cloudViewer::ConjugateGradient< N, Scalar >::iterConjugateGradient().
|
protected |
'b' vector
Equation solved: "A.X=b"
Definition at line 112 of file ConjugateGradient.h.
Referenced by cloudViewer::ConjugateGradient< N, Scalar >::b(), cloudViewer::ConjugateGradient< N, Scalar >::ConjugateGradient(), cloudViewer::ConjugateGradient< N, Scalar >::initConjugateGradient(), and cloudViewer::ConjugateGradient< N, Scalar >::iterConjugateGradient().
|
protected |
Residuals vector.
Definition at line 97 of file ConjugateGradient.h.
Referenced by cloudViewer::ConjugateGradient< N, Scalar >::ConjugateGradient(), cloudViewer::ConjugateGradient< N, Scalar >::initConjugateGradient(), and cloudViewer::ConjugateGradient< N, Scalar >::iterConjugateGradient().
|
protected |
'Hn' vector
Intermediary computation result
Definition at line 102 of file ConjugateGradient.h.
Referenced by cloudViewer::ConjugateGradient< N, Scalar >::ConjugateGradient(), cloudViewer::ConjugateGradient< N, Scalar >::initConjugateGradient(), and cloudViewer::ConjugateGradient< N, Scalar >::iterConjugateGradient().
|
protected |
'u' vector
Intermediary computation result
Definition at line 107 of file ConjugateGradient.h.
Referenced by cloudViewer::ConjugateGradient< N, Scalar >::ConjugateGradient(), and cloudViewer::ConjugateGradient< N, Scalar >::iterConjugateGradient().