| 23 | using std::min; |
| 24 | |
| 25 | void debugReportRankDeficiency( |
| 26 | const HighsInt call_id, const HighsInt highs_debug_level, |
| 27 | const HighsLogOptions& log_options, const HighsInt num_row, |
| 28 | const vector<HighsInt>& permute, const vector<HighsInt>& iwork, |
| 29 | const HighsInt* basic_index, const HighsInt rank_deficiency, |
| 30 | const vector<HighsInt>& row_with_no_pivot, |
| 31 | const vector<HighsInt>& col_with_no_pivot) { |
| 32 | if (highs_debug_level == kHighsDebugLevelNone) return; |
| 33 | if (call_id == 0) { |
| 34 | if (num_row > 123) return; |
| 35 | highsLogDev(log_options, HighsLogType::kWarning, "buildRankDeficiency0:"); |
| 36 | highsLogDev(log_options, HighsLogType::kWarning, "\nIndex "); |
| 37 | for (HighsInt i = 0; i < num_row; i++) |
| 38 | highsLogDev(log_options, HighsLogType::kWarning, " %2" HIGHSINT_FORMAT "", |
| 39 | i); |
| 40 | highsLogDev(log_options, HighsLogType::kWarning, "\nPerm "); |
| 41 | for (HighsInt i = 0; i < num_row; i++) |
| 42 | highsLogDev(log_options, HighsLogType::kWarning, " %2" HIGHSINT_FORMAT "", |
| 43 | permute[i]); |
| 44 | highsLogDev(log_options, HighsLogType::kWarning, "\nIwork "); |
| 45 | for (HighsInt i = 0; i < num_row; i++) |
| 46 | highsLogDev(log_options, HighsLogType::kWarning, " %2" HIGHSINT_FORMAT "", |
| 47 | iwork[i]); |
| 48 | highsLogDev(log_options, HighsLogType::kWarning, "\nBaseI "); |
| 49 | for (HighsInt i = 0; i < num_row; i++) |
| 50 | highsLogDev(log_options, HighsLogType::kWarning, " %2" HIGHSINT_FORMAT "", |
| 51 | basic_index[i]); |
| 52 | highsLogDev(log_options, HighsLogType::kWarning, "\n"); |
| 53 | } else if (call_id == 1) { |
| 54 | if (rank_deficiency > 100) return; |
| 55 | highsLogDev(log_options, HighsLogType::kWarning, "buildRankDeficiency1:"); |
| 56 | highsLogDev(log_options, HighsLogType::kWarning, "\nIndex "); |
| 57 | for (HighsInt i = 0; i < rank_deficiency; i++) |
| 58 | highsLogDev(log_options, HighsLogType::kWarning, " %2" HIGHSINT_FORMAT "", |
| 59 | i); |
| 60 | highsLogDev(log_options, HighsLogType::kWarning, "\nrow_with_no_pivot "); |
| 61 | for (HighsInt i = 0; i < rank_deficiency; i++) |
| 62 | highsLogDev(log_options, HighsLogType::kWarning, " %2" HIGHSINT_FORMAT "", |
| 63 | row_with_no_pivot[i]); |
| 64 | highsLogDev(log_options, HighsLogType::kWarning, "\ncol_with_no_pivot "); |
| 65 | for (HighsInt i = 0; i < rank_deficiency; i++) |
| 66 | highsLogDev(log_options, HighsLogType::kWarning, " %2" HIGHSINT_FORMAT "", |
| 67 | col_with_no_pivot[i]); |
| 68 | highsLogDev(log_options, HighsLogType::kWarning, "\n"); |
| 69 | if (num_row > 123) return; |
| 70 | highsLogDev(log_options, HighsLogType::kWarning, "Index "); |
| 71 | for (HighsInt i = 0; i < num_row; i++) |
| 72 | highsLogDev(log_options, HighsLogType::kWarning, " %2" HIGHSINT_FORMAT "", |
| 73 | i); |
| 74 | highsLogDev(log_options, HighsLogType::kWarning, "\nIwork "); |
| 75 | for (HighsInt i = 0; i < num_row; i++) |
| 76 | highsLogDev(log_options, HighsLogType::kWarning, " %2" HIGHSINT_FORMAT "", |
| 77 | iwork[i]); |
| 78 | highsLogDev(log_options, HighsLogType::kWarning, "\n"); |
| 79 | } else if (call_id == 2) { |
| 80 | if (num_row > 123) return; |
| 81 | highsLogDev(log_options, HighsLogType::kWarning, "buildRankDeficiency2:"); |
| 82 | highsLogDev(log_options, HighsLogType::kWarning, "\nIndex "); |
no test coverage detected