24 for (
unsigned i = 0; i < end; i++) {
25 const unsigned idx = stack[i];
26 const unsigned idx_pos =
pos[idx];
31 if (child_pos < end) {
32 unsigned child = stack[child_pos];
34 if (++child_pos < end) {
37 child = stack[child_pos];
47 const unsigned old_size =
heap->
size;
48 if (old_size >= new_size)
50 LOG (
"resizing %s heap from %u to %u",
51 (
heap->
tainted ?
"tainted" :
"untainted"), old_size, new_size);
70 LOG (
"rescaling scores on heap with factor %g", factor);
72 for (
unsigned i = 0; i <
heap->
vars; i++)
83 const unsigned old_vars =
heap->
vars;
86 const size_t delta = new_vars -
heap->
vars;
87 memset (
heap->
pos + old_vars, 0xff, delta * sizeof (
unsigned));
91 LOG (
"enlarged heap from %u to %u", old_vars, new_vars);
102 for (
unsigned i = 0; i <
heap->
vars; i++)
103 printf (
"heap.pos[%u] = %u\n", i,
heap->
pos[i]);
104 for (
unsigned i = 0; i <
heap->
vars; i++)
105 printf (
"heap.score[%u] = %g\n", i,
heap->
score[i]);
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
void * kissat_calloc(kissat *solver, size_t n, size_t size)
void * kissat_nrealloc(kissat *solver, void *p, size_t o, size_t n, size_t size)
void kissat_enlarge_heap(kissat *solver, heap *heap, unsigned new_vars)
void kissat_rescale_heap(kissat *solver, heap *heap, double factor)
ABC_NAMESPACE_IMPL_START void kissat_release_heap(kissat *solver, heap *heap)
void kissat_resize_heap(kissat *solver, heap *heap, unsigned new_size)
#define KISSAT_assert(ignore)
#define kissat_check_heap(...)