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

Method removeClique

highs/mip/HighsCliqueTable.cpp:814–837  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

812}
813
814void HighsCliqueTable::removeClique(HighsInt cliqueid) {
815 if (cliques[cliqueid].origin != kHighsIInf && cliques[cliqueid].origin != -1)
816 deletedrows.push_back(cliques[cliqueid].origin);
817
818 HighsInt start = cliques[cliqueid].start;
819 assert(start != -1);
820 HighsInt end = cliques[cliqueid].end;
821 HighsInt len = end - start;
822 if (len == 2) {
823 sizeTwoCliques.erase(
824 sortedEdge(cliqueentries[start], cliqueentries[start + 1]));
825 }
826
827 for (HighsInt i = start; i != end; ++i) {
828 unlink(i, cliqueid);
829 }
830
831 freeslots.push_back(cliqueid);
832 freespaces.emplace(len, start);
833
834 cliques[cliqueid].start = -1;
835 cliques[cliqueid].end = -1;
836 numEntries -= len;
837}
838
839void HighsCliqueTable::extractCliques(
840 const HighsMipSolver& mipsolver, std::vector<HighsInt>& inds,

Callers

nothing calls this directly

Calls 3

sortedEdgeFunction · 0.85
push_backMethod · 0.80
eraseMethod · 0.45

Tested by

no test coverage detected