00001 #ifndef NLPTRSHORTPATHFOLLOW 00002 #define NLPTRSHORTPATHFOLLOW 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 00022 class IotrSolver : public NlpSolver { 00023 protected: 00024 double mInitialRho; 00025 double mAbsoluteTol; 00026 int mMaxInnerIt; 00027 int mMaxOuterIt; 00028 double mMuIneqMin; 00029 double mMuEqMin; 00030 double mSuccessTol; 00031 double mTriumphTol; 00032 double mTrustNewtTol; 00033 double mDelta0; 00034 double mMuTol; 00035 double mFtol; 00036 public: 00038 int doStatus( NlpIterate & vars, NlpResiduals & resids ); 00040 int solve( Nlp & nlp, NlpIterate & vars, NlpResiduals & resids ); 00041 IotrSolver(IotrConfiguration & config); 00042 IotrConfiguration * getConfiguration(); 00043 void writeConfiguration( std::ostream & out, char * indent = 0 ); 00044 }; 00045 00046 typedef Handle<IotrSolver> IotrSolverHandle; 00047 typedef Handle<NlpIotrTrustRegion> NlpIotrTrustRegionHandle; 00048 00049 #endif