00001 /* $Id: OSBlockSlpSolver.h 3038 2009-11-07 11:43:44Z Gassmann $ */ 00018 #ifndef OSDIPBLOCKSLPSOLVER_H 00019 #define OSDIPBLOCKSLPSOLVER_H 00020 00021 // --------------------------------------------------------------------- // 00022 #include "OSDipBlockSolver.h" 00023 #include "OSDataStructures.h" 00024 #include "OSDefaultSolver.h" 00025 #include "OSrLReader.h" 00026 00027 #include "OSDipBlockSolverFactory.h" 00028 00029 // --------------------------------------------------------------------- // 00037 // --------------------------------------------------------------------- // 00038 class OSDipBlockSlpSolver : public OSDipBlockSolver { 00039 public: 00040 00041 00042 OSInstance *m_osinstance; 00043 OSResult *m_osresult; 00044 int m_numberOfVar; 00045 00046 std::vector<IndexValuePair*> m_primalVals; 00047 00048 00060 virtual void solve(double *cost, std::vector<IndexValuePair*> *solIndexValPair, double *optVal) ; 00061 00062 00073 virtual void solve(double *cost, std::string *osrl) ; 00074 00079 OSDipBlockSlpSolver(); 00080 00081 00086 OSDipBlockSlpSolver( OSInstance *osinstance); 00087 00092 ~OSDipBlockSlpSolver(); 00093 00094 class Factory; 00095 class Factory : public OSDipBlockSolverFactory{ 00096 00097 public: 00098 00099 Factory(){ 00100 00101 } 00102 00103 ~Factory(){ 00104 00105 } 00106 00107 OSDipBlockSolver* create() { return new OSDipBlockSlpSolver( osinstance); }; 00108 00109 };// end class OSDipBlockSolverFactory 00110 00111 00112 // 00113 };//end class OSDipBlockSlpSolver 00114 00115 00116 00117 00118 #endif