Go to the source code of this file.
◆ INITIAL_PHASE
| #define INITIAL_PHASE (GET_OPTION (phase) ? 1 : -1) |
◆ kissat_decide()
| void kissat_decide |
( |
struct kissat * | solver | ) |
|
Definition at line 211 of file decide.c.
211 {
215 INC (warming_decisions);
216 else {
219 INC (stable_decisions);
220 else
221 INC (focused_decisions);
222 }
235}
void kissat_assign_decision(kissat *solver, unsigned lit)
ABC_NAMESPACE_IMPL_START typedef signed char value
int kissat_decide_phase(kissat *solver, unsigned idx)
unsigned kissat_next_decision_variable(kissat *solver)
#define KISSAT_assert(ignore)
◆ kissat_decide_phase()
| int kissat_decide_phase |
( |
struct kissat * | solver, |
|
|
unsigned | idx ) |
Definition at line 157 of file decide.c.
157 {
159
161 if (force)
162 target = 0;
164 target = 0;
166 target =
solver->phases.target + idx;
167 else
168 target = 0;
169
171 if (force)
172 saved = 0;
174 saved =
solver->phases.saved + idx;
175 else
176 saved = 0;
177
179
181 switch ((
solver->statistics_.switched >> 1) & 7) {
182 case 1:
184 break;
185 case 3:
187 break;
188 }
189 }
190
191 if (!res && target && (res = *target)) {
192 LOG (
"%s uses target decision phase %d", LOGVAR (idx), (
int) res);
193 INC (target_decisions);
194 }
195
196 if (!res && saved && (res = *saved)) {
197 LOG (
"%s uses saved decision phase %d", LOGVAR (idx), (
int) res);
198 INC (saved_decisions);
199 }
200
201 if (!res) {
203 LOG (
"%s uses initial decision phase %d", LOGVAR (idx), (
int) res);
204 INC (initial_decisions);
205 }
207
208 return res < 0 ? -1 : 1;
209}
◆ kissat_internal_assume()
| void kissat_internal_assume |
( |
struct kissat * | solver, |
|
|
unsigned | lit ) |
◆ kissat_next_decision_variable()
| unsigned kissat_next_decision_variable |
( |
struct kissat * | solver | ) |
|
Definition at line 128 of file decide.c.
128 {
129#ifdef LOGGING
130 const char *
type = 0;
131#endif
132 unsigned res = next_random_decision (
solver);
135#ifdef LOGGING
136 type =
"maximum score";
137#endif
138 res = largest_score_unassigned_variable (
solver);
139 INC (score_decisions);
140 } else {
141#ifdef LOGGING
143#endif
144 res = last_enqueued_unassigned_variable (
solver);
145 INC (queue_decisions);
146 }
147 } else {
148#ifdef LOGGING
150#endif
151 INC (random_decisions);
152 }
153 LOG (
"next %s decision %s",
type, LOGVAR (res));
154 return res;
155}
type
CUBE COVER and CUBE typedefs ///.
◆ kissat_start_random_sequence()
| void kissat_start_random_sequence |
( |
struct kissat * | solver | ) |
|
Definition at line 59 of file decide.c.
59 {
61 return;
62
64 return;
65
67 return;
68
71 "continuing random decision sequence "
72 "at %s conflicts",
74 else {
75 INC (random_sequences);
76 const uint64_t count =
solver->statistics_.random_sequences;
79 "starting random decision sequence "
80 "at %s conflicts for %s conflicts",
83
85 }
86}
#define UPDATE_CONFLICT_LIMIT(NAME, COUNT, SCALE_COUNT_FUNCTION, SCALE_DELTA)
#define kissat_very_verbose(...)