8 #include "CoinPragma.hpp" 15 #include "CoinFloatEqual.hpp" 52 return !((*this)==it);
104 return !((*this)==it);
310 rowCutPtrs_.push_back(static_cast<OsiRowCut*>(newCutPtr));
316 colCutPtrs_.push_back(static_cast<OsiColCut*>(newCutPtr));
333 if ( rcPtr != NULL ) {
339 assert( ccPtr != NULL );
353 assert (rCut || cCut);
409 double maxEff = COIN_DBL_MIN;
411 if (maxEff < (*it)->effectiveness() ) {
428 for (i=0;i<numberColCuts;i++) {
433 for (i=0;i<numberRowCuts;i++) {
467 for (
unsigned i=0; i<to_erase.size(); i++) {
void gutsOfDestructor()
Delete internal data.
OsiVectorColCutPtr colCutPtrs_
Vector of column cuts pointers.
const_iterator operator++(int)
std::vector< OsiRowCut * > OsiVectorRowCutPtr
Vector of OsiRowCut pointers.
void dumpCuts()
Clear all row cuts without deleting them.
virtual ~OsiCuts()
Destructor.
virtual OsiColCut * clone() const
Clone.
std::vector< OsiColCut * > OsiVectorColCutPtr
Vector of OsiColCut pointers.
iterator begin()
Get iterator to beginning of collection.
OsiRowCut * rowCutPtrAndZap(int i)
Get pointer to i'th row cut and remove ptr from collection.
void insertIfNotDuplicate(OsiRowCut &rc, CoinAbsFltEq treatAsSame=CoinAbsFltEq(1.0e-12))
Insert a row cut unless it is a duplicate - cut may get sorted.
double effectiveness() const
Get effectiveness.
OsiRowCut * rowCutPtr(int i)
Get pointer to i'th row cut.
const_iterator begin() const
Get const iterator to beginning of collection.
void eraseColCut(int i)
Remove i'th column cut from collection.
OsiCut * operator*() const
Collections of row cuts and column cuts.
virtual OsiRowCut * clone() const
Clone.
virtual void print() const
Print cuts in collection.
virtual void print() const
Print cuts in collection.
bool operator<(const const_iterator &it) const
const_iterator end() const
Get const iterator to end of collection.
OsiColCut * colCutPtr(int i)
Get pointer to i'th column cut.
const OsiCut * mostEffectiveCutPtr() const
Get const pointer to the most effective cut.
const OsiCut * operator*() const
bool operator!=(const iterator &it) const
friend void OsiCutsUnitTest()
A function that tests the methods in the OsiCuts class.
iterator & operator=(const iterator &rhs)
OsiRowCut & rowCut(int i)
Get reference to i'th row cut.
void eraseRowCut(int i)
Remove i'th row cut from collection.
bool operator!=(const const_iterator &it) const
bool operator==(const const_iterator &it) const
void printCuts() const
Print cuts in collection.
void eraseAndDumpCuts(const std::vector< int > to_erase)
Selective delete and clear for row cuts.
void insert(const OsiRowCut &rc)
Insert a row cut.
int sizeCuts() const
Number of cuts in collection.
void gutsOfCopy(const OsiCuts &source)
Copy internal data.
std::bidirectional_iterator_tag iterator_category
OsiColCut & colCut(int i)
Get reference to i'th column cut.
void sort()
Cuts with greatest effectiveness are first.
bool operator<(const iterator &it) const
iterator end()
Get iterator to end of collection.
bool operator==(const iterator &it) const
OsiVectorRowCutPtr rowCutPtrs_
Vector of row cuts pointers.
int sizeRowCuts() const
Number of row cuts in collection.
bool operator()(const OsiCut *c1P, const OsiCut *c2P)
Function for sorting cuts by effectiveness.
int sizeColCuts() const
Number of column cuts in collection.