src/elim.cpp
// Add all resolvents on 'pivot' and connect them.
Add all resolvents on 'pivot' and connect them.
Add all resolvents on ' pivot ' and connect them .
inline void Internal::elim_add_resolvents (int pivot) {
  LOG ("adding all resolvents on %d", pivot);
  assert (!val (pivot));
  assert (!flags (pivot).eliminated ());
  long resolvents = 0;
  Occs & ps = occs (pivot), & ns = occs (-pivot);
  const const_occs_iterator eop = ps.end (), eon = ns.end ();
  const_occs_iterator i, j;
  for (i = ps.begin (); !unsat && i != eop; i++) {
    Clause * c = *i;
    for (j = ns.begin (); !unsat && j != eon; j++) {
      Clause *d = *j;
      if (!resolve_clauses (c, pivot, d)) continue;
      external->check_learned_clause ();
      if (!c->redundant && !d->redundant) {
        resolvents++;
        Clause * r = new_resolved_irredundant_clause ();
        if (!c->redundant && !d->redundant) elim_update_added (r);
      }
      clause.clear ();
    }
  }
  LOG ("added %ld resolvents to eliminate %d", resolvents, pivot);
}
inline void Internal :: elim_add_resolvents ( int pivot ) { LOG ( " " , pivot ) ; assert ( ! val ( pivot ) ) ; assert ( ! flags ( pivot ) . eliminated ( ) ) ; long resolvents = 0 ; Occs & ps = occs ( pivot ) , & ns = occs ( - pivot ) ; const const_occs_iterator eop = ps . end ( ) , eon = ns . end ( ) ; const_occs_iterator i , j ; for ( i = ps . begin ( ) ; ! unsat && i != eop ; i ++ ) { Clause * c = * i ; for ( j = ns . begin ( ) ; ! unsat && j != eon ; j ++ ) { Clause * d = * j ; if ( ! resolve_clauses ( c , pivot , d ) ) continue ; external -> check_learned_clause ( ) ; if ( ! c -> redundant && ! d -> redundant ) { resolvents ++ ; Clause * r = new_resolved_irredundant_clause ( ) ; if ( ! c -> redundant && ! d -> redundant ) elim_update_added ( r ) ; } clause . clear ( ) ; } } LOG ( " " , resolvents , pivot ) ; }
Add all resolvents on 'pivot' and connect them.
Add all resolvents on ' pivot ' and connect them .