Skip to content

Commit ed4fd9f

Browse files
committed
tidy up logic
1 parent b25d4ad commit ed4fd9f

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

highs/mip/HighsCliqueTable.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1105,15 +1105,14 @@ void HighsCliqueTable::extractCliquesFromCut(const HighsMipSolver& mipsolver,
11051105
}
11061106
}
11071107

1108-
HighsCDouble rhsminactdiff = rhs - minact;
1109-
if (rhsminactdiff < 0.0) {
1110-
rhsminactdiff = 0.0;
1108+
if (rhs - minact < 0.0) {
1109+
minact = rhs;
11111110
}
11121111

11131112
for (HighsInt i = 0; i != len; ++i) {
11141113
if (mipsolver.variableType(inds[i]) == HighsVarType::kContinuous) continue;
11151114

1116-
double boundVal = double(rhsminactdiff / vals[i]);
1115+
double boundVal = double((rhs - minact) / vals[i]);
11171116
if (vals[i] > 0) {
11181117
boundVal = std::floor(boundVal + globaldom.col_lower_[inds[i]] +
11191118
globaldom.feastol());
@@ -1147,7 +1146,7 @@ void HighsCliqueTable::extractCliquesFromCut(const HighsMipSolver& mipsolver,
11471146
if (nbin < len) {
11481147
for (HighsInt i = 0; i != nbin; ++i) {
11491148
HighsInt bincol = inds[perm[i]];
1150-
HighsCDouble impliedActivity = rhsminactdiff - std::abs(vals[perm[i]]);
1149+
HighsCDouble impliedActivity = rhs - minact - std::abs(vals[perm[i]]);
11511150
for (HighsInt j = nbin; j != len; ++j) {
11521151
HighsInt col = inds[perm[j]];
11531152
if (globaldom.isFixed(col)) continue;
@@ -1221,7 +1220,7 @@ void HighsCliqueTable::extractCliquesFromCut(const HighsMipSolver& mipsolver,
12211220
});
12221221
// check if any cliques exists
12231222
if (std::abs(vals[perm[0]]) + std::abs(vals[perm[1]]) <=
1224-
double(rhsminactdiff + feastol))
1223+
double(rhs - minact + feastol))
12251224
return;
12261225

12271226
HighsInt maxNewEntries =
@@ -1231,7 +1230,7 @@ void HighsCliqueTable::extractCliquesFromCut(const HighsMipSolver& mipsolver,
12311230

12321231
for (HighsInt k = nbin - 1; k != 0 && numEntries < maxNewEntries; --k) {
12331232
double mincliqueval =
1234-
double(rhsminactdiff - std::abs(vals[perm[k]]) + feastol);
1233+
double(rhs - minact - std::abs(vals[perm[k]]) + feastol);
12351234
auto cliqueend = std::partition_point(
12361235
perm.begin(), perm.begin() + k,
12371236
[&](HighsInt p) { return std::abs(vals[p]) > mincliqueval; });

0 commit comments

Comments
 (0)