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

Function GetBasisSolvesFormRHS

check/TestBasisSolves.cpp:114–150  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

112}
113
114void GetBasisSolvesFormRHS(HighsLp& lp, vector<HighsInt>& basic_variables,
115 vector<double>& solution, vector<double>& rhs,
116 const bool transpose = false) {
117 if (transpose) {
118 for (HighsInt k = 0; k < lp.num_row_; k++) {
119 rhs[k] = 0;
120 HighsInt var = basic_variables[k];
121 if (var < 0) {
122 HighsInt row = -(1 + var);
123 rhs[k] = solution[row];
124 } else {
125 HighsInt col = var;
126 for (HighsInt el = lp.a_matrix_.start_[col];
127 el < lp.a_matrix_.start_[col + 1]; el++) {
128 HighsInt row = lp.a_matrix_.index_[el];
129 rhs[k] += lp.a_matrix_.value_[el] * solution[row];
130 }
131 }
132 }
133 } else {
134 for (HighsInt k = 0; k < lp.num_row_; k++) rhs[k] = 0;
135 for (HighsInt k = 0; k < lp.num_row_; k++) {
136 HighsInt var = basic_variables[k];
137 if (var < 0) {
138 HighsInt row = -(1 + var);
139 rhs[row] += solution[k];
140 } else {
141 HighsInt col = var;
142 for (HighsInt el = lp.a_matrix_.start_[col];
143 el < lp.a_matrix_.start_[col + 1]; el++) {
144 HighsInt row = lp.a_matrix_.index_[el];
145 rhs[row] += lp.a_matrix_.value_[el] * solution[k];
146 }
147 }
148 }
149 }
150}
151
152void testBasisSolve(Highs& highs) {
153 HighsStatus highs_status;

Callers 1

testBasisSolveFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected