CbcPartialNodeInfo.hpp
Go to the documentation of this file.
1 // Edwin 11/24/09 carved from CbcNode
2 #ifndef CbcPartialNodeInfo_H
3 #define CbcPartialNodeInfo_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;
34 
35 public:
36 
42  virtual void applyToModel (CbcModel *model, CoinWarmStartBasis *&basis,
44  int &currentNumberCuts) const ;
45 
47  virtual int applyBounds(int iColumn, double & lower, double & upper, int force) ;
52  virtual CbcNodeInfo * buildRowBasis(CoinWarmStartBasis & basis ) const ;
53  // Default Constructor
55 
56  // Constructor from current state
58  int numberChangedBounds, const int * variables,
59  const double * boundChanges,
60  const CoinWarmStartDiff *basisDiff) ;
61 
62  // Copy constructor
64 
65  // Destructor
67 
69  virtual CbcNodeInfo * clone() const;
71  inline const CoinWarmStartDiff *basisDiff() const {
72  return basisDiff_ ;
73  }
75  inline const int * variables() const {
76  return variables_;
77  }
78  // New bound
79  inline const double * newBounds() const {
80  return newBounds_;
81  }
83  inline int numberChangedBounds() const {
84  return numberChangedBounds_;
85  }
86 protected:
87  /* Data values */
88 
90  CoinWarmStartDiff *basisDiff_ ;
92  int * variables_;
93  // New bound
94  double * newBounds_;
97 private:
98 
101 };
102 
103 #endif //CbcPartialNodeInfo_H
104