| 2118 | } |
| 2119 | |
| 2120 | void 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 | |
| 2153 | void HighsDomain::setDomainChangeStack( |
| 2154 | const std::vector<HighsDomainChange>& domchgstack, |
no test coverage detected