11 #ifndef MATRIXSOLVER_H_ 12 #define MATRIXSOLVER_H_ 33 static MatrixSolver* factory(
const std::string solver, std::ostream& logger);
35 virtual int init(
int nRows,
int nOffDiags,
int offDiagRow[],
int offDiagCol[])= 0;
36 virtual void reset() = 0;
38 virtual double getDiag(
int i) {
return 0.0;}
39 virtual double getOffDiag(
int i) {
return 0.0;}
40 virtual double getRhs(
int i) {
return 0.0;}
42 virtual void setDiag(
int row,
double a) = 0;
43 virtual void setRhs(
int row,
double b) = 0;
44 virtual void addToDiag(
int row,
double a) = 0;
45 virtual void addToOffDiag(
int offDiag,
double a) = 0;
46 virtual void addToRhs(
int row,
double b) = 0;
47 virtual int solve(
int nRows,
double x[]) = 0;
49 virtual void debug(std::ostream& out) {}
Abstract class for solving a set of linear equations.
Definition: matrixsolver.h:27