16 return solver->stable ?
"stable" :
"focused";
27 const uint64_t conflicts_delta =
GET_OPTION (modeinit);
28 const uint64_t conflicts_limit =
CONFLICTS + conflicts_delta;
37 "initial %s mode switching limit "
38 "at %s after %s conflicts",
47 solver->mode.propagations =
solver->statistics_.search_propagations;
50 solver->mode.entered = kissat_process_time ();
52 "starting %s mode at %.2f seconds "
53 "(%" PRIu64
" conflicts, %" PRIu64
" ticks"
55 ", %" PRIu64
" propagations, %" PRIu64
" visits"
67 "no need to set mode limit (only %s mode enabled)",
71static void update_mode_limit (
kissat *
solver, uint64_t delta_ticks) {
84 "new stable mode switching limit of %s "
91 const uint64_t interval =
GET_OPTION (modeint);
92 const uint64_t count = (
statistics->switched + 1) / 2;
98 "new focused mode switching limit of %s "
115 uint64_t *delta_ticks) {
120 if (kissat_verbosity (
solver) < 2)
123 const double current_time = kissat_process_time ();
124 const double delta_time = current_time -
solver->mode.entered;
126 const uint64_t delta_conflicts =
129 const uint64_t delta_propagations =
132 solver->mode.entered = current_time;
136 "(%s conflicts, %s ticks"
140 ")",
solver->stable ?
"stable" :
"focused",
155 report_switching_from_mode (
solver, &delta);
160 "switching to focused mode after %s conflicts",
163 update_mode_limit (
solver, delta);
173 report_switching_from_mode (
solver, &delta);
179 "switched to stable mode after %" PRIu64
" conflicts",
181 update_mode_limit (
solver, delta);
207 solver->limits.mode.count++;
210 switch_to_focused_mode (
solver);
212 switch_to_stable_mode (
solver);
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
ABC_NAMESPACE_IMPL_START void kissat_init_averages(kissat *solver, averages *averages)
void kissat_update_scores(kissat *solver)
void kissat_start_random_sequence(kissat *solver)
double kissat_nlogpown(uint64_t count, unsigned exponent)
#define KISSAT_assert(ignore)
void kissat_switch_search_mode(kissat *solver)
bool kissat_switching_search_mode(kissat *solver)
ABC_NAMESPACE_IMPL_START void kissat_init_mode_limit(kissat *solver)
#define kissat_very_verbose(...)
#define kissat_phase(...)
void kissat_reset_search_of_queue(kissat *solver)
void kissat_init_reluctant(kissat *solver)
void kissat_update_focused_restart_limit(kissat *solver)
struct limits::@174206357337173032026364064366275325046050235136 mode