Public Member Functions | |
cgSolver (int n, real *x, const real *b, ILSI_Comm &comm_) | |
real * | getSolution (void) |
double | getResidual (void) const |
void | iterate (void) |
Private Attributes | |
int | n |
const real * | b |
real * | x_k |
allocVector | r_k |
allocVector | s_k |
allocVector | tmp |
ILSI_Comm & | comm |
double | residualMagSq |
As an algorithm reference, I recommend J. Shewchuk's excellent article "An Introduction to the Conjugate Gradient Method Without the Agonizing Pain"
Orion Sky Lawlor, olawlor@acm.org, 1/16/2003
Definition at line 16 of file cg.C.
Definition at line 42 of file cg.C.
References b, comm, copy(), ILSI_Comm::dotProduct(), ILSI_Comm::matrixVectorProduct(), n, r_k, residualMagSq, s_k, sub(), tmp, and x_k.
double cgSolver::getResidual | ( | void | ) | const [inline] |
void cgSolver::iterate | ( | void | ) |
Definition at line 54 of file cg.C.
References alpha, beta, comm, ILSI_Comm::dotProduct(), fma(), ILSI_Comm::matrixVectorProduct(), n, r_k, residualMagSq, s_k, tmp, and x_k.
int cgSolver::n [private] |
const real* cgSolver::b [private] |
real* cgSolver::x_k [private] |
allocVector cgSolver::r_k [private] |
allocVector cgSolver::s_k [private] |
allocVector cgSolver::tmp [private] |
ILSI_Comm& cgSolver::comm [private] |
double cgSolver::residualMagSq [private] |