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