ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
search.c File Reference
#include "search.h"
#include "analyze.h"
#include "bump.h"
#include "classify.h"
#include "decide.h"
#include "eliminate.h"
#include "inline.h"
#include "internal.h"
#include "logging.h"
#include "lucky.h"
#include "preprocess.h"
#include "print.h"
#include "probe.h"
#include "propsearch.h"
#include "reduce.h"
#include "reluctant.h"
#include "reorder.h"
#include "rephase.h"
#include "report.h"
#include "restart.h"
#include "terminate.h"
#include "trail.h"
#include "walk.h"
#include <inttypes.h>
Include dependency graph for search.c:

Go to the source code of this file.

Functions

int kissat_search (kissat *solver)
 

Function Documentation

◆ kissat_search()

int kissat_search ( kissat * solver)

Definition at line 181 of file search.c.

181 {
182 REPORT (0, '*');
183 int res = 0;
184 if (solver->inconsistent)
185 res = 20;
186 if (!res && GET_OPTION (luckyearly))
187 res = kissat_lucky (solver);
188 if (!res && kissat_preprocessing (solver))
190 if (!res && GET_OPTION (luckylate))
191 res = kissat_lucky (solver);
192 if (!res)
194 if (!res && searching (solver)) {
195 start_search (solver);
196 while (!res) {
198 if (conflict)
199 res = kissat_analyze (solver, conflict);
200 else if (solver->iterating)
201 iterate (solver);
202 else if (!solver->unassigned)
203 res = 10;
205 break;
206 else if (kissat_reducing (solver))
207 res = kissat_reduce (solver);
210 else if (kissat_restarting (solver))
212 else if (kissat_reordering (solver))
214 else if (kissat_rephasing (solver))
216 else if (kissat_probing (solver))
217 res = kissat_probe (solver);
218 else if (kissat_eliminating (solver))
219 res = kissat_eliminate (solver);
220 else if (conflict_limit_hit (solver))
221 break;
222 else if (decision_limit_hit (solver))
223 break;
224 else
226 }
227 stop_search (solver);
228 }
229 report_search_result (solver, res);
230 return res;
231}
int kissat_analyze(kissat *solver, clause *conflict)
Definition analyze.c:529
ABC_NAMESPACE_IMPL_START void kissat_classify(struct kissat *solver)
Definition classify.c:7
void kissat_decide(kissat *solver)
Definition decide.c:211
ABC_NAMESPACE_IMPL_START bool kissat_eliminating(kissat *solver)
Definition eliminate.c:23
int kissat_eliminate(kissat *solver)
Definition eliminate.c:597
#define solver
Definition kitten.c:211
int kissat_lucky(struct kissat *solver)
Definition kucky.c:309
void kissat_switch_search_mode(kissat *solver)
Definition mode.c:203
bool kissat_switching_search_mode(kissat *solver)
Definition mode.c:188
#define GET_OPTION(N)
Definition options.h:295
ABC_NAMESPACE_IMPL_START bool kissat_preprocessing(struct kissat *solver)
Definition preprocess.c:16
int kissat_preprocess(struct kissat *solver)
Definition preprocess.c:31
int kissat_probe(kissat *solver)
Definition probe.c:72
ABC_NAMESPACE_IMPL_START bool kissat_probing(kissat *solver)
Definition probe.c:18
clause * kissat_search_propagate(kissat *solver)
Definition propsearch.c:46
void kissat_reorder(kissat *solver)
Definition reorder.c:205
ABC_NAMESPACE_IMPL_START bool kissat_reordering(kissat *solver)
Definition reorder.c:16
void kissat_rephase(kissat *solver)
Definition rephase.c:128
bool kissat_rephasing(kissat *solver)
Definition rephase.c:34
#define REPORT(...)
Definition report.h:10
ABC_NAMESPACE_IMPL_START bool kissat_restarting(kissat *solver)
Definition restart.c:16
void kissat_restart(kissat *solver)
Definition restart.c:114
int kissat_reduce(kissat *solver)
Definition reduce.c:155
ABC_NAMESPACE_IMPL_START bool kissat_reducing(kissat *solver)
Definition reduce.c:16
#define TERMINATED(BIT)
Definition terminate.h:42
#define search_terminated_1
Definition terminate.h:68
Here is the call graph for this function:
Here is the caller graph for this function: