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.
std::vector< OsiColCut * > OsiVectorColCutPtr
Vector of OsiColCut pointers.
iterator begin()
Get iterator to beginning of collection.
OsiCut * operator*() const
bool operator<(const const_iterator &it) const
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.
OsiRowCut * rowCutPtr(int i)
Get pointer to i'th row cut.
void eraseColCut(int i)
Remove i'th column cut from collection.
Collections of row cuts and column cuts.
int sizeRowCuts() const
Number of row cuts in collection.
const_iterator end() const
Get const iterator to end of collection.
OsiColCut * colCutPtr(int i)
Get pointer to i'th column cut.
int sizeColCuts() const
Number of column cuts in collection.
bool operator==(const const_iterator &it) const
const_iterator begin() const
Get const iterator to beginning of collection.
int sizeCuts() const
Number of cuts in collection.
bool operator==(const iterator &it) const
virtual OsiRowCut * clone() const
Clone.
friend void OsiCutsUnitTest()
A function that tests the methods in the OsiCuts class.
iterator & operator=(const iterator &rhs)
bool operator<(const iterator &it) const
virtual void print() const
Print cuts in collection.
OsiRowCut & rowCut(int i)
Get reference to i'th row cut.
void eraseRowCut(int i)
Remove i'th row cut from collection.
const OsiCut * operator*() const
void eraseAndDumpCuts(const std::vector< int > to_erase)
Selective delete and clear for row cuts.
bool operator!=(const const_iterator &it) const
void insert(const OsiRowCut &rc)
Insert a row cut.
void printCuts() const
Print cuts in collection.
virtual void print() const
Print cuts in collection.
void gutsOfCopy(const OsiCuts &source)
Copy internal data.
std::bidirectional_iterator_tag iterator_category
const OsiCut * mostEffectiveCutPtr() const
Get const pointer to the most effective cut.
OsiColCut & colCut(int i)
Get reference to i'th column cut.
double effectiveness() const
Get effectiveness.
void sort()
Cuts with greatest effectiveness are first.
bool operator!=(const iterator &it) const
iterator end()
Get iterator to end of collection.
OsiVectorRowCutPtr rowCutPtrs_
Vector of row cuts pointers.
bool operator()(const OsiCut *c1P, const OsiCut *c2P)
Function for sorting cuts by effectiveness.
virtual OsiColCut * clone() const
Clone.