1083 {
1085 if (
solver->inconsistent)
1086 return;
1088 return;
1090 if (
solver->limits.factor.marked >= s->literals_factor) {
1093 "factorization skipped as no literals have been marked to be added "
1094 "(%" PRIu64 " < %" PRIu64,
1095 solver->limits.factor.marked, s->literals_factor);
1096 return;
1097 }
1099 INC (factorizations);
1101 "binary clause bounded variable addition");
1102 uint64_t limit =
GET_OPTION (factoriniticks);
1103 if (s->factorizations > 1) {
1105 limit = tmp;
1106 } else {
1108 "initially limiting to %" PRIu64
1109 " million factorization ticks",
1110 limit);
1111 limit *= 1e6;
1112 limit += s->factor_ticks;
1113 }
1114#ifndef KISSAT_QUIET
1115 struct {
1116 int64_t variables, binary, clauses, ticks;
1117 } before, after, delta;
1118 before.variables = s->variables_extension + s->variables_original;
1121 before.ticks = s->factor_ticks;
1122#endif
1124 connect_clauses_to_factor (
solver);
1125 bool completed = run_factorization (
solver, limit);
1127#ifndef KISSAT_QUIET
1128 after.variables = s->variables_extension + s->variables_original;
1131 after.ticks = s->factor_ticks;
1132 delta.variables = after.variables - before.variables;
1133 delta.binary = before.binary - after.binary;
1134 delta.clauses = before.clauses - after.clauses;
1135 delta.ticks = after.ticks - before.ticks;
1137 delta.ticks * 1e-6);
1139 "introduced %" PRId64 " extension variables %.0f%%",
1140 delta.variables,
1141 kissat_percent (delta.variables, before.variables));
1143 "removed %" PRId64 " binary clauses %.0f%%", delta.binary,
1144 kissat_percent (delta.binary, before.binary));
1146 "removed %" PRId64 " large clauses %.0f%%", delta.clauses,
1147 kissat_percent (delta.clauses, before.clauses));
1148#endif
1149 if (completed)
1150 solver->limits.factor.marked = s->literals_factor;
1152}
void kissat_enter_dense_mode(kissat *solver, litpairs *irredundant)
void kissat_resume_sparse_mode(kissat *solver, bool flush_eliminated, litpairs *irredundant)
#define KISSAT_assert(ignore)
#define SET_EFFORT_LIMIT(LIMIT, NAME, THRESHHOLD)
#define kissat_extremely_verbose(...)
#define kissat_very_verbose(...)
#define kissat_phase(...)
#define IRREDUNDANT_CLAUSES