| 80 | } |
| 81 | |
| 82 | bool optionSolverOk(const HighsLogOptions& report_log_options, |
| 83 | const string& value) { |
| 84 | if (value == kHighsChooseString || value == kSimplexString || |
| 85 | value == kIpmString || |
| 86 | (value == kHipoString && |
| 87 | HighsExternalApi::isAvailable<HighsExtras::hipo>()) || |
| 88 | value == kIpxString || value == kPdlpString || value == kQpAsmString || |
| 89 | value == kHiPdlpString) |
| 90 | return true; |
| 91 | else if (value == kHipoString && |
| 92 | !HighsExternalApi::isAvailable<HighsExtras::hipo>()) { |
| 93 | HighsExternalApi::logUnavailable<HighsExtras::hipo>( |
| 94 | report_log_options, HighsLogType::kError, |
| 95 | "The HiPO solver was requested via the \"%s\" option.", |
| 96 | kSolverString.c_str()); |
| 97 | return false; |
| 98 | } else { |
| 99 | highsLogUser(report_log_options, HighsLogType::kWarning, |
| 100 | "Value \"%s\" for LP solver option (\"%s\") is not one of " |
| 101 | "%s\"%s\", \"%s\", \"%s\", \"%s\" or \"%s\"\n", |
| 102 | value.c_str(), kSolverString.c_str(), |
| 103 | HighsExternalApi::isAvailable<HighsExtras::hipo>() |
| 104 | ? (kHipoString + "\", \"").c_str() |
| 105 | : "", |
| 106 | kHighsChooseString.c_str(), kSimplexString.c_str(), |
| 107 | kIpmString.c_str(), kIpxString.c_str(), kPdlpString.c_str(), |
| 108 | kQpAsmString.c_str(), kHiPdlpString.c_str()); |
| 109 | return false; |
| 110 | } |
| 111 | } |
| 112 | |
| 113 | bool optionMipLpSolverOk(const HighsLogOptions& report_log_options, |
| 114 | const string& value) { |
no test coverage detected