11#define NREALLOC_GENERIC(TYPE, NAME, ELEMENTS_PER_BLOCK) \
13 const size_t block_size = sizeof (TYPE); \
15 (TYPE*) kissat_nrealloc (solver, solver->NAME, old_size, new_size, \
16 ELEMENTS_PER_BLOCK * block_size); \
19#define CREALLOC_GENERIC(TYPE, NAME, ELEMENTS_PER_BLOCK) \
21 const size_t block_size = sizeof (TYPE); \
23 (TYPE*) kissat_calloc (solver, ELEMENTS_PER_BLOCK * new_size, block_size); \
25 const size_t bytes = ELEMENTS_PER_BLOCK * old_size * block_size; \
26 memcpy (NAME, solver->NAME, bytes); \
28 kissat_dealloc (solver, solver->NAME, ELEMENTS_PER_BLOCK *old_size, \
30 solver->NAME = NAME; \
33#define NREALLOC_VARIABLE_INDEXED(TYPE, NAME) \
34 NREALLOC_GENERIC (TYPE, NAME, 1)
36#define NREALLOC_LITERAL_INDEXED(TYPE, NAME) \
37 NREALLOC_GENERIC (TYPE, NAME, 2)
39#define CREALLOC_VARIABLE_INDEXED(TYPE, NAME) \
40 CREALLOC_GENERIC (TYPE, NAME, 1)
42#define CREALLOC_LITERAL_INDEXED(TYPE, NAME) \
43 CREALLOC_GENERIC (TYPE, NAME, 2)
45static void reallocate_trail (
kissat *
solver,
unsigned old_size,
54 const unsigned old_size =
solver->size;
55 if (old_size >= new_size)
59 LOG (
"%s before increasing size from %u to %u",
70 reallocate_trail (
solver, old_size, new_size);
77 LOG (
"%s after increasing size from %u to %u",
83 const unsigned old_size =
solver->size;
84 const unsigned new_size =
solver->vars;
87 LOG (
"%s before decreasing size from %u to %u",
99 reallocate_trail (
solver, old_size, new_size);
106 LOG (
"%s after decreasing size from %u to %u",
112 if (
solver->vars >= new_vars)
115 LOG (
"enlarging variables from %u to %u",
solver->vars, new_vars);
116 const size_t old_size =
solver->size;
117 if (old_size < new_vars) {
118 LOG (
"old size %zu below requested new number of variables %u",
124 if (kissat_is_power_of_two (old_size)) {
126 new_size = 2 * old_size;
131 while (new_size < new_vars) {
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
#define REALLOCATE_ARRAY(T, A, O, N)
ABC_NAMESPACE_IMPL_START typedef signed char value
void kissat_resize_heap(kissat *solver, heap *heap, unsigned new_size)
#define KISSAT_assert(ignore)
void kissat_increase_phases(kissat *solver, unsigned new_size)
void kissat_decrease_phases(kissat *solver, unsigned new_size)
#define CREALLOC_VARIABLE_INDEXED(TYPE, NAME)
#define CREALLOC_LITERAL_INDEXED(TYPE, NAME)
#define NREALLOC_VARIABLE_INDEXED(TYPE, NAME)
void kissat_enlarge_variables(kissat *solver, unsigned new_vars)
void kissat_increase_size(kissat *solver, unsigned new_size)
void kissat_decrease_size(kissat *solver)
#define NREALLOC_LITERAL_INDEXED(TYPE, NAME)