21 if (!(cutgen_ -> enableLpImpliedBounds ()))
25 ncols = T::getNumCols (),
29 *oldLower =
new double [ncols],
30 *oldUpper =
new double [ncols];
32 CoinCopyN (T::getColLower (), ncols, oldLower);
33 CoinCopyN (T::getColUpper (), ncols, oldUpper);
43 nTightened = tightenBoundsCLP (lightweight);
62 *newLower = T::getColLower (),
63 *newUpper = T::getColUpper ();
67 for (
int i=0; i<ncols; i++) {
72 cutgen_ -> Problem () -> domain () -> push (ncols, NULL, newLower, newUpper);
74 if (!(cutgen_ -> Problem () -> btCore (chgd)))
80 *newerLower = cutgen_ -> Problem () -> Lb (),
81 *newerUpper = cutgen_ -> Problem () -> Ub ();
83 for (
int i=0; i<ncols; i++) {
86 T::setColLower (i, newerLower [i]);
87 if (newLower [i] < oldLower [i] +
COUENNE_EPS) nTightened++;
91 T::setColUpper (i, newerUpper [i]);
92 if (newUpper [i] > oldUpper [i] -
COUENNE_EPS) nTightened++;
108 cutgen_ -> Problem () -> domain () -> pop ();
status of lower/upper bound of a variable, to be checked/modified in bound tightening ...
void setLower(ChangeStatus lower)
void setUpper(ChangeStatus upper)
virtual int tightenBounds(int lightweight)
Tighten bounds on all variables (including continuous).