OptBCNewton.h

00001 #ifndef OptBCNewton_h
00002 #define OptBCNewton_h
00003 
00004 /*----------------------------------------------------------------------
00005  Copyright (c) 2001, Sandia Corporation.
00006  J.C. Meza, Sandia National Laboratories, meza@ca.sandia.gov
00007  ----------------------------------------------------------------------*/
00008 
00009 #include "OptBCNewtonLike.h"
00010 
00011 using std::cerr;
00012 
00013 namespace OPTPP {
00014 
00025 class OptBCNewton: public OptBCNewton2Deriv {
00026 protected:
00028   int           nactive;        
00030   NEWMAT::ColumnVector  work_set;       
00031 
00032  public:
00039   OptBCNewton(): 
00040     OptBCNewton2Deriv(), nactive(0), work_set(0)
00041     { cerr << "OptBCNewton :: instantiation \n";
00042       strcpy(method,"Bound constrained Newton");
00043     }
00044 
00050   OptBCNewton(NLP2* p): 
00051     OptBCNewton2Deriv(p), nactive(0), work_set(p->getDim())
00052     { strcpy(method,"Bound constrained Newton"); work_set = false; }
00053 
00060   OptBCNewton(NLP2* p, UPDATEFCN u): 
00061     OptBCNewton2Deriv(p, u), nactive(0), work_set(p->getDim())
00062     { strcpy(method,"Bound constrained Newton"); work_set = false; }
00063 
00070   OptBCNewton(NLP2* p, TOLS t): 
00071     OptBCNewton2Deriv(p, t), nactive(0), work_set(p->getDim())
00072     { strcpy(method,"Bound constrained Newton"); work_set = false; }
00073 
00074  /*
00075   * Destructor
00076   */
00077   virtual ~OptBCNewton(){;}
00078 
00079 //----------------------------------
00080 // These are defined elsewhere
00081 //----------------------------------
00082   virtual int             checkConvg();
00083   virtual int             checkDeriv();
00084   virtual void            initHessian();
00085   virtual void            initOpt();
00086   virtual void            printStatus(char *);
00087   virtual real            stepTolNorm() const;
00088   NEWMAT::SymmetricMatrix updateH(NEWMAT::SymmetricMatrix& H, int k);
00089   double          computeMaxStep(NEWMAT::ColumnVector&);
00090   NEWMAT::ColumnVector    computeSearch(NEWMAT::SymmetricMatrix &);
00091   int             updateConstraints(int);
00092   virtual void            reset();
00093 
00094 protected:
00095 //  NLP2*   nlprob2() const {return nlp; }
00096 };
00097 
00098 } // namespace OPTPP
00099 
00100 #endif
Generated on Mon Jan 24 12:04:37 2011 for FASTlib by  doxygen 1.6.3