00001 #ifndef IOTRAMPLDRIVER 00002 #define IOTRAMPLDRIVER 00003 00013 #include <iostream> 00014 #include <popt.h> 00015 #include "IotrRefCount.hh" 00016 #include "IotrHandle.hh" 00017 #include "IotrDriver.hh" 00018 #include "AmplFunctional.hh" 00019 #include "IotrConfiguration.hh" 00020 #include "Nlp.hh" 00021 #include "IotrSolver.hh" 00022 #include "IotrLineSearchSolver.hh" 00023 00027 class IotrAmplDriver : public IotrDriver { 00028 protected: 00029 AmplAdaptorHandle mAdaptor; 00030 IotrConfigurationHandle mCommandLineArgs; 00031 IotrConfigurationHandle mConfig; 00032 IotrConfigurationHandle mSolverConfig; 00033 AmplFunctionalHandle mFunc; 00034 NlpHandle mFormulation; 00035 NlpSolverHandle mSolver; 00036 public: 00037 IotrAmplDriver( int argc, char **argv ); 00038 ~IotrAmplDriver(); 00039 00040 virtual Nlp* formulationPtr(); 00041 virtual NlpSolver* solverPtr(); 00042 00043 virtual int initialize(); 00044 virtual void readConfigFile(); 00045 virtual int setUpFunctional(); 00046 virtual int setUpFormulation(); 00047 virtual int setUpSolver(); 00048 00049 virtual void reportErrors(); 00050 virtual void printPrelim(); 00051 virtual int solve(); 00052 }; 00053 00054 typedef Handle<IotrAmplDriver> IotrAmplDriverHandle; 00055 00056 #endif