27 lines
701 B
C
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
|