| 176 | } |
| 177 | |
| 178 | void debugReportHighsSolution(const string message, |
| 179 | const HighsLogOptions& log_options, |
| 180 | const HighsInfo& highs_info, |
| 181 | const HighsModelStatus model_status) { |
| 182 | highsLogDev(log_options, HighsLogType::kInfo, "\nHiGHS solution: %s\n", |
| 183 | message.c_str()); |
| 184 | if (highs_info.num_primal_infeasibilities >= 0 || |
| 185 | highs_info.num_dual_infeasibilities >= 0) { |
| 186 | highsLogDev(log_options, HighsLogType::kInfo, "Infeas: "); |
| 187 | } |
| 188 | if (highs_info.num_primal_infeasibilities >= 0) { |
| 189 | highsLogDev(log_options, HighsLogType::kInfo, |
| 190 | "Pr %" HIGHSINT_FORMAT "(Max %.4g, Sum %.4g); ", |
| 191 | highs_info.num_primal_infeasibilities, |
| 192 | highs_info.max_primal_infeasibility, |
| 193 | highs_info.sum_primal_infeasibilities); |
| 194 | } |
| 195 | if (highs_info.num_dual_infeasibilities >= 0) { |
| 196 | highsLogDev(log_options, HighsLogType::kInfo, |
| 197 | "Du %" HIGHSINT_FORMAT "(Max %.4g, Sum %.4g); ", |
| 198 | highs_info.num_dual_infeasibilities, |
| 199 | highs_info.max_dual_infeasibility, |
| 200 | highs_info.sum_dual_infeasibilities); |
| 201 | } |
| 202 | highsLogDev(log_options, HighsLogType::kInfo, "Status: %s\n", |
| 203 | utilModelStatusToString(model_status).c_str()); |
| 204 | } |
| 205 | |
| 206 | HighsDebugStatus debugHighsBasisConsistent(const HighsOptions& options, |
| 207 | const HighsLp& lp, |
no test coverage detected