00001 #ifndef OptNewton_h 00002 #define OptNewton_h 00003 00004 #ifndef OptNewtonLike_h 00005 #include "OptNewtonLike.h" 00006 #endif 00007 00008 namespace OPTPP { 00009 00022 class OptNewton: public OptNewton2Deriv { 00023 public: 00031 OptNewton(): OptNewton2Deriv() 00032 {strcpy(method,"Newton");} 00036 OptNewton(NLP2* p): OptNewton2Deriv(p) 00037 {strcpy(method,"Newton");} 00042 OptNewton(NLP2* p, UPDATEFCN u): OptNewton2Deriv(p,u) 00043 {strcpy(method,"Newton");} 00048 OptNewton(NLP2* p, TOLS t): OptNewton2Deriv(p,t) 00049 {strcpy(method,"Newton");} 00050 00054 virtual ~OptNewton(){} 00055 00056 //----------------------------------------------------------------- 00057 // These are defined elsewhere 00058 //----------------------------------------------------------------- 00059 00061 void initHessian(); 00062 00064 NEWMAT::SymmetricMatrix updateH(NEWMAT::SymmetricMatrix& H, int k); 00065 00067 int checkDeriv(); 00068 00070 void printStatus(char *); 00071 00073 real stepTolNorm() const; 00074 }; 00075 00076 } // namespace OPTPP 00077 00078 #endif