void SimpSolver::removeClause(Clause& c) { assert(!c.learnt()); if (use_simplification) for (int i = 0; i < c.size(); i++){ n_occ[toInt(c[i])]--; updateElimHeap(var(c[i])); } detachClause(c); c.mark(1); }
// Modified Lines // void MiniSATP::removeClause(Clause& c) // { void MiniSATP::removeClause(Clause& c) { // Remove clause from reasons // for ( int i = 0 ; i < c.size( ) ; i ++ ) { const Var v = var(c[i]); if ( reason[ v ] == &c ) reason[ v ] = NULL; } detachClause(c); removed.push( &c ); }
void Solver::removeClause(Clause& c) { detachClause(c); free(&c); }