CbcFullNodeInfo.hpp
Go to the documentation of this file.
1 // Edwin 11/24/09 carved from CbcNode
2 #ifndef CbcFullNodeInfo_H
3 #define CbcFullNodeInfo_H
4 
5 #include <string>
6 #include <vector>
7 
8 #include "CoinWarmStartBasis.hpp"
9 #include "CoinSearchTree.hpp"
10 #include "CbcBranchBase.hpp"
11 #include "CbcNodeInfo.hpp"
12 
13 class OsiSolverInterface;
14 class OsiSolverBranch;
15 
16 class OsiCuts;
17 class OsiRowCut;
18 class OsiRowCutDebugger;
19 class CoinWarmStartBasis;
20 class CbcCountRowCut;
21 class CbcModel;
22 class CbcNode;
23 class CbcSubProblem;
24 class CbcGeneralBranchingObject;
25 
26 //#############################################################################
75 class CbcFullNodeInfo : public CbcNodeInfo {
76 
77 public:
78 
88  virtual void applyToModel (CbcModel *model, CoinWarmStartBasis *&basis,
90  int &currentNumberCuts) const ;
91 
93  virtual int applyBounds(int iColumn, double & lower, double & upper, int force) ;
94 
99  virtual CbcNodeInfo * buildRowBasis(CoinWarmStartBasis & basis) const ;
100  // Default Constructor
101  CbcFullNodeInfo ();
102 
105  CbcFullNodeInfo (CbcModel * model,
106  int numberRowsAtContinuous);
107 
108  // Copy constructor
109  CbcFullNodeInfo ( const CbcFullNodeInfo &);
110 
111  // Destructor
112  ~CbcFullNodeInfo ();
113 
115  virtual CbcNodeInfo * clone() const;
117  inline const double * lower() const {
118  return lower_;
119  }
121  inline const double * upper() const {
122  return upper_;
123  }
124 protected:
125  // Data
131  CoinWarmStartBasis *basis_;
133  // Bounds stored in full
134  double * lower_;
135  double * upper_;
136 private:
139 };
140 #endif //CbcFullNodeInfo_H
141