@@ -3902,12 +3902,15 @@ HPresolve::Result HPresolve::rowPresolve(HighsPostsolveStack& postsolve_stack,
39023902 } else if (model->row_lower_ [row] == -kHighsInf ||
39033903 model->row_upper_ [row] == kHighsInf ) {
39043904 // Chvatal-Gomory strengthening
3905+ // See section 3.4 "Chvatal-Gomory strengthening of inequalities",
3906+ // Achterberg et al., Presolve Reductions in Mixed Integer
3907+ // Programming, INFORMS Journal on Computing 32(2):473-506.
39053908 std::vector<double > roundedRowCoefs;
39063909 roundedRowCoefs.resize (rowsize[row]);
39073910 std::set<double > scalars;
39083911
3909- // lambda for reformulating row to only contain variables with a lower
3910- // bound of zero (if possible)
3912+ // lambda for reformulating row to only contain variables with lower
3913+ // bounds of zero (if possible)
39113914 auto complementOrShift = [&](HighsInt direction, HighsCDouble& rhs,
39123915 double & minAbsCoef, double & maxAbsCoef) {
39133916 minAbsCoef = kHighsInf ;
@@ -3942,7 +3945,7 @@ HPresolve::Result HPresolve::rowPresolve(HighsPostsolveStack& postsolve_stack,
39423945 HighsInt col = rowIndex[i];
39433946 double val = direction * rowCoefs[i];
39443947 if (val < 0.0 && model->col_upper_ [col] != kHighsInf ) {
3945- // un-complement
3948+ // uncomplement
39463949 roundedRowCoefs[i] = -roundedRowCoefs[i];
39473950 roundedRhs += roundedRowCoefs[i] *
39483951 static_cast <HighsCDouble>(model->col_upper_ [col]);
0 commit comments