41 if (clause->getExecutionPlan() !=
nullptr) {
46 std::vector<unsigned int> newOrdering = sips.getReordering(clause);
49 bool changeNeeded =
false;
50 for (
unsigned int i = 0;
i < newOrdering.size();
i++) {
51 if (newOrdering[
i] !=
i) {
57 return changeNeeded ?
reorderAtoms(clause, newOrdering) : nullptr;
68 std::string sipsChosen =
"all-bound";
75 std::vector<Clause*> clausesToRemove;
79 if (newClause !=
nullptr) {
81 clausesToRemove.push_back(clause);
86 changed |= !clausesToRemove.empty();
87 for (
auto* clause : clausesToRemove) {
97 std::vector<Clause*> clausesToRemove;
100 if (newClause !=
nullptr) {
102 clausesToRemove.push_back(clause);
103 program.
addClause(Own<Clause>(newClause));
107 changed |= !clausesToRemove.empty();
108 for (
auto* clause : clausesToRemove) {