1#ifndef _logging_h_INCLUDED
2#define _logging_h_INCLUDED
14#if defined(LOGGING) && !defined(KISSAT_QUIET)
18const char * kissat_log_lit (
kissat *,
unsigned lit);
19const char * kissat_log_var (
kissat *,
unsigned idx);
20const char * kissat_log_repr (
kissat *,
unsigned lit,
const unsigned *);
22void kissat_begin_logging (
kissat *,
const char *prefix,
26void kissat_end_logging (
void);
44 unsigned,
unsigned,
const char *, ...)
63 size_t,
const unsigned *,
68 size_t,
const unsigned *,
76#define INVALID_GATE_ID (~(size_t)0)
78void kissat_log_and_gate (
kissat *,
const char*,
size_t id,
unsigned * repr,
79 unsigned lhs,
size_t,
const unsigned * rhs,
83void kissat_log_xor_gate (
kissat *,
const char*,
size_t id,
unsigned * repr,
84 unsigned lhs,
size_t,
const unsigned * rhs,
88void kissat_log_ite_gate (
kissat *,
const char*,
size_t id,
unsigned * repr,
89 unsigned lhs,
unsigned cond,
unsigned then_lit,
90 unsigned else_lit,
const char *, ...)
102 unsigned size,
const unsigned *lits,
const char *fmt, ...)
118#define LOGPREFIX "LOG"
123 if (solver && GET_OPTION (log)) \
124 kissat_log_msg (solver, LOGPREFIX, __VA_ARGS__); \
129 if (solver && GET_OPTION (log) > 1) \
130 kissat_log_msg (solver, LOGPREFIX, __VA_ARGS__); \
135 if (solver && GET_OPTION (log) > 2) \
136 kissat_log_msg (solver, LOGPREFIX, __VA_ARGS__); \
141 if (solver && GET_OPTION (log) > 3) \
142 kissat_log_msg (solver, LOGPREFIX, __VA_ARGS__); \
147 if (solver && GET_OPTION (log) > 4) \
148 kissat_log_msg (solver, LOGPREFIX, __VA_ARGS__); \
151#define LOGLITS(...) \
153 if (solver && GET_OPTION (log)) \
154 kissat_log_lits (solver, LOGPREFIX, __VA_ARGS__); \
157#define LOGLITSET(...) \
159 if (solver && GET_OPTION (log)) \
160 kissat_log_litset (solver, LOGPREFIX, __VA_ARGS__); \
163#define LOGLITPART(...) \
165 if (solver && GET_OPTION (log)) \
166 kissat_log_litpart (solver, LOGPREFIX, __VA_ARGS__); \
169#define LOGCOUNTEDREFLITS(...) \
171 if (solver && GET_OPTION (log)) \
172 kissat_log_counted_ref_lits (solver, LOGPREFIX, __VA_ARGS__); \
175#define LOGCOUNTEDLITS(...) \
177 if (solver && GET_OPTION (log)) \
178 kissat_log_counted_lits (solver, LOGPREFIX, __VA_ARGS__); \
181#define LOGLITS3(...) \
183 if (GET_OPTION (log) > 2) \
184 kissat_log_lits (solver, LOGPREFIX, __VA_ARGS__); \
189 if (solver && GET_OPTION (log)) \
190 kissat_log_resolvent (solver, LOGPREFIX, __VA_ARGS__); \
193#define LOGRES2(...) \
195 if (solver && GET_OPTION (log) > 1) \
196 kissat_log_resolvent (solver, LOGPREFIX, __VA_ARGS__); \
201 if (GET_OPTION (log)) \
202 kissat_log_extensions (solver, LOGPREFIX, __VA_ARGS__); \
205#define LOGEXT2(...) \
207 if (GET_OPTION (log) > 1) \
208 kissat_log_extensions (solver, LOGPREFIX, __VA_ARGS__); \
211#define LOGINTS(...) \
213 if (solver && GET_OPTION (log)) \
214 kissat_log_ints (solver, LOGPREFIX, __VA_ARGS__); \
217#define LOGINTS3(...) \
219 if (GET_OPTION (log) > 2) \
220 kissat_log_ints (solver, LOGPREFIX, __VA_ARGS__); \
223#define LOGUNSIGNEDS2(...) \
225 if (GET_OPTION (log) > 1) \
226 kissat_log_unsigneds (solver, LOGPREFIX, __VA_ARGS__); \
229#define LOGUNSIGNEDS3(...) \
231 if (GET_OPTION (log) > 2) \
232 kissat_log_unsigneds (solver, LOGPREFIX, __VA_ARGS__); \
235#define LOGANDGATE(...) \
237 if (GET_OPTION (log) > 0) \
238 kissat_log_and_gate (solver, LOGPREFIX, __VA_ARGS__); \
241#define LOGXORGATE(...) \
243 if (GET_OPTION (log) > 0) \
244 kissat_log_xor_gate (solver, LOGPREFIX, __VA_ARGS__); \
247#define LOGITEGATE(...) \
249 if (GET_OPTION (log) > 0) \
250 kissat_log_ite_gate (solver, LOGPREFIX, __VA_ARGS__); \
255 if (solver && GET_OPTION (log)) \
256 kissat_log_clause (solver, LOGPREFIX, __VA_ARGS__); \
259#define LOGCOUNTEDCLS(...) \
261 if (solver && GET_OPTION (log)) \
262 kissat_log_counted_clause (solver, LOGPREFIX, __VA_ARGS__); \
265#define LOGREPRCLS(...) \
267 if (solver && GET_OPTION (log)) \
268 kissat_log_repr_clause (solver, LOGPREFIX, __VA_ARGS__); \
271#define LOGLINE(...) \
273 if (solver && GET_OPTION (log)) \
274 kissat_log_line (solver, LOGPREFIX, __VA_ARGS__); \
277#define LOGCLS2(...) \
279 if (GET_OPTION (log) > 1) \
280 kissat_log_clause (solver, LOGPREFIX, __VA_ARGS__); \
283#define LOGCLS3(...) \
285 if (GET_OPTION (log) > 2) \
286 kissat_log_clause (solver, LOGPREFIX, __VA_ARGS__); \
291 if (solver && GET_OPTION (log)) \
292 kissat_log_ref (solver, LOGPREFIX, __VA_ARGS__); \
295#define LOGREF2(...) \
297 if (solver && GET_OPTION (log) > 1) \
298 kissat_log_ref (solver, LOGPREFIX, __VA_ARGS__); \
301#define LOGREF3(...) \
303 if (solver && GET_OPTION (log) > 2) \
304 kissat_log_ref (solver, LOGPREFIX, __VA_ARGS__); \
307#define LOGBINARY(...) \
309 if (solver && GET_OPTION (log)) \
310 kissat_log_binary (solver, LOGPREFIX, __VA_ARGS__); \
313#define LOGBINARY2(...) \
315 if (GET_OPTION (log) > 1) \
316 kissat_log_binary (solver, LOGPREFIX, __VA_ARGS__); \
319#define LOGBINARY3(...) \
321 if (GET_OPTION (log) > 2) \
322 kissat_log_binary (solver, LOGPREFIX, __VA_ARGS__); \
325#define LOGUNARY(...) \
327 if (solver && GET_OPTION (log)) \
328 kissat_log_unary (solver, LOGPREFIX, __VA_ARGS__); \
331#define LOGLIT(LIT) kissat_log_lit (solver, (LIT))
332#define LOGVAR(IDX) kissat_log_var (solver, (IDX))
333#define LOGREPR(LIT, REPR) kissat_log_repr (solver, (LIT), (REPR))
335#define LOGWATCH(...) \
337 if (GET_OPTION (log)) \
338 kissat_log_watch (solver, LOGPREFIX, __VA_ARGS__); \
343 if (GET_OPTION (log)) \
344 kissat_log_xor (solver, LOGPREFIX, __VA_ARGS__); \
367#define LOGRES2(...) \
370#define LOGLITS(...) \
373#define LOGLITSET(...) \
376#define LOGLITPART(...) \
379#define LOGLITS3(...) \
382#define LOGCOUNTEDREFLITS(...) \
385#define LOGCOUNTEDLITS(...) \
391#define LOGEXT2(...) \
394#define LOGINTS(...) \
397#define LOGINTS3(...) \
400#define LOGUNSIGNEDS2(...) \
403#define LOGUNSIGNEDS3(...) \
406#define LOGANDGATE(...) \
409#define LOGXORGATE(...) \
412#define LOGITEGATE(...) \
418#define LOGCLS2(...) \
421#define LOGCLS3(...) \
424#define LOGCOUNTEDCLS(...) \
427#define LOGREPRCLS(...) \
430#define LOGLINE(...) \
436#define LOGREF2(...) \
439#define LOGREF3(...) \
442#define LOGBINARY(...) \
445#define LOGBINARY2(...) \
448#define LOGBINARY3(...) \
451#define LOGUNARY(...) \
454#define LOGWATCH(...) \
464 LOGLITS (SIZE_STACK (solver->clause), BEGIN_STACK (solver->clause), \
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
#define ATTRIBUTE_FORMAT(FORMAT_POSITION, VARIADIC_ARGUMENT_POSITION)
ABC_NAMESPACE_HEADER_START typedef unsigned reference