00001 #ifndef IOTRLINESEARCHSOLVER 00002 #define IOTRLINESEARCHSOLVER 00003 00010 class Nlp; 00011 class NlpIterate; 00012 class NlpResiduals; 00013 00014 #include "IotrConfiguration.hh" 00015 #include "IotrHandle.hh" 00016 #include "IotrRefCount.hh" 00017 #include "NlpIotrTrustRegion.hh" 00018 #include <iostream> 00019 #include "NlpSolver.hh" 00020 00024 class IotrLineSearchSolver : public NlpSolver { 00025 protected: 00026 double mInitialRho; 00027 double mAbsoluteTol; 00028 int mMaxInnerIt; 00029 int mMaxOuterIt; 00030 double mMuIneqMin; 00031 double mMuEqMin; 00032 double mSuccessTol; 00033 double mTriumphTol; 00034 double mTrustNewtTol; 00035 double mDelta0; 00036 double mMuTol; 00037 double mFtol; 00038 public: 00040 int doStatus( NlpIterate & vars, NlpResiduals & resids ); 00042 int solve( Nlp & nlp, NlpIterate & vars, NlpResiduals & resids ); 00043 IotrLineSearchSolver(IotrConfiguration & config); 00044 IotrConfiguration * getConfiguration(); 00045 void writeConfiguration( std::ostream & out, char * indent = 0 ); 00046 }; 00047 00048 typedef Handle<IotrLineSearchSolver> IotrLineSearchSolverHandle; 00049 typedef Handle<NlpIotrTrustRegion> NlpIotrTrustRegionHandle; 00050 00051 #endif