mirror of
https://github.com/Z3Prover/z3
synced 2025-04-29 11:55:51 +00:00
working on #5614
there are some different sources for the performance regression illustrated by the example. The mitigations will be enabled separately: - m_bv_to_propagate is too expensive - lp_bound_propagator misses equalities in two different ways: - it resets row checks after backtracking even though they could still propagate - it misses equalities for fixed rows when the fixed constant value does not correspond to a fixed variable. FYI @levnach
This commit is contained in:
parent
a94e2e62af
commit
87d4ce2659
13 changed files with 422 additions and 385 deletions
|
@ -126,7 +126,7 @@ struct statistics {
|
|||
unsigned m_cross_nested_forms;
|
||||
unsigned m_grobner_calls;
|
||||
unsigned m_grobner_conflicts;
|
||||
unsigned m_cheap_eqs;
|
||||
unsigned m_offset_eqs;
|
||||
statistics() { reset(); }
|
||||
void reset() { memset(this, 0, sizeof(*this)); }
|
||||
void collect_statistics(::statistics& st) const {
|
||||
|
@ -147,7 +147,7 @@ struct statistics {
|
|||
st.update("arith-horner-cross-nested-forms", m_cross_nested_forms);
|
||||
st.update("arith-grobner-calls", m_grobner_calls);
|
||||
st.update("arith-grobner-conflicts", m_grobner_conflicts);
|
||||
st.update("arith-cheap-eqs", m_cheap_eqs);
|
||||
st.update("arith-offset-eqs", m_offset_eqs);
|
||||
|
||||
}
|
||||
};
|
||||
|
@ -242,10 +242,10 @@ private:
|
|||
unsigned m_nlsat_delay;
|
||||
bool m_enable_hnf { true };
|
||||
bool m_print_external_var_name { false };
|
||||
bool m_cheap_eqs { false };
|
||||
bool m_propagate_eqs { false };
|
||||
public:
|
||||
bool print_external_var_name() const { return m_print_external_var_name; }
|
||||
bool cheap_eqs() const { return m_cheap_eqs;}
|
||||
bool propagate_eqs() const { return m_propagate_eqs;}
|
||||
unsigned hnf_cut_period() const { return m_hnf_cut_period; }
|
||||
void set_hnf_cut_period(unsigned period) { m_hnf_cut_period = period; }
|
||||
unsigned random_next() { return m_rand(); }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue