| 111 | } |
| 112 | |
| 113 | bool optionMipLpSolverOk(const HighsLogOptions& report_log_options, |
| 114 | const string& value) { |
| 115 | if (value == kHighsChooseString || value == kSimplexString || |
| 116 | value == kIpmString || |
| 117 | (value == kHipoString && |
| 118 | HighsExternalApi::isAvailable<HighsExtras::hipo>()) || |
| 119 | value == kIpxString) |
| 120 | return true; |
| 121 | else if (value == kHipoString && |
| 122 | !HighsExternalApi::isAvailable<HighsExtras::hipo>()) { |
| 123 | HighsExternalApi::logUnavailable<HighsExtras::hipo>( |
| 124 | report_log_options, HighsLogType::kError, |
| 125 | "The HiPO solver was requested via the \"%s\" option.", |
| 126 | kMipLpSolverString.c_str()); |
| 127 | return false; |
| 128 | } else { |
| 129 | highsLogUser(report_log_options, HighsLogType::kError, |
| 130 | "Value \"%s\" for MIP LP solver option (\"%s\") is not one of " |
| 131 | "%s\"%s\", \"%s\", \"%s\" or \"%s\"\n", |
| 132 | value.c_str(), kMipLpSolverString.c_str(), |
| 133 | HighsExternalApi::isAvailable<HighsExtras::hipo>() |
| 134 | ? (kHipoString + "\", \"").c_str() |
| 135 | : "", |
| 136 | kHighsChooseString.c_str(), kSimplexString.c_str(), |
| 137 | kIpmString.c_str(), kIpxString.c_str()); |
| 138 | return false; |
| 139 | } |
| 140 | } |
| 141 | |
| 142 | bool optionMipIpmSolverOk(const HighsLogOptions& report_log_options, |
| 143 | const string& value) { |
no test coverage detected