26static Clause decision_reason_clause;
27static Clause *decision_reason = &decision_reason_clause;
50 for (
const auto &other : *reason) {
70 else if (!
opts.chrono &&
level && !forced)
73 for (
auto &reason_lit : *reason) {
74 if (
lit == reason_lit)
77 if (!
val (reason_lit))
79 const int signed_reason_lit =
val (reason_lit) * reason_lit;
80 int64_t
id =
unit_id (signed_reason_lit);
95 LOG (
conflict,
"lrat for global empty clause with conflict");
119 reason == decision_reason || !
lrat_chain.empty ());
132 else if (reason == decision_reason)
133 lit_level =
level, reason = 0;
134 else if (
opts.chrono)
147 if (!lit_level && !from_external)
150 const signed char tmp =
sign (
lit);
159 LOG (
"root-level unit assign %d @ 0",
lit);
161 LOG (reason,
"search assign %d @ %d",
lit, lit_level);
167 const Watch &w = ws[0];
169 __builtin_prefetch (&w, 0, 1);
197 LOG (
"search decide %d",
lit);
237 LOG (
"starting propagate");
249 LOG (
"propagating %d", -
lit);
259 const Watch w = *j++ = *i++;
260 const signed char b =
val (w.
blit);
334 const signed char u =
val (other);
358 while (k != end && (v =
val (r = *k)) < 0)
365 while (k != middle && (v =
val (r = *k)) < 0)
412 if (
opts.chrono > 1) {
414 const int other_level =
var (other).
level;
463 ws.resize (j - ws.begin ());
484 stats.stabconflicts++;
510 LOG (
"propergating %d", -
lit);
519 const Watch w = *j++ = *i++;
533 const signed char u =
val (other);
548 while (k != end && (v =
val (r = *k)) < 0)
554 while (k != middle && (v =
val (r = *k)) < 0)
579 ws.resize (j - ws.begin ());
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
#define CADICAL_assert(ignore)
Watches::const_iterator const_watch_iterator
const int * const_literal_iterator
Watches::iterator watch_iterator
void notify_assignments()
void watch_literal(int lit, int blit, Clause *c)
int64_t cache_lines(size_t bytes)
void new_trail_level(int lit)
void build_chain_for_empty()
vector< int64_t > lrat_chain
bool searching_lucky_phases
void assign_unit(int lit)
void search_assume_decision(int decision)
signed char val(int lit) const
int64_t unit_id(int lit) const
void set_val(int lit, signed char val)
int assignment_level(int lit, Clause *)
void search_assign_external(int lit)
void require_mode(Mode m) const
void learn_unit_clause(int lit)
void search_assign_driving(int lit, Clause *reason)
void search_assign(int lit, Clause *)
void build_chain_for_units(int lit, Clause *reason, bool forced)