OptBCQNewton.h

00001 #ifndef OptBCQNewton_h
00002 #define OptBCQNewton_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 OptBCQNewton: public OptBCNewton1Deriv {
00026  protected:
00027   int                   nactive;        
00028   NEWMAT::ColumnVector  work_set;       
00029 
00030  public:
00037   OptBCQNewton(): 
00038     OptBCNewton1Deriv(), nactive(0), work_set(0) 
00039     { cerr << "OptBCQNewton :: instantiation \n";
00040       strcpy(method,"Bound constrained Quasi-Newton"); work_set = false; }
00046   OptBCQNewton(NLP1* p): 
00047     OptBCNewton1Deriv(p), nactive(0), work_set(p->getDim())
00048     { strcpy(method,"Bound constrained Quasi-Newton"); work_set = false; }
00055   OptBCQNewton(NLP1* p, UPDATEFCN u): 
00056     OptBCNewton1Deriv(p, u), nactive(0), work_set(p->getDim())
00057     { strcpy(method,"Bound constrained Quasi-Newton"); work_set = false; }
00064   OptBCQNewton(NLP1* p, TOLS t): 
00065     OptBCNewton1Deriv(p, t), nactive(0), work_set(p->getDim())
00066     { strcpy(method,"Bound constrained Quasi-Newton"); work_set = false; }
00067 
00071   virtual ~OptBCQNewton(){;}
00072 
00073   //-------------------------------------------
00074   // These are defined elsewhere
00075   //-------------------------------------------
00076 
00077   virtual int             checkConvg();
00078   virtual int             checkDeriv();
00079   virtual void            initHessian();
00080   virtual void            initOpt();
00081   virtual void            printStatus(char *);
00082   virtual real            stepTolNorm() const;
00083   NEWMAT::SymmetricMatrix updateH(NEWMAT::SymmetricMatrix& H, int k);
00084   double          computeMaxStep(NEWMAT::ColumnVector&);
00085   NEWMAT::ColumnVector    computeSearch(NEWMAT::SymmetricMatrix &);
00086   int             updateConstraints(int);
00087   virtual void            reset();
00088 
00089 };
00090 
00091 } // namespace OPTPP
00092 #endif
Generated on Mon Jan 24 12:04:37 2011 for FASTlib by  doxygen 1.6.3