CbcFathom.hpp
Go to the documentation of this file.
1 /* $Id: CbcFathom.hpp 1432 2010-02-07 19:33:53Z bjarni $ */
2 // Copyright (C) 2004, International Business Machines
3 // Corporation and others. All Rights Reserved.
4 #ifndef CbcFathom_H
5 #define CbcFathom_H
6 #include "CbcConfig.h"
7 
8 /*
9  This file contains two classes, CbcFathom and CbcOsiSolver. It's unclear why
10  they're in the same file. CbcOsiSolver is a base class for CbcLinked.
11 
12  --lh, 071031 --
13 */
14 
15 
16 class CbcModel;
17 
18 //#############################################################################
30 class CbcFathom {
31 public:
32  // Default Constructor
33  CbcFathom ();
34 
35  // Constructor with model - assumed before cuts
36  CbcFathom (CbcModel & model);
37 
38  virtual ~CbcFathom();
39 
41  virtual void setModel(CbcModel * model);
42 
44  virtual CbcFathom * clone() const = 0;
45 
47  virtual void resetModel(CbcModel * model) = 0;
48 
57  virtual int fathom(double *& newSolution) = 0;
58 
59  // Is this method possible
60  inline bool possible() const {
61  return possible_;
62  }
63 
64 protected:
65 
69  bool possible_;
70 private:
71 
73  CbcFathom & operator=(const CbcFathom& rhs);
74 
75 };
76 #ifdef COIN_HAS_CLP
77 #include "OsiClpSolverInterface.hpp"
78 
79 //#############################################################################
80 
88 class CbcOsiSolver : public OsiClpSolverInterface {
89 
90 public:
91 
94  CbcOsiSolver ();
96 
98  virtual OsiSolverInterface * clone(bool copyData = true) const;
99 
101  CbcOsiSolver (const CbcOsiSolver &);
102 
104  CbcOsiSolver & operator=(const CbcOsiSolver& rhs);
105 
107  virtual ~CbcOsiSolver ();
108 
110 
111 
114  inline void setCbcModel(CbcModel * model) {
116  cbcModel_ = model;
117  }
119  inline CbcModel * cbcModel() const {
120  return cbcModel_;
121  }
123 
124  //---------------------------------------------------------------------------
125 
126 protected:
127 
128 
134 };
135 #endif
136 #endif
137