MCPcopy Create free account
hub / github.com/ERGO-Code/HiGHS / setDomainChangeStack

Method setDomainChangeStack

highs/mip/HighsDomain.cpp:2120–2151  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2118}
2119
2120void HighsDomain::setDomainChangeStack(
2121 const std::vector<HighsDomainChange>& domchgstack) {
2122 infeasible_ = false;
2123 mipsolver->mipdata_->debugSolution.resetDomain(*this);
2124
2125 if (!domchgstack_.empty()) {
2126 for (const HighsDomainChange& domchg : domchgstack_) {
2127 if (domchg.boundtype == HighsBoundType::kLower)
2128 colLowerPos_[domchg.column] = -1;
2129 else
2130 colUpperPos_[domchg.column] = -1;
2131 }
2132 }
2133
2134 prevboundval_.clear();
2135 domchgstack_.clear();
2136 domchgreason_.clear();
2137 branchPos_.clear();
2138 HighsInt stacksize = domchgstack.size();
2139 for (HighsInt k = 0; k != stacksize; ++k) {
2140 if (domchgstack[k].boundtype == HighsBoundType::kLower &&
2141 domchgstack[k].boundval <= col_lower_[domchgstack[k].column])
2142 continue;
2143 if (domchgstack[k].boundtype == HighsBoundType::kUpper &&
2144 domchgstack[k].boundval >= col_upper_[domchgstack[k].column])
2145 continue;
2146
2147 changeBound(domchgstack[k], Reason::unspecified());
2148
2149 if (infeasible_) break;
2150 }
2151}
2152
2153void HighsDomain::setDomainChangeStack(
2154 const std::vector<HighsDomainChange>& domchgstack,

Callers 3

runMethod · 0.80
HighsSearchMethod · 0.80
installNodeMethod · 0.80

Calls 5

resetDomainMethod · 0.45
emptyMethod · 0.45
clearMethod · 0.45
sizeMethod · 0.45
boundChangeAddedMethod · 0.45

Tested by

no test coverage detected