void ReduceDB::mark_top_N_clauses(const uint64_t keep_num) { size_t marked = 0; for(size_t i = 0 ; i < solver->longRedCls[1].size() && marked < keep_num ; i++ ) { const ClOffset offset = solver->longRedCls[1][i]; Clause* cl = solver->cl_alloc.ptr(offset); if ( cl->stats.locked || cl->used_in_xor() || cl->stats.ttl > 0 || solver->clause_locked(*cl, offset) || cl->stats.glue <= solver->conf.glue_must_keep_clause_if_below_or_eq ) { //no need to mark, skip continue; } if (!cl->stats.marked_clause) { marked++; cl->stats.marked_clause = true; } } }