1650 {
1652 return false;
1653 if (
solver->inconsistent)
1654 return false;
1656 return false;
1658 return false;
1664 uint64_t equivalences =
statistics->sweep_equivalences;
1668 const unsigned scheduled = schedule_sweeping (&
sweeper);
1669 uint64_t swept = 0, limit = 10;
1670 for (;;) {
1671 if (
solver->inconsistent)
1672 break;
1674 break;
1676 break;
1677 unsigned idx = next_scheduled (&
sweeper);
1679 break;
1680 FLAGS (idx)->sweep =
false;
1681#ifndef KISSAT_QUIET
1682 const char *res =
1683#endif
1684 sweep_variable (&
sweeper, idx);
1686 solver,
"swept[%" PRIu64
"] external variable %d %s", swept,
1687 kissat_export_literal (
solver,
LIT (idx)), res);
1688 if (++swept == limit) {
1690 "found %" PRIu64 " equivalences and %" PRIu64
1691 " units after sweeping %" PRIu64 " variables ",
1692 statistics->sweep_equivalences - equivalences,
1693 solver->statistics_.sweep_units - units, swept);
1694 limit *= 10;
1695 }
1696 }
1698 equivalences =
statistics->sweep_equivalences - equivalences,
1699 units =
solver->statistics_.sweep_units - units;
1701 "found %" PRIu64 " equivalences and %" PRIu64 " units",
1702 equivalences, units);
1703 unschedule_sweeping (&
sweeper, swept, scheduled);
1704 unsigned inactive = release_sweeper (&
sweeper);
1705
1706 if (!
solver->inconsistent) {
1709 }
1710
1711 uint64_t eliminated = equivalences + units;
1712#ifndef KISSAT_QUIET
1714 solver->active -= inactive;
1715 REPORT (!eliminated,
'=');
1716 solver->active += inactive;
1717#else
1718 (void) inactive;
1719#endif
1720 if (kissat_average (eliminated, swept) < 0.001)
1722 else
1725 return eliminated;
1726}
#define REDUCE_DELAY(NAME)
#define KISSAT_assert(ignore)
#define kissat_extremely_verbose(...)
#define kissat_very_verbose(...)
#define kissat_phase(...)
clause * kissat_probing_propagate(kissat *solver, clause *ignore, bool flush)
struct sweeper::@220272220222261246232307276064033320167134062222 limit
#define sweep_terminated_7
#define sweep_terminated_8