00001
00002
00003
00004 #ifndef CbcFathom_H
00005 #define CbcFathom_H
00006 #include "CbcConfig.h"
00007
00008 class CbcModel;
00009
00010
00022 class CbcFathom {
00023 public:
00024
00025 CbcFathom ();
00026
00027
00028 CbcFathom (CbcModel & model);
00029
00030 virtual ~CbcFathom();
00031
00033 virtual void setModel(CbcModel * model);
00034
00036 virtual CbcFathom * clone() const=0;
00037
00039 virtual void resetModel(CbcModel * model)=0;
00040
00049 virtual int fathom(double *& newSolution)=0;
00050
00051
00052 inline bool possible() const
00053 { return possible_;}
00054
00055 protected:
00056
00058 CbcModel * model_;
00060 bool possible_;
00061 private:
00062
00064 CbcFathom & operator=(const CbcFathom& rhs);
00065
00066 };
00067 #ifdef COIN_HAS_CLP
00068 #include "OsiClpSolverInterface.hpp"
00069
00070
00071
00077 class CbcOsiSolver : public OsiClpSolverInterface {
00078
00079 public:
00080
00083
00084 CbcOsiSolver ();
00085
00087 virtual OsiSolverInterface * clone(bool copyData=true) const;
00088
00090 CbcOsiSolver (const CbcOsiSolver &);
00091
00093 CbcOsiSolver & operator=(const CbcOsiSolver& rhs);
00094
00096 virtual ~CbcOsiSolver ();
00097
00099
00100
00103
00104 inline void setCbcModel(CbcModel * model)
00105 { cbcModel_=model;}
00107 inline CbcModel * cbcModel() const
00108 { return cbcModel_;}
00110
00111
00112
00113 protected:
00114
00115
00118
00119 CbcModel * cbcModel_;
00121 };
00122 #endif
00123 #endif