1402 {
1403 if (
solver->inconsistent)
1404 return;
1409 return;
1411 return;
1413 double tier1_budget =
GET_OPTION (vivifytier1);
1414 double tier2_budget =
GET_OPTION (vivifytier2);
1415 double tier3_buget =
GET_OPTION (vivifytier3);
1417 tier1_budget = tier2_budget = tier3_buget = 0;
1418 double sum = irr_budget + tier1_budget + tier2_budget + tier3_buget;
1419 if (!sum)
1420 return;
1421
1423 INC (vivifications);
1424#if !defined(KISSAT_NDEBUG) || defined(METRICS)
1426 solver->vivifying =
true;
1427#endif
1428
1430 const uint64_t total = limit -
solver->statistics_.probing_ticks;
1431 limit =
solver->statistics_.probing_ticks;
1432 unsigned tier1_limit = vivify_tier1_limit (
solver);
1433 unsigned tier2_limit = vivify_tier2_limit (
solver);
1434 if (tier1_budget && tier2_budget && tier1_limit == tier2_limit) {
1435 tier1_budget += tier2_budget, tier2_budget = 0;
1436 LOG (
"vivification tier1 matches tier2 "
1437 "thus using tier2 budget for tier1");
1438 }
1439
1440 {
1443 if (tier1_budget) {
1444 limit += (total * tier1_budget) / sum;
1446 }
1447 if (tier2_budget && !
solver->inconsistent &&
1449 limit += (total * tier2_budget) / sum;
1451 }
1452 if (tier3_buget && !
solver->inconsistent &&
1454 limit += (total * tier3_buget) / sum;
1456 }
1457 if (irr_budget && !
solver->inconsistent &&
1459 limit += (total * irr_budget) / sum;
1460 vivify_irredundant (&
vivifier, limit);
1463 else
1465 }
1467 }
1468
1469#ifndef KISSAT_QUIET
1470 if (
solver->statistics_.probing_ticks < limit) {
1471 uint64_t delta = limit -
solver->statistics_.probing_ticks;
1473 "has %" PRIu64 " ticks left %.2f%%", delta,
1474 kissat_percent (delta, total));
1475 } else {
1476 uint64_t delta =
solver->statistics_.probing_ticks - limit;
1478 "exceeded by %" PRIu64 " ticks %.2f%%", delta,
1479 kissat_percent (delta, total));
1480 }
1481#endif
1482#if !defined(KISSAT_NDEBUG) || defined(METRICS)
1484 solver->vivifying =
false;
1485#endif
1487}
#define REDUCE_DELAY(NAME)
#define KISSAT_assert(ignore)
#define SET_EFFORT_LIMIT(LIMIT, NAME, THRESHHOLD)
#define kissat_phase(...)
#define REDUNDANT_CLAUSES
#define vivify_terminated_3
#define vivify_terminated_5
#define vivify_terminated_2
#define vivify_terminated_4