Go to the documentation of this file.
6 #ifndef CbcCountRowCut_H
7 #define CbcCountRowCut_H
77 return numberPointingToThis_;
83 return whichCutGenerator_;
87 bool canDropCut(
const OsiSolverInterface *solver,
int row)
const;
89 #ifdef CHECK_CUT_COUNTS
109 int numberPointingToThis_;
117 int whichCutGenerator_;
134 CbcRowCuts(
int initialMaxSize = 0,
int hashMultiplier = 4);
138 inline OsiRowCut2 *
cut(
int sequence)
const
140 return rowCut_[sequence];
152 return rowCut_[sequence];
165 OsiRowCut2 **rowCut_;
CbcRowCuts & operator=(const CbcRowCuts &rhs)
virtual ~CbcCountRowCut()
Destructor.
int whichCutGenerator() const
Which generator for cuts - as user order.
OsiRowCut augmented with bookkeeping.
void increment(int change=1)
Increment the number of references.
OsiRowCut2 * cut(int sequence) const
int numberPointingToThis()
Number of other CbcNodeInfo objects pointing to this row cut.
int addCutIfNotDuplicate(const OsiRowCut &cut, int whichType=0)
CbcCountRowCut()
Default Constructor.
CbcRowCuts(int initialMaxSize=0, int hashMultiplier=4)
int addCutIfNotDuplicateWhenGreedy(const OsiRowCut &cut, int whichType=0)
int decrement(int change=1)
Decrement the number of references and return the number left.
Information required to recreate the subproblem at this node.
Really for Conflict cuts to - a) stop duplicates b) allow half baked cuts The whichRow_ field in OsiR...
bool canDropCut(const OsiSolverInterface *solver, int row) const
Returns true if can drop cut if slack basic.
void truncate(int numberAfter)
void setInfo(CbcNodeInfo *, int whichOne)
Set the information associating this cut with a node.
void addCuts(OsiCuts &cs)
OsiRowCut * rowCutPtr(int sequence)
void eraseRowCut(int sequence)