00001
00002
00003
00004
00005
00006 #ifndef CbcFathom_H
00007 #define CbcFathom_H
00008 #include "CbcConfig.h"
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 class CbcModel;
00019
00020
00032 class CbcFathom {
00033 public:
00034
00035 CbcFathom ();
00036
00037
00038 CbcFathom (CbcModel & model);
00039
00040 virtual ~CbcFathom();
00041
00043 virtual void setModel(CbcModel * model);
00044
00046 virtual CbcFathom * clone() const = 0;
00047
00049 virtual void resetModel(CbcModel * model) = 0;
00050
00059 virtual int fathom(double *& newSolution) = 0;
00060
00061
00062 inline bool possible() const {
00063 return possible_;
00064 }
00065
00066 protected:
00067
00069 CbcModel * model_;
00071 bool possible_;
00072 private:
00073
00075 CbcFathom & operator=(const CbcFathom& rhs);
00076
00077 };
00078 #ifdef COIN_HAS_CLP
00079 #include "OsiClpSolverInterface.hpp"
00080
00081
00082
00090 class CbcOsiSolver : public OsiClpSolverInterface {
00091
00092 public:
00093
00096
00097 CbcOsiSolver ();
00098
00100 virtual OsiSolverInterface * clone(bool copyData = true) const;
00101
00103 CbcOsiSolver (const CbcOsiSolver &);
00104
00106 CbcOsiSolver & operator=(const CbcOsiSolver& rhs);
00107
00109 virtual ~CbcOsiSolver ();
00110
00112
00113
00116
00117 inline void setCbcModel(CbcModel * model) {
00118 cbcModel_ = model;
00119 }
00121 inline CbcModel * cbcModel() const {
00122 return cbcModel_;
00123 }
00125
00126
00127
00128 protected:
00129
00130
00133
00134 CbcModel * cbcModel_;
00136 };
00137 #endif
00138 #endif
00139