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

Method updateFlip

highs/simplex/HEkkDualRow.cpp:531–546  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

529}
530
531void HEkkDualRow::updateFlip(HVector* bfrtColumn) {
532 double* workDual = ekk_instance_.info_.workDual_.data();
533 double dual_objective_value_change = 0;
534 bfrtColumn->clear();
535 for (HighsInt i = 0; i < workCount; i++) {
536 const HighsInt iCol = workData[i].first;
537 const double change = workData[i].second;
538 double local_dual_objective_change = change * workDual[iCol];
539 local_dual_objective_change *= ekk_instance_.cost_scale_;
540 dual_objective_value_change += local_dual_objective_change;
541 ekk_instance_.flipBound(iCol);
542 ekk_instance_.lp_.a_matrix_.collectAj(*bfrtColumn, iCol, change);
543 }
544 ekk_instance_.info_.updated_dual_objective_value +=
545 dual_objective_value_change;
546}
547
548void HEkkDualRow::updateDual(double theta) {
549 analysis->simplexTimerStart(UpdateDualClock);

Callers 2

updateFtranBFRTMethod · 0.80
minorUpdateDualMethod · 0.80

Calls 4

dataMethod · 0.80
flipBoundMethod · 0.80
collectAjMethod · 0.80
clearMethod · 0.45

Tested by

no test coverage detected