Go to the documentation of this file.
12 #ifndef CglLandPUtils_H
13 #define CglLandPUtils_H
25 double normCoef(TabRow &row,
int ncols,
const int * nonBasics);
29 void scale(OsiRowCut &
cut,
double norma);
37 if (alpha_i>0)
return alpha_i* (1 - beta);
38 else return -alpha_i * beta;
44 double f_i = alpha - floor(alpha);
52 inline bool int_val(
double value,
double tol)
54 return fabs( floor( value + 0.5 ) - value ) < tol;
61 Cuts(): numberCuts_(0), cuts_(0)
65 int insertAll(OsiCuts & cs, CoinRelFltEq& eq);
74 const OsiRowCut *
rowCut(
unsigned int i)
const
88 cuts_.resize(i, reinterpret_cast<OsiRowCut *> (NULL));
94 std::vector<OsiRowCut *> cuts_;
int numberCuts()
Access to number of cuts.
double intersectionCutCoef(double alpha_i, double beta)
return the coefficients of the intersection cut
void scale(OsiRowCut &cut)
scale the cut passed as argument
void modularizeRow(TabRow &row, const bool *integerVar)
Modularize row.
void insert(int i, OsiRowCut *cut)
insert a cut for variable i and count number of cuts.
double modularizedCoef(double alpha, double beta)
compute the modularized row coefficient for an integer variable
bool int_val(double value, double tol)
Says is value is integer.
double normCoef(TabRow &row, int ncols, const int *nonBasics)
Compute $ \frac{\sum\limits_{j=1}^n | \overline a_{ij} |}{1 - \overline a_{i0}} $ for row passed as a...
int insertAll(OsiCuts &cs, CoinRelFltEq &eq)
Puts all the cuts into an OsiCuts.
const OsiRowCut * rowCut(unsigned int i) const
const access to row cut indexed by i
OsiRowCut * rowCut(unsigned int i)
Access to row cut indexed by i.
To store extra cuts generated by columns from which they origin.
void resize(unsigned int i)
resize vector.
Performs one round of Lift & Project using CglLandPSimplex to build cuts.