00001 #ifndef __TruncatedCgSolver_H__ 00002 #define __TruncatedCgSolver_H__ 00003 00004 00005 00033 #include "F_CgLS_ShiftedLS.hpp" 00034 #include "ATikhonovPhillipsSolver.hpp" 00035 00036 class TruncatedCgSolver : public ATikhonovPhillipsSolver 00037 { 00038 protected: 00039 00040 F_IterativeShiftedLS* linearSystem; 00041 00042 public: 00043 TruncatedCgSolver(int iter= 10, double adelta=0.0001):ATikhonovPhillipsSolver(10, adelta) 00044 { linearSystem= new F_CgLS_ShiftedLS(10, alpha0, adelta); } 00045 virtual ~TruncatedCgSolver(){} 00046 00047 // A * u = b 00048 virtual FloatVector* solve(AFloatMatrix* m, FloatVector* b, FloatVector* dest); 00049 virtual FloatVector* solve(AFloatMatrix* m, FloatVector* b, bool factorisation=true, FloatVector* dest=0) 00050 { return solve(m, b, dest); } 00051 }; 00052 00053 #endif 00054 00055