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

Public Member Functions | |
| virtual SparseSolver * | clone () const |
| virtual returnValue | setIndices (const int *rowIdx_, const int *colIdx_) |
| virtual returnValue | setIndices (const int *indices_) |
| SymmetricConjugateGradientMethod () | |
| SymmetricConjugateGradientMethod (const SymmetricConjugateGradientMethod &arg) | |
| virtual | ~SymmetricConjugateGradientMethod () |
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 Attributes | |
| int * | diag |
| int ** | index |
| int * | nIndex |
Implements a conjugate gradient method as sparse linear algebra solver for symmetric linear systems.
The class SymmetricConjugateGradientMethod is a conjugate gradient method
which allows to solve symmetric linear equation of the form
A * x = b
where A is symmetric and positive definite.
Definition at line 61 of file symmetric_conjugate_gradient_method.hpp.
Default constructor.
Definition at line 46 of file symmetric_conjugate_gradient_method.cpp.
| SymmetricConjugateGradientMethod::SymmetricConjugateGradientMethod | ( | const SymmetricConjugateGradientMethod & | arg | ) |
Copy constructor (deep copy).
Definition at line 55 of file symmetric_conjugate_gradient_method.cpp.
Destructor.
Definition at line 88 of file symmetric_conjugate_gradient_method.cpp.
| returnValue SymmetricConjugateGradientMethod::applyInversePreconditioner | ( | double * | x_ | ) | [protected, virtual] |
Applies the inverse of the preconditioner to the vector x (only internal use)
Implements ConjugateGradientMethod.
Definition at line 263 of file symmetric_conjugate_gradient_method.cpp.
| returnValue SymmetricConjugateGradientMethod::applyPreconditioner | ( | double * | b | ) | [protected, virtual] |
Applies the preconditioner to the vector b (only internal use)
Implements ConjugateGradientMethod.
Definition at line 250 of file symmetric_conjugate_gradient_method.cpp.
| SparseSolver * SymmetricConjugateGradientMethod::clone | ( | ) | const [virtual] |
Clone operator (deep copy).
Implements ConjugateGradientMethod.
Definition at line 105 of file symmetric_conjugate_gradient_method.cpp.
| returnValue SymmetricConjugateGradientMethod::computePreconditioner | ( | double * | A_ | ) | [protected, virtual] |
Computes the preconditioner and Applies it to the input matrix.
Implements ConjugateGradientMethod.
Definition at line 227 of file symmetric_conjugate_gradient_method.cpp.
| void SymmetricConjugateGradientMethod::multiply | ( | double * | xx, |
| double * | result | ||
| ) | [protected, virtual] |
Evaluates the matrix-vector product result = A*xx efficiently. (only internal use)
Implements ConjugateGradientMethod.
Definition at line 207 of file symmetric_conjugate_gradient_method.cpp.
| returnValue SymmetricConjugateGradientMethod::setIndices | ( | const int * | rowIdx_, |
| const int * | colIdx_ | ||
| ) | [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 symmetric_conjugate_gradient_method.cpp.
| returnValue SymmetricConjugateGradientMethod::setIndices | ( | const int * | indices_ | ) | [virtual] |
Sets an index list containing the positions of the
non-zero elements in the matrix A.
Definition at line 117 of file symmetric_conjugate_gradient_method.cpp.
int* SymmetricConjugateGradientMethod::diag [protected] |
Definition at line 128 of file symmetric_conjugate_gradient_method.hpp.
int** SymmetricConjugateGradientMethod::index [protected] |
Definition at line 126 of file symmetric_conjugate_gradient_method.hpp.
int* SymmetricConjugateGradientMethod::nIndex [protected] |
Definition at line 127 of file symmetric_conjugate_gradient_method.hpp.