24 template <
int N,
class Scalar>
29 memset(
cg_Gn, 0,
sizeof(Scalar) * N);
30 memset(
cg_Hn, 0,
sizeof(Scalar) * N);
31 memset(
cg_u, 0,
sizeof(Scalar) * N);
32 memset(
cg_b, 0,
sizeof(Scalar) * N);
42 inline Scalar*
b() {
return cg_b; }
64 Scalar d = 0, e = 0, f = 0;
65 for (k = 0; k < N; ++k) {
73 for (k = 0; k < N; ++k) Xn[k] -=
cg_Hn[k] * d;
77 for (k = 0; k < N; ++k)
83 for (k = 1; k < N; ++k) e +=
cg_Gn[k] *
cg_Gn[k];
87 for (k = 0; k < N; ++k)
A class to perform a conjugate gradient optimization.
cloudViewer::SquareMatrixTpl< Scalar > cg_A
'A' matrix
Scalar iterConjugateGradient(Scalar *Xn)
Iterates the conjugate gradient.
cloudViewer::SquareMatrixTpl< Scalar > & A()
Returns A matrix.
virtual ~ConjugateGradient()=default
Default destructor.
void initConjugateGradient(const Scalar *X0)
Initializes the conjugate gradient.
Scalar cg_Gn[N]
Residuals vector.
Scalar cg_Hn[N]
'Hn' vector
ConjugateGradient()
Default constructor.
Scalar * b()
Returns b vector.
Generic file read and write utility for python interface.