mirror of
https://github.com/Z3Prover/z3
synced 2025-06-26 07:43:41 +00:00
Add parameter polysat.max_iterations for debugging
This commit is contained in:
parent
062ca92ebe
commit
afc292e5db
3 changed files with 5 additions and 1 deletions
|
@ -4,6 +4,7 @@ def_module_params('polysat',
|
||||||
params=(
|
params=(
|
||||||
('max_conflicts', UINT, UINT_MAX, "maximum number of conflicts before giving up"),
|
('max_conflicts', UINT, UINT_MAX, "maximum number of conflicts before giving up"),
|
||||||
('max_decisions', UINT, UINT_MAX, "maximum number of decisions before giving up"),
|
('max_decisions', UINT, UINT_MAX, "maximum number of decisions before giving up"),
|
||||||
|
('max_iterations', UINT, UINT_MAX, "maximum number of iterations before giving up"),
|
||||||
# ('log', UINT, UINT_MAX, "polysat logging filter (TODO)"),
|
# ('log', UINT, UINT_MAX, "polysat logging filter (TODO)"),
|
||||||
('log_start', UINT, UINT_MAX, "Enable logging on solver iteration N"),
|
('log_start', UINT, UINT_MAX, "Enable logging on solver iteration N"),
|
||||||
('log_conflicts', BOOL, False, "log conflicts"),
|
('log_conflicts', BOOL, False, "log conflicts"),
|
||||||
|
|
|
@ -80,6 +80,7 @@ namespace polysat {
|
||||||
m_params.append(p);
|
m_params.append(p);
|
||||||
m_config.m_max_conflicts = pp.max_conflicts();
|
m_config.m_max_conflicts = pp.max_conflicts();
|
||||||
m_config.m_max_decisions = pp.max_decisions();
|
m_config.m_max_decisions = pp.max_decisions();
|
||||||
|
m_config.m_max_iterations = pp.max_iterations();
|
||||||
m_config.m_log_start = pp.log_start();
|
m_config.m_log_start = pp.log_start();
|
||||||
m_config.m_log_conflicts = pp.log_conflicts();
|
m_config.m_log_conflicts = pp.log_conflicts();
|
||||||
m_config.m_slicing_congruence = pp.slicing_congruence();
|
m_config.m_slicing_congruence = pp.slicing_congruence();
|
||||||
|
@ -96,7 +97,8 @@ namespace polysat {
|
||||||
return
|
return
|
||||||
m_lim.inc() &&
|
m_lim.inc() &&
|
||||||
(m_stats.m_num_conflicts < config().m_max_conflicts) &&
|
(m_stats.m_num_conflicts < config().m_max_conflicts) &&
|
||||||
(m_stats.m_num_decisions < config().m_max_decisions);
|
(m_stats.m_num_decisions < config().m_max_decisions) &&
|
||||||
|
(m_stats.m_num_iterations < config().m_max_iterations);
|
||||||
}
|
}
|
||||||
|
|
||||||
lbool solver::check_sat() {
|
lbool solver::check_sat() {
|
||||||
|
|
|
@ -51,6 +51,7 @@ namespace polysat {
|
||||||
struct config_t {
|
struct config_t {
|
||||||
uint64_t m_max_conflicts = std::numeric_limits<uint64_t>::max();
|
uint64_t m_max_conflicts = std::numeric_limits<uint64_t>::max();
|
||||||
uint64_t m_max_decisions = std::numeric_limits<uint64_t>::max();
|
uint64_t m_max_decisions = std::numeric_limits<uint64_t>::max();
|
||||||
|
uint64_t m_max_iterations = std::numeric_limits<uint64_t>::max();
|
||||||
unsigned m_log_start = UINT_MAX;
|
unsigned m_log_start = UINT_MAX;
|
||||||
bool m_log_conflicts = false;
|
bool m_log_conflicts = false;
|
||||||
bool m_slicing_congruence = false;
|
bool m_slicing_congruence = false;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue