| 812 | } |
| 813 | |
| 814 | void 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 | |
| 839 | void HighsCliqueTable::extractCliques( |
| 840 | const HighsMipSolver& mipsolver, std::vector<HighsInt>& inds, |
nothing calls this directly
no test coverage detected