14#define MB (kissat_current_resident_set_size () / (double) (1 << 20))
16#define REMAINING_VARIABLES \
17 kissat_percent (solver->active, statistics->variables_original)
20 REP ("seconds", "5.2f", kissat_time (solver)) \
21 REP ("MB", "2.0f", MB) \
22 REP ("level", ".0f", AVERAGE (level)) \
23 REP ("switched", "1" PRIu64, statistics->switched) \
24 REP ("reductions", "1" PRIu64, statistics->reductions) \
25 REP ("restarts", "2" PRIu64, statistics->restarts) \
26 REP ("rate", ".0f", AVERAGE (decision_rate)) \
27 REP ("conflicts", "3" PRIu64, CONFLICTS) \
28 REP ("redundant", "3" PRIu64, REDUNDANT_CLAUSES) \
29 REP ("size/glue", ".1f", \
30 kissat_average (AVERAGE (size), AVERAGE (slow_glue))) \
31 REP ("size", ".0f", AVERAGE (size)) \
32 REP ("glue", ".0f", AVERAGE (slow_glue)) \
33 REP ("tier1", "1u", solver->tier1[solver->stable]) \
34 REP ("tier2", "1u", solver->tier2[solver->stable]) \
35 REP ("trail", ".0f%%", AVERAGE (trail)) \
36 REP ("binary", "3" PRIu64, BINARY_CLAUSES) \
37 REP ("irredundant", "2" PRIu64, IRREDUNDANT_CLAUSES) \
38 REP ("variables", "2u", solver->active) \
39 REP ("remaining", "1.0f%%", REMAINING_VARIABLES)
43 const int verbosity = kissat_verbosity (
solver);
46 if (verbose && verbosity < 2)
48 char line[128], *
p = line;
49 unsigned pad[32], n = 1,
pos = 0;
52#define REP(NAME,FMT,VALUE) \
55 sprintf (p, "%" FMT, VALUE); \
65 if (!(
solver->limits.reports++ % 20)) {
68 char rows[ROWS][128], *r[ROWS];
69 for (
unsigned j = 0; j < ROWS; j++)
70 last[j] = 0, rows[j][0] = 0, r[j] = rows[j];
71 unsigned row = 0, i = 1;
72#define REP(NAME, FMT, VALUE) \
75 *r[row]++ = ' ', last[row]++; \
76 unsigned target = pad[i]; \
77 const unsigned name_len = strlen (NAME); \
78 const unsigned val_len = target - pad[i - 1] - 1; \
79 if (val_len < name_len) \
80 target += (name_len - val_len) / 2; \
81 while (last[row] + name_len < target) \
82 *r[row]++ = ' ', last[row]++; \
83 for (const char *p = NAME; *p; p++) \
84 *r[row]++ = *p, last[row]++; \
92 for (
unsigned j = 0; j < ROWS; j++) {
96 if (
solver->limits.reports > 1)
98 for (
unsigned j = 0; j < ROWS; j++) {
99 fputs (
solver->prefix, stdout);
101 fputs (rows[j], stdout);
103 fputc (
'\n', stdout);
145 fputc (
type, stdout);
147 if (
solver->preprocessing)
151 fputs (line, stdout);
153 fputc (
'\n', stdout);
type
CUBE COVER and CUBE typedefs ///.
#define KISSAT_assert(ignore)
int kissat_report_dummy_to_avoid_warning