00001 #ifndef NLPLINSYS 00002 #define NLPLINSYS 00003 00013 #include "IotrRefCount.hh" 00014 #include "IotrHandle.hh" 00015 00016 class NlpGrads; 00017 class NlpHessian; 00018 class NlpBounds; 00019 class NlpLinsysDiag; 00020 class NlpLinsysSol; 00021 00027 class NlpLinsys : public IotrRefCount { 00028 public: 00029 virtual void factor( NlpGrads & grads, 00030 NlpHessian & hessian, 00031 NlpLinsysDiag & diag ) = 0; 00032 00033 virtual void newtonStep( NlpLinsysSol & step, NlpGrads & grads ) = 0; 00034 00035 virtual int isConvex() = 0; 00036 00037 virtual NlpLinsysDiag * newDiagonal() = 0; 00038 virtual NlpLinsysSol * newSolutionVector() = 0; 00039 }; 00040 00041 typedef Handle<NlpLinsys> NlpLinsysHandle; 00042 00043 #endif