mirror of
https://github.com/Z3Prover/z3
synced 2026-07-02 13:26:10 +00:00
lp: add lp.random_cut_period to toggle randomized cut/cube gates
Introduce the boolean lp.random_cut_period parameter (default true). When enabled, the periodic integer heuristic gates (find_cube, lcube, hnf, gomory, dio) fire at random with the same 1/period expected rate; when disabled they fall back to the deterministic every-k-th-call modulus on m_number_of_calls. The shared hit_period() helper centralizes this decision, and m_number_of_calls is restored for the deterministic path. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
parent
029ce10d22
commit
30dc804d25
4 changed files with 26 additions and 14 deletions
|
|
@ -264,6 +264,7 @@ private:
|
|||
bool m_dio_ignore_big_nums = false;
|
||||
unsigned m_dio_calls_period = 4;
|
||||
bool m_dio_run_gcd = true;
|
||||
bool m_random_cut_period = true;
|
||||
bool m_lcube = true;
|
||||
unsigned m_lcube_flips = 16;
|
||||
public:
|
||||
|
|
@ -271,6 +272,8 @@ public:
|
|||
unsigned lcube_flips() const { return m_lcube_flips; }
|
||||
unsigned dio_calls_period() const { return m_dio_calls_period; }
|
||||
unsigned & dio_calls_period() { return m_dio_calls_period; }
|
||||
bool random_cut_period() const { return m_random_cut_period; }
|
||||
bool & random_cut_period() { return m_random_cut_period; }
|
||||
bool print_external_var_name() const { return m_print_external_var_name; }
|
||||
bool propagate_eqs() const { return m_propagate_eqs;}
|
||||
unsigned hnf_cut_period() const { return m_hnf_cut_period; }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue