00001 00016 #ifndef COINSOLVER_H 00017 #define COINSOLVER_H 00018 00019 #include <CoinPackedMatrix.hpp> 00020 #include <OsiSolverInterface.hpp> 00021 #include <OsiClpSolverInterface.hpp> 00022 #include <OsiCbcSolverInterface.hpp> 00023 00024 #include "OSConfig.h" 00025 #include "OSDefaultSolver.h" 00026 #include "OSrLWriter.h" 00027 #include "OSErrorClass.h" 00028 #include "OSiLReader.h" 00029 00030 #ifdef COIN_HAS_CPX 00031 #include <OsiCpxSolverInterface.hpp> 00032 #endif 00033 00034 #ifdef COIN_HAS_GLPK 00035 #include <OsiGlpkSolverInterface.hpp> 00036 #endif 00037 00038 #ifdef COIN_HAS_DYLP 00039 #include <OsiDylpSolverInterface.hpp> 00040 #endif 00041 00042 #ifdef COIN_HAS_SYMPHONY 00043 #include <OsiSymSolverInterface.hpp> 00044 #endif 00045 00046 #ifdef COIN_HAS_VOL 00047 #include <OsiVolSolverInterface.hpp> 00048 #endif 00049 00050 #include <string> 00051 00052 00059 class CoinSolver : public DefaultSolver{ 00060 00061 public: 00062 00066 CoinSolver(); 00067 00071 ~CoinSolver(); 00072 00077 virtual void solve() throw(ErrorClass); 00078 00083 virtual void buildSolverInstance() throw(ErrorClass); 00084 00085 00090 bool setCoinPackedMatrix(); 00091 00097 std::string getCoinSolverType(std::string osol_); 00098 00103 void dataEchoCheck(); 00104 00108 OsiSolverInterface *osiSolver; 00109 00110 00111 00116 OSiLReader *m_osilreader; 00117 00118 00119 00120 private: 00121 00122 00123 00124 00125 00129 CoinPackedMatrix *m_CoinPackedMatrix ; 00130 00132 OSrLWriter *osrlwriter; 00133 00134 }; 00135 #endif