2023-03-26 19:15:17 +08:00

27 lines
701 B
C

#ifndef _collect_h_INCLUDED
#define _collect_h_INCLUDED
#include "internal.h"
void kissat_dense_collect (struct kissat *);
void kissat_sparse_collect (struct kissat *, bool compact, reference start);
static inline void
kissat_defrag_watches_if_needed (kissat * solver)
{
const size_t size = SIZE_STACK (solver->vectors.stack);
const size_t size_limit = GET_OPTION (defragsize);
if (size <= size_limit)
return;
const size_t usable = solver->vectors.usable;
const size_t usable_limit = (size * GET_OPTION (defraglim)) / 100;
if (usable <= usable_limit)
return;
INC (vectors_defrags_needed);
kissat_defrag_vectors (solver, &solver->vectors, LITS, solver->watches);
}
#endif