ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
config.c
Go to the documentation of this file.
1#include "global.h"
2
3#ifndef KISSAT_NOPTIONS
4
5#include "config.h"
6#include "kissat.h"
7#include "options.h"
8
9#include <stdio.h>
10#include <string.h>
11
12int kissat_has_configuration (const char *name) {
13 if (!strcmp (name, "basic"))
14 return 1;
15 if (!strcmp (name, "default"))
16 return 1;
17 if (!strcmp (name, "plain"))
18 return 1;
19 if (!strcmp (name, "sat"))
20 return 1;
21 if (!strcmp (name, "unsat"))
22 return 1;
23 return 0;
24}
25
26void kissat_configuration_usage (void) {
27#define FMT " --%-8s %s"
28 printf (FMT "\n", "basic",
29 "basic CDCL solving "
30 "('--plain' but no restarts, minimize, reduce)");
31 printf (FMT "\n", "default", "default configuration");
32 printf (FMT "\n", "plain",
33 "plain CDCL solving without advanced techniques");
34 printf (FMT " ('--target=%d --restartint=%d')\n", "sat",
35 "target satisfiable instances", (int) TARGET_SAT,
36 (int) RESTARTINT_SAT);
37 printf (FMT " ('--stable=%d')\n", "unsat",
38 "target unsatisfiable instances", (int) STABLE_UNSAT);
39}
40
41static void set_plain_options (kissat *solver) {
42 kissat_set_option (solver, "bumpreasons", 0);
43 kissat_set_option (solver, "chrono", 0);
44 kissat_set_option (solver, "compact", 0);
45 kissat_set_option (solver, "eagersubsume", 0);
46 kissat_set_option (solver, "jumpreasons", 0);
47 kissat_set_option (solver, "otfs", 0);
48 kissat_set_option (solver, "preprocess", 0);
49 kissat_set_option (solver, "reorder", 0);
50 kissat_set_option (solver, "rephase", 0);
51 kissat_set_option (solver, "restartreusetrail", 0);
52 kissat_set_option (solver, "simplify", 0);
53 kissat_set_option (solver, "stable", 2);
54 kissat_set_option (solver, "tumble", 0);
55}
56
57int kissat_set_configuration (kissat *solver, const char *name) {
58 if (!strcmp (name, "basic")) {
59 set_plain_options (solver);
60 kissat_set_option (solver, "restart", 0);
61 kissat_set_option (solver, "reduce", 0);
62 kissat_set_option (solver, "minimize", 0);
63 return 1;
64 }
65 if (!strcmp (name, "default"))
66 return 1;
67 if (!strcmp (name, "plain")) {
68 set_plain_options (solver);
69 return 1;
70 }
71 if (!strcmp (name, "sat")) {
74 return 1;
75 }
76 if (!strcmp (name, "unsat")) {
78 return 1;
79 }
80 return 0;
81}
82
83#else
85#endif
int kissat_config_dummy_to_avoid_warning
Definition config.c:84
int kissat_set_option(kissat *solver, const char *name, int new_value)
Definition internal.c:195
int kissat_has_configuration(const char *name)
int kissat_set_configuration(kissat *solver, const char *name)
#define solver
Definition kitten.c:211
char * name
Definition main.h:24
#define RESTARTINT_SAT
Definition options.h:183
#define TARGET_SAT
Definition options.h:176
#define STABLE_UNSAT
Definition options.h:180
int strcmp()