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

Method choosePossible

highs/simplex/HEkkDualRow.cpp:80–103  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

78}
79
80void HEkkDualRow::choosePossible() {
81 /**
82 * Determine the possible variables - candidates for CHUZC
83 * TODO: Check with Qi what this is doing
84 */
85 const double Ta = ekk_instance_.info_.update_count < 10 ? 1e-9
86 : ekk_instance_.info_.update_count < 20 ? 3e-8
87 : 1e-6;
88 const double Td = ekk_instance_.options_->dual_feasibility_tolerance;
89 const HighsInt move_out = workDelta < 0 ? -1 : 1;
90 workTheta = kHighsInf;
91 workCount = 0;
92
93 for (HighsInt i = 0; i < packCount; i++) {
94 const HighsInt iCol = packIndex[i];
95 const HighsInt move = workMove[iCol];
96 const double alpha = packValue[i] * move_out * move;
97 if (alpha > Ta) {
98 workData[workCount++] = make_pair(iCol, alpha);
99 const double relax = workDual[iCol] * move + Td;
100 if (workTheta * alpha > relax) workTheta = relax / alpha;
101 }
102 }
103}
104
105void HEkkDualRow::chooseJoinpack(const HEkkDualRow* otherRow) {
106 /**

Callers 2

chooseColumnMethod · 0.80
chooseColumnSliceMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected