src/elim.cpp
// Update the global elimination schedule 'esched' after adding or removing
// a clause.  Scheduling is based on the two-sided score 'noccs2', which
// needs explicit updates.
Update the global elimination schedule 'esched' after adding or removing
a clause.  Scheduling is based on the two-sided score 'noccs2', which
needs explicit updates.
Update the global elimination schedule ' esched ' after adding or removing a clause . Scheduling is based on the two - sided score ' noccs2 ' which needs explicit updates .
inline void Internal::elim_update_added (Clause * c) {
  assert (!c->redundant);
  const const_literal_iterator end = c->end ();
  const_literal_iterator i;
  for (i = c->begin (); i != end; i++) {
    const int lit = *i;
    if (!active (lit)) continue;
    Occs & os = occs (lit);
    if (os.empty ()) continue;          
    os.push_back (c);
    noccs2 (lit)++;
    const int idx = abs (lit);
    if (esched.contains (idx)) esched.update (idx);
    else {
      LOG ("rescheduling %d for elimination after adding clause", idx);
      esched.push_back (idx);
    }
  }
}
inline void Internal :: elim_update_added ( Clause * c ) { assert ( ! c -> redundant ) ; const const_literal_iterator end = c -> end ( ) ; const_literal_iterator i ; for ( i = c -> begin ( ) ; i != end ; i ++ ) { const int lit = * i ; if ( ! active ( lit ) ) continue ; Occs & os = occs ( lit ) ; if ( os . empty ( ) ) continue ; os . push_back ( c ) ; noccs2 ( lit ) ++ ; const int idx = abs ( lit ) ; if ( esched . contains ( idx ) ) esched . update ( idx ) ; else { LOG ( " " , idx ) ; esched . push_back ( idx ) ; } } }
Update the global elimination schedule 'esched' after adding or removing
a clause.
Update the global elimination schedule ' esched ' after adding or removing a clause .
// not connected