void SAT::removeClause(Clause& c) { assert(c.size() > 1); watches[toInt(~c[0])].remove(&c); watches[toInt(~c[1])].remove(&c); if (c.learnt) learnts_literals -= c.size(); else clauses_literals -= c.size(); if (c.learnt) for (int i = 0; i < c.size(); i++) decVarUse(var(c[i])); if (c.learnt) { // learntClauseScore[c.clauseID()] = c.rawActivity(); /* if (so.debug) { */ if (so.learnt_stats) { int id = c.clauseID(); learntStatsStream << learntClauseString[id]; learntStatsStream << ","; learntStatsStream << c.rawActivity(); learntStatsStream << "\n"; /* std::cerr << "clausescore," << << "," << c.rawActivity() << "\n"; */ } /* } */ } free(&c); }
void SAT::removeClause(Clause& c) { assert(c.size() > 1); watches[toInt(~c[0])].remove(&c); watches[toInt(~c[1])].remove(&c); if (c.learnt) learnts_literals -= c.size(); else clauses_literals -= c.size(); if (c.learnt) for (int i = 0; i < c.size(); i++) decVarUse(var(c[i])); free(&c); }