Merge branch 'feature/xpress_only_RTE' into feature/change_SetStartingLpBasis

This commit is contained in:
Andrea Sgattoni
2023-11-16 14:52:11 +01:00
4 changed files with 11 additions and 16 deletions

View File

@@ -1895,16 +1895,10 @@ MPSolver::ResultStatus XpressInterface::Solve(MPSolverParameters const& param) {
int xpress_stat = 0;
if (mMip) {
if (this->maximize_)
status = XPRSmaxim(mLp, "g");
else
status = XPRSminim(mLp, "g");
status = XPRSmipoptimize(mLp,"");
XPRSgetintattrib(mLp, XPRS_MIPSTATUS, &xpress_stat);
} else {
if (this->maximize_)
status = XPRSmaxim(mLp, "");
else
status = XPRSminim(mLp, "");
status = XPRSlpoptimize(mLp,"");
XPRSgetintattrib(mLp, XPRS_LPSTATUS, &xpress_stat);
}

View File

@@ -92,8 +92,8 @@ std::function<int(XPRSprob prob, int nrows, const int rowind[], const char rowty
std::function<int(XPRSprob prob, void (XPRS_CC *f_intsol)(XPRSprob cbprob, void* cbdata), void* p, int priority)> XPRSaddcbintsol = nullptr;
std::function<int(XPRSprob prob, void (XPRS_CC *f_intsol)(XPRSprob cbprob, void* cbdata), void* p)> XPRSremovecbintsol = nullptr;
std::function<int(XPRSprob prob, void (XPRS_CC *f_message)(XPRSprob cbprob, void* cbdata, const char* msg, int msglen, int msgtype), void* p, int priority)> XPRSaddcbmessage = nullptr;
std::function<int(XPRSprob prob, const char* flags)> XPRSminim = nullptr;
std::function<int(XPRSprob prob, const char* flags)> XPRSmaxim = nullptr;
std::function<int(XPRSprob prob, const char* flags)> XPRSlpoptimize = nullptr;
std::function<int(XPRSprob prob, const char* flags)> XPRSmipoptimize = nullptr;
absl::Status LoadXpressFunctions(DynamicLibrary* xpress_dynamic_library) {
// This was generated with the parse_header_xpress.py script.
@@ -156,8 +156,9 @@ absl::Status LoadXpressFunctions(DynamicLibrary* xpress_dynamic_library) {
xpress_dynamic_library->GetFunction(&XPRSaddcbintsol, "XPRSaddcbintsol");
xpress_dynamic_library->GetFunction(&XPRSremovecbintsol, "XPRSremovecbintsol");
xpress_dynamic_library->GetFunction(&XPRSaddcbmessage, "XPRSaddcbmessage");
xpress_dynamic_library->GetFunction(&XPRSminim, "XPRSminim");
xpress_dynamic_library->GetFunction(&XPRSmaxim, "XPRSmaxim");
xpress_dynamic_library->GetFunction(&XPRSlpoptimize, "XPRSlpoptimize");
xpress_dynamic_library->GetFunction(&XPRSmipoptimize, "XPRSmipoptimize");
auto notFound = xpress_dynamic_library->FunctionsNotFound();
if (!notFound.empty()) {

View File

@@ -491,8 +491,8 @@ extern std::function<int(XPRSprob prob, int nrows, const int rowind[], const cha
extern std::function<int(XPRSprob prob, void (XPRS_CC *f_intsol)(XPRSprob cbprob, void* cbdata), void* p, int priority)> XPRSaddcbintsol;
extern std::function<int(XPRSprob prob, void (XPRS_CC *f_intsol)(XPRSprob cbprob, void* cbdata), void* p)> XPRSremovecbintsol;
extern std::function<int(XPRSprob prob, void (XPRS_CC *f_message)(XPRSprob cbprob, void* cbdata, const char* msg, int msglen, int msgtype), void* p, int priority)> XPRSaddcbmessage;
extern std::function<int(XPRSprob prob, const char* flags)> XPRSminim;
extern std::function<int(XPRSprob prob, const char* flags)> XPRSmaxim;
extern std::function<int(XPRSprob prob, const char* flags)> XPRSlpoptimize;
extern std::function<int(XPRSprob prob, const char* flags)> XPRSmipoptimize;
} // namespace operations_research

View File

@@ -112,8 +112,8 @@ class XpressHeaderParser(object):
"XPRSwriteprob", "XPRSgetrowtype", "XPRSgetcoltype", "XPRSgetlpsol",
"XPRSgetmipsol", "XPRSchgbounds", "XPRSchgobj", "XPRSchgcoef", "XPRSchgmcoef",
"XPRSchgrhs", "XPRSchgrhsrange", "XPRSchgrowtype", "XPRSaddcbmessage", "XPRSsetcbmessage",
"XPRSminim", "XPRSmaxim", "XPRSaddmipsol", "XPRSaddcbintsol", "XPRSremovecbintsol",
"XPRSinterrupt"}
"XPRSaddmipsol", "XPRSaddcbintsol", "XPRSremovecbintsol",
"XPRSinterrupt", "XPRSlpoptimize", "XPRSmipoptimize"}
self.__missing_required_functions = self.__required_functions
self.__XPRSprob_section = False