@@ -2773,6 +2773,10 @@ void HEkkPrimal::getBasicPrimalInfeasibility() {
27732773 max_primal_infeasibility = 0 ;
27742774 sum_primal_infeasibility = 0 ;
27752775
2776+ // #2643
2777+ HighsInt debug_num_primal_infeasibility = 0 ;
2778+ double debug_max_primal_infeasibility = 0 ;
2779+ double debug_sum_primal_infeasibility = 0 ;
27762780 for (HighsInt iRow = 0 ; iRow < num_row; iRow++) {
27772781 double value = info.baseValue_ [iRow];
27782782 double lower = info.baseLower_ [iRow];
@@ -2791,6 +2795,19 @@ void HEkkPrimal::getBasicPrimalInfeasibility() {
27912795 std::max (primal_infeasibility, max_primal_infeasibility);
27922796 sum_primal_infeasibility += primal_infeasibility;
27932797 }
2798+ double debug_primal_infeasibility = 0 ;
2799+ if (value < lower) {
2800+ debug_primal_infeasibility = lower - value;
2801+ } else if (value > upper) {
2802+ debug_primal_infeasibility = value - upper;
2803+ }
2804+ if (debug_primal_infeasibility > 0 ) {
2805+ if (debug_primal_infeasibility > primal_feasibility_tolerance)
2806+ debug_num_primal_infeasibility++;
2807+ debug_max_primal_infeasibility =
2808+ std::max (debug_primal_infeasibility, debug_max_primal_infeasibility);
2809+ debug_sum_primal_infeasibility += debug_primal_infeasibility;
2810+ }
27942811 }
27952812 if (updated_num_primal_infeasibility >= 0 ) {
27962813 // The number of primal infeasibilities should be correct
0 commit comments