67 #ifndef KLUSparseSolutionManager_hh
68 #define KLUSparseSolutionManager_hh
96 klu_symbolic *Symbolic;
97 mutable klu_common Control;
98 mutable klu_numeric *Numeric;
100 bool bPrepareSymbolic(
void);
112 KLUSolver(
const integer &size,
const doublereal &dPivot, Scale scale = SCALE_UNDEF);
116 void Solve(
void)
const;
119 std::vector<doublereal>& Ax,
120 std::vector<integer>& Ar,
121 std::vector<integer>& Ac,
122 std::vector<integer>& Ap)
const;
135 std::vector<doublereal> b;
142 std::vector<doublereal> Ax;
143 std::vector<integer> Ai;
144 std::vector<integer> Adummy;
145 std::vector<integer> Ap;
149 virtual void MakeCompressedColumnForm(
void);
151 template <
typename MH>
152 void ScaleMatrixAndRightHandSide(MH& mh);
154 template <
typename MH>
157 void ScaleSolution(
void);
163 KLUSparseSolutionManager(
integer Dim,
165 const ScaleOpt& scale = ScaleOpt());
166 virtual ~KLUSparseSolutionManager(
void);
168 virtual void IsValid(
void)
const {
177 virtual void Solve(
void);
194 class KLUSparseCCSolutionManager:
public KLUSparseSolutionManager {
199 virtual void MatrReset(
void);
200 virtual void MakeCompressedColumnForm(
void);
203 KLUSparseCCSolutionManager(
integer Dim,
205 const ScaleOpt& scale = ScaleOpt());
206 virtual ~KLUSparseCCSolutionManager(
void);
209 virtual void MatrInitialize(
void);
virtual VectorHandler * pResHdl(void) const =0
virtual bool bGetConditionNumber(doublereal &dCond)
virtual MatrixHandler * pMatHdl(void) const =0
virtual void MatrReset(void)=0
virtual void Solve(void)=0
virtual void Solve(void) const =0
virtual VectorHandler * pSolHdl(void) const =0
virtual void MakeCompactForm(SparseMatrixHandler &mh, std::vector< doublereal > &Ax, std::vector< integer > &Ar, std::vector< integer > &Ac, std::vector< integer > &Ap) const