OptDHNIPS.h

00001 #ifndef OptDHNIPS_h
00002 #define OptDHNIPS_h
00003 
00004 #ifndef OptNIPSLike_h
00005 #include "OptNIPSLike.h"
00006 #endif
00007 
00008 #include "OptppArray.h"
00009 
00010 namespace OPTPP {
00011 
00022 class OptDHNIPS: public OptNIPSLike {
00023  private:
00024   NLP2*         nlp;                    
00025 
00026  protected:
00027   OptppArray<NEWMAT::SymmetricMatrix> HCk_;     
00028   OptppArray<int> indices;              
00029 
00033   NLP2* nlprob2() const {return nlp;}
00037   NLP1* nlprob()  const {return nlp;}
00038 
00039 
00040  public:
00041 
00048   OptDHNIPS(): OptNIPSLike(), nlp(0), HCk_(0), indices(0)
00049     {strcpy(method,"Nonlinear Interior-Point Method w/ Disaggregated Hessian");}
00053   OptDHNIPS(NLP2* p): OptNIPSLike(p->getDim()), nlp(p), 
00054     HCk_(0), indices(0)
00055     {strcpy(method,"Nonlinear Interior-Point Method w/ Disaggregated Hessian");}
00060   OptDHNIPS(NLP2* p, UPDATEFCN u): OptNIPSLike(p->getDim(),u), nlp(p), 
00061     HCk_(0), indices(0)
00062     {strcpy(method,"Nonlinear Interior-Point Method w/ Disaggregated Hessian");}
00067   OptDHNIPS(NLP2* p, TOLS t): OptNIPSLike(p->getDim(),t), nlp(p), 
00068     HCk_(0), indices(0)
00069     {strcpy(method,"Nonlinear Interior-Point Method w/ Disaggregated Hessian");}
00070 
00074   virtual ~OptDHNIPS(){}
00075 
00079   OptppArray<NEWMAT::SymmetricMatrix> getConstraintHessian() const { return HCk_;}
00080 
00085   void nonLinearConstraintIndices(const NEWMAT::ColumnVector& types);
00086 
00088   virtual void reset();
00090   virtual void initHessian();
00092   virtual NEWMAT::SymmetricMatrix updateH(NEWMAT::SymmetricMatrix& H, int k);
00094   virtual void printStatus(char *s);
00095 };
00096 
00097 } // namespace OPTPP
00098 #endif
Generated on Mon Jan 24 12:04:37 2011 for FASTlib by  doxygen 1.6.3