diff --git a/src/lp_data/HighsSolution.cpp b/src/lp_data/HighsSolution.cpp index 11812ff14c..c6c14dc284 100644 --- a/src/lp_data/HighsSolution.cpp +++ b/src/lp_data/HighsSolution.cpp @@ -766,6 +766,9 @@ HighsStatus ipxSolutionToHighsSolution( double primal_truncation = 0; double dual_infeasibility = 0; double residual = std::fabs(std::max(lower - value, value - upper)); + double var_range = upper - lower; + double residual_rate = residual/var_range; + residual = std::max(residual, residual_rate); double new_value = value; double new_dual = dual; const bool at_lower = value <= lower + primal_feasibility_tolerance;