| 514 | } |
| 515 | |
| 516 | void HFactor::update(HVector* aq, HVector* ep, HighsInt* iRow, HighsInt* hint) { |
| 517 | // Updating implies a change of basis. Since the refactorizaion info |
| 518 | // no longer corresponds to the current basis, it must be |
| 519 | // invalidated |
| 520 | this->refactor_info_.clear(); |
| 521 | // Special case |
| 522 | if (aq->next) { |
| 523 | updateCFT(aq, ep, iRow); |
| 524 | return; |
| 525 | } |
| 526 | |
| 527 | if (update_method == kUpdateMethodFt) updateFT(aq, ep, *iRow); |
| 528 | if (update_method == kUpdateMethodPf) updatePF(aq, *iRow, hint); |
| 529 | if (update_method == kUpdateMethodMpf) updateMPF(aq, ep, *iRow, hint); |
| 530 | if (update_method == kUpdateMethodApf) updateAPF(aq, ep, *iRow); |
| 531 | } |
| 532 | |
| 533 | bool HFactor::setPivotThreshold(const double new_pivot_threshold) { |
| 534 | if (new_pivot_threshold < kMinPivotThreshold) return false; |