Implements a conjugate gradient method as sparse linear algebra solver for non-symmetric linear systems. More...
#include <normal_conjugate_gradient_method.hpp>

Protected Member Functions | |
| virtual returnValue | applyInversePreconditioner (double *x_) |
| virtual returnValue | applyPreconditioner (double *b) |
| virtual returnValue | computePreconditioner (double *A_) |
| virtual void | multiply (double *xx, double *result) |
Protected Member Functions inherited from ConjugateGradientMethod | |
| double | scalarProduct (double *aa, double *bb) |
Protected Member Functions inherited from SparseSolver | |
| returnValue | clear () |
| returnValue | copy (const SparseSolver &rhs) |
Protected Attributes | |
| int ** | index |
| double * | iResult |
| int * | nIndex |
Protected Attributes inherited from ConjugateGradientMethod | |
| double * | A |
| double * | condScale |
| int | dim |
| int | nDense |
| double * | norm2 |
| double ** | p |
| int | pCounter |
| PrintLevel | printLevel |
| double * | r |
| double | TOL |
| double * | x |
Implements a conjugate gradient method as sparse linear algebra solver for non-symmetric linear systems.
The class NormalConjugateGradientMethod is a conjugate gradient method
which allows to specify any (possibly non-symetric) matrix A. This
method might not work properly for highly ill-conditioned systems. If
the matrix A is symmetric and positive definite the class
SymmetricConjugateGradientMethod should be preferred.
Definition at line 58 of file normal_conjugate_gradient_method.hpp.
| BEGIN_NAMESPACE_ACADO NormalConjugateGradientMethod::NormalConjugateGradientMethod | ( | ) |
Default constructor.
Definition at line 46 of file normal_conjugate_gradient_method.cpp.
| NormalConjugateGradientMethod::NormalConjugateGradientMethod | ( | const NormalConjugateGradientMethod & | arg | ) |
Copy constructor (deep copy).
Definition at line 55 of file normal_conjugate_gradient_method.cpp.
|
virtual |
Destructor.
Definition at line 88 of file normal_conjugate_gradient_method.cpp.
|
protectedvirtual |
Applies the inverse of the preconditioner to the vector x (only internal use)
Implements ConjugateGradientMethod.
Definition at line 290 of file normal_conjugate_gradient_method.cpp.
|
protectedvirtual |
Applies the preconditioner to the vector b (only internal use)
Implements ConjugateGradientMethod.
Definition at line 264 of file normal_conjugate_gradient_method.cpp.
|
virtual |
Clone operator (deep copy).
Implements ConjugateGradientMethod.
Definition at line 105 of file normal_conjugate_gradient_method.cpp.
|
protectedvirtual |
Computes the preconditioner and Applies it to the input matrix.
Implements ConjugateGradientMethod.
Definition at line 227 of file normal_conjugate_gradient_method.cpp.
|
protectedvirtual |
Evaluates the matrix-vector product result = A*xx efficiently. (only internal use)
Implements ConjugateGradientMethod.
Definition at line 196 of file normal_conjugate_gradient_method.cpp.
|
virtual |
Sets an index list containing the positions of the
non-zero elements in the matrix A.
Implements ConjugateGradientMethod.
Definition at line 111 of file normal_conjugate_gradient_method.cpp.
|
virtual |
Sets an index list containing the positions of the
non-zero elements in the matrix A.
Definition at line 117 of file normal_conjugate_gradient_method.cpp.
|
protected |
Definition at line 120 of file normal_conjugate_gradient_method.hpp.
|
protected |
Definition at line 123 of file normal_conjugate_gradient_method.hpp.
|
protected |
Definition at line 121 of file normal_conjugate_gradient_method.hpp.