@@ -3276,10 +3276,12 @@ HPresolve::Result HPresolve::rowPresolve(HighsPostsolveStack& postsolve_stack,
32763276 model->col_upper_ [col] != model->col_lower_ [col] + 1.0 )
32773277 continue ;
32783278
3279- // compute offset
3280- HighsCDouble offset =
3281- std::abs (val) * (static_cast <HighsCDouble>(model->col_upper_ [col]) -
3282- static_cast <HighsCDouble>(model->col_lower_ [col]));
3279+ // lambda for computing offset
3280+ auto computeOffset = [&](HighsInt col, double val) {
3281+ return std::abs (val) *
3282+ (static_cast <HighsCDouble>(model->col_upper_ [col]) -
3283+ static_cast <HighsCDouble>(model->col_lower_ [col]));
3284+ };
32833285
32843286 auto degree1Tests = [&](HighsInt col, double val, HighsInt direction,
32853287 double rowActivityBound, double rowBound) {
@@ -3297,12 +3299,14 @@ HPresolve::Result HPresolve::rowPresolve(HighsPostsolveStack& postsolve_stack,
32973299 };
32983300
32993301 // perform tests
3300- if (!degree1Tests (col, val, HighsInt{1 },
3301- impliedRowBounds.getSumUpperOrig (row, -offset),
3302- model->row_lower_ [row]))
3303- degree1Tests (col, val, HighsInt{-1 },
3304- impliedRowBounds.getSumLowerOrig (row, offset),
3305- model->row_upper_ [row]);
3302+ degree1Tests (
3303+ col, val, HighsInt{1 },
3304+ impliedRowBounds.getSumUpperOrig (row, -computeOffset (col, val)),
3305+ model->row_lower_ [row]);
3306+ degree1Tests (
3307+ col, val, HighsInt{-1 },
3308+ impliedRowBounds.getSumLowerOrig (row, computeOffset (col, val)),
3309+ model->row_upper_ [row]);
33063310 }
33073311 }
33083312
0 commit comments