16 #ifndef DECOMP_CUTOSI_HPP 17 #define DECOMP_CUTOSI_HPP 22 #include "OsiRowCut.hpp" 46 char sense(
double infinity)
const {
47 double lb_ = m_osiCut.lb();
48 double ub_ = m_osiCut.ub();
52 }
else if ( lb_ == -infinity && ub_ == infinity ) {
54 }
else if ( lb_ == -infinity ) {
56 }
else if ( ub_ == infinity ) {
63 double rhs(
double infinity)
const {
64 double lb_ = m_osiCut.lb();
65 double ub_ = m_osiCut.ub();
69 }
else if ( lb_ == -infinity && ub_ == infinity ) {
71 }
else if ( lb_ == -infinity ) {
73 }
else if ( ub_ == infinity ) {
83 m_osiCut.row().getIndices(),
84 m_osiCut.row().getElements(),
113 row->setVector(m_osiCut.row().getNumElements(),
114 m_osiCut.row().getIndices(),
115 m_osiCut.row().getElements(),
121 void print(std::ostream* os = &std::cout)
const {
124 const int* ind = m_osiCut.row().getIndices();
125 const double* els = m_osiCut.row().getElements();
127 for (
int i = 0; i < m_osiCut.row().getNumElements(); i++) {
128 (*os) <<
" + " << els[i] <<
" x[" << ind[i] <<
"]";
132 (*os) <<
" lb: -INF";
void setStringHash(double infinity)
double getUpperBound() const
void print(std::ostream *os=&std::cout) const
void expandCutToRow(CoinPackedVector *row)
double getLowerBound() const
string UtilCreateStringHash(const int len, const double *els, const int precision=6)
void setUpperBound(const double ub)
char sense(double infinity) const
void setLowerBound(const double lb)
double rhs(double infinity) const
#define DECOMP_TEST_DUPINDEX
DecompCutOsi(OsiRowCut &osiCut)
double getViolation() const
void setStringHash(CoinPackedVector *row, double infinity)