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