00001 #ifndef NLPSIMPLELINSYS 00002 #define NLPSIMPLELINSYS 00003 00013 #include "IotrHandle.hh" 00014 #include "IotrRefCount.hh" 00015 #include "NlpLinsys.hh" 00016 00017 class PrimalDualSystem; 00018 typedef Handle<PrimalDualSystem> PrimalDualSystemHandle; 00019 00025 class NlpSimpleLinsys : public NlpLinsys { 00026 protected: 00027 PrimalDualSystemHandle mPdSystem; 00028 public: 00029 NlpSimpleLinsys( PrimalDualSystem * pdsys ); 00030 00031 virtual void factor( NlpGrads & grads, NlpHessian & hessian, 00032 NlpLinsysDiag & diag ); 00033 00034 virtual void newtonStep( NlpLinsysSol & step, NlpGrads & grads ); 00035 00036 00037 virtual int isConvex(); 00038 00039 virtual NlpLinsysDiag * newDiagonal(); 00040 virtual NlpLinsysSol * newSolutionVector(); 00041 }; 00042 00043 typedef Handle<NlpSimpleLinsys> NlpSimpleLinsysHandle; 00044 00045 #endif