#include "learn.h"
#include "backtrack.h"
#include "inline.h"
#include "reluctant.h"
#include <inttypes.h>
Go to the source code of this file.
◆ kissat_determine_new_level()
| unsigned kissat_determine_new_level |
( |
kissat * | solver, |
|
|
unsigned | jump ) |
Definition at line 18 of file learn.c.
18 {
20 const unsigned back =
solver->level - 1;
22
23 const unsigned delta = back - jump;
24 const unsigned limit = backjump_limit (
solver);
25
26 unsigned res;
27
28 if (!delta) {
29 res = jump;
30 LOG (
"using identical backtrack and jump level %u", res);
31 } else if (delta > limit) {
32 res = back;
33 LOG (
"backjumping over %u levels (%u - %u) considered inefficient",
34 delta, back, jump);
35 LOG (
"backtracking chronologically to backtrack level %u", res);
37 } else {
38 res = jump;
39 LOG (
"backjumping over %u levels (%u - %u) considered efficient", delta,
40 back, jump);
41 LOG (
"backjumping non-chronologically to jump level %u", res);
42 }
43 return res;
44}
#define KISSAT_assert(ignore)
◆ kissat_learn_clause()
| void kissat_learn_clause |
( |
kissat * | solver | ) |
|
Definition at line 192 of file learn.c.
192 {
201 if (size == 1)
202 learn_unit (
solver, not_uip);
203 else if (size == 2)
204 learn_binary (
solver, not_uip);
205 else
206 ref = learn_reference (
solver, not_uip, glue);
208 eagerly_subsume_last_learned (
solver);
210 insert_last_learned (
solver, ref);
211 }
212}
void kissat_update_learned(kissat *solver, unsigned glue, unsigned size)
ABC_NAMESPACE_HEADER_START typedef unsigned reference
◆ kissat_update_learned()
| void kissat_update_learned |
( |
kissat * | solver, |
|
|
unsigned | glue, |
|
|
unsigned | size ) |
Definition at line 120 of file learn.c.
120 {
122 INC (clauses_learned);
123 LOG (
"learned[%" PRIu64
"] clause glue %u size %u",
GET (clauses_learned),
124 glue, size);
127 ADD (literals_learned, size);
128#ifndef KISSAT_QUIET
130#endif
133}
#define UPDATE_AVERAGE(A, Y)
void kissat_tick_reluctant(reluctant *reluctant)