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;
65 int insertAll(OsiCuts & cs, CoinRelFltEq& eq);
74 const OsiRowCut *
rowCut(
unsigned int i)
const
88 cuts_.resize(i,
static_cast<OsiRowCut *
> (NULL));
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
std::vector< OsiRowCut * > cuts_
Store the cuts by index of the generating simple disjunction.
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.
int numberCuts_
Stores the number of cuts.
Performs one round of Lift & Project using CglLandPSimplex to build cuts.