11void Logger::print_log_prefix (
Internal *internal) {
12 internal->print_prefix ();
14 fputs (
"LOG ", stdout);
16 printf (
"%d ", internal->level);
20void Logger::log_empty_line (
Internal *internal) {
21 internal->print_prefix ();
23 const int len = internal->prefix.size (), max = 78 - len;
24 for (
int i = 0; i < max; i++)
31void Logger::log (
Internal *internal,
const char *fmt, ...) {
32 print_log_prefix (internal);
48void Logger::log (
Internal *internal,
const Clause *c,
const char *fmt,
50 print_log_prefix (internal);
58 printf (
" glue %d redundant", c->glue);
60 printf (
" irredundant");
61 printf (
" size %d clause[%" PRId64
"]", c->size, c->id);
63 printf (
" ... (moved)");
65 if (internal->opts.logsort) {
67 for (
const auto &
lit : *c)
70 for (
const auto &
lit : s)
73 for (
const auto &
lit : *c) {
74 printf (
" %s", loglit (internal,
lit).c_str ());
78 }
else if (internal->level)
87void Logger::log (
Internal *internal,
const Gate *g,
const char *fmt, ...) {
88 print_log_prefix (internal);
95 printf (
"%s%s%s gate[%" PRIu64
"] (arity: %ld) %s := %s",
96 g->degenerated_and_pos ?
" deg+" :
"",
97 g->degenerated_and_neg ?
" deg-" :
"",
98 g->garbage ?
" garbage" :
"", g->id, g->arity (),
99 loglit (internal, g->lhs).c_str (),
101 for (
const auto &
lit : g->rhs) {
102 printf (
" %s", loglit (internal,
lit).c_str ());
105 printf (
" null gate");
106 fputc (
'\n', stdout);
113void Logger::log (
Internal *internal,
const vector<int> &c,
const char *fmt,
115 print_log_prefix (internal);
121 if (internal->opts.logsort) {
123 for (
const auto &
lit : c)
126 for (
const auto &
lit : s)
129 for (
const auto &
lit : c)
132 fputc (
'\n', stdout);
139void Logger::log (
Internal *internal,
140 const vector<int>::const_iterator &begin,
141 const vector<int>::const_iterator &end,
const char *fmt,
143 print_log_prefix (internal);
149 if (internal->opts.logsort) {
151 for (
auto p = begin;
p != end;
p++)
154 for (
const auto &
lit : s)
157 for (
auto p = begin;
p != end;
p++)
160 fputc (
'\n', stdout);
167void Logger::log (
Internal *internal,
const vector<int64_t> &c,
168 const char *fmt, ...) {
169 print_log_prefix (internal);
175 for (
const auto &
id : c)
176 printf (
" %" PRId64,
id);
177 fputc (
'\n', stdout);
184void Logger::log (
Internal *internal,
const int *literals,
185 const unsigned size,
const char *fmt, ...) {
186 print_log_prefix (internal);
192 for (
unsigned i = 0; i <
size; i++) {
193 const int lit = literals[i];
196 fputc (
'\n', stdout);
201string Logger::loglit (
Internal *internal,
int lit) {
202 std::string v = std::to_string (
lit);
203 if (
lit && -internal->max_var <=
lit && internal->max_var >=
lit) {
204 const int va = internal->val (
lit);
206 v = v +
"@" + std::to_string (internal->var (
lit).level);
207 if (!internal->var (
lit).reason)
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
std::string string_of_gate(Gate_Type t)
void sort(T *array, int size, LessThan lt)