Skip to content

Commit 4e44e0f

Browse files
committed
Use tolerance when rounding
1 parent 1ef2295 commit 4e44e0f

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

highs/lp_data/HighsInterface.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3478,8 +3478,9 @@ bool Highs::infeasibleBoundsOk() {
34783478
if (perform_inward_integer_rounding &&
34793479
lp.integrality_[iCol] == HighsVarType::kInteger) {
34803480
// Assess bounds after inward integer rounding
3481-
double integer_lower = std::ceil(lower);
3482-
double integer_upper = std::floor(upper);
3481+
double feastol = this->options_.mip_feasibility_tolerance;
3482+
double integer_lower = std::ceil(lower - feastol);
3483+
double integer_upper = std::floor(upper + feastol);
34833484
assert(integer_lower >= lower);
34843485
assert(integer_upper <= upper);
34853486
performed_inward_integer_rounding =

highs/mip/HighsFeasibilityJump.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ HighsModelStatus HighsMipSolverData::feasibilityJump() {
4646
fjVarType = external_feasibilityjump::VarType::Continuous;
4747
} else {
4848
fjVarType = external_feasibilityjump::VarType::Integer;
49-
lower = std::ceil(lower);
50-
upper = std::floor(upper);
49+
lower = std::ceil(lower - feastol);
50+
upper = std::floor(upper + feastol);
5151
}
5252

5353
const bool legal_bounds = lower <= upper && lower < kHighsInf &&

0 commit comments

Comments
 (0)