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

Method initialiseForSolve

highs/simplex/HEkk.cpp:1595–1621  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1593}
1594
1595void HEkk::initialiseForSolve() {
1596 const HighsStatus return_status = initialiseSimplexLpBasisAndFactor();
1597 assert(return_status == HighsStatus::kOk);
1598 assert(status_.has_basis);
1599
1600 updateSimplexOptions();
1601 initialiseSimplexLpRandomVectors();
1602 initialisePartitionedRowwiseMatrix(); // Timed
1603 allocateWorkAndBaseArrays();
1604 initialiseCost(SimplexAlgorithm::kPrimal, kSolvePhaseUnknown, false);
1605 initialiseBound(SimplexAlgorithm::kPrimal, kSolvePhaseUnknown, false);
1606 initialiseNonbasicValueAndMove();
1607 computePrimal(); // Timed
1608 computeDual(); // Timed
1609 computeSimplexInfeasible(); // Timed
1610 computeDualObjectiveValue(); // Timed
1611 computePrimalObjectiveValue(); // Timed
1612 status_.initialised_for_solve = true;
1613
1614 bool primal_feasible = info_.num_primal_infeasibilities == 0;
1615 bool dual_feasible = info_.num_dual_infeasibilities == 0;
1616 visited_basis_.clear();
1617 visited_basis_.insert(basis_.hash);
1618 model_status_ = HighsModelStatus::kNotset;
1619 if (primal_feasible && dual_feasible)
1620 model_status_ = HighsModelStatus::kOptimal;
1621}
1622
1623void HEkk::setSimplexOptions() {
1624 // Copy values of HighsOptions for the simplex solver

Callers

nothing calls this directly

Calls 3

clearMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected