mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 17:15:31 +00:00
Arith min max (#6864)
* prepare for dependencies Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * snapshot Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * more refactoring Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * more refactoring Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * build Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * pass in u_dependency_manager Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * address NYIs Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * more refactoring names Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * eq_explanation update Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * add outline of bounds improvement functionality Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * fix unit tests Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * remove unused structs Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * more bounds Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * more bounds Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * convert more internals to use u_dependency instead of constraint_index Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * convert more internals to use u_dependency instead of constraint_index Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * remember to push/pop scopes Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * use the main function for updating bounds Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * na Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * na Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * remove reset of shared dep manager Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * disable improve-bounds, add statistics Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> --------- Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
c3b344ec47
commit
5e3df9ee77
40 changed files with 630 additions and 529 deletions
|
@ -69,7 +69,7 @@ private:
|
|||
|
||||
value_manager & m_vmanager;
|
||||
allocator & m_allocator;
|
||||
ptr_vector<dependency> m_todo;
|
||||
mutable ptr_vector<dependency> m_todo;
|
||||
|
||||
void inc_ref(value const & v) {
|
||||
if (C::ref_count)
|
||||
|
@ -106,12 +106,9 @@ private:
|
|||
}
|
||||
}
|
||||
|
||||
void unmark_todo() {
|
||||
typename ptr_vector<dependency>::iterator it = m_todo.begin();
|
||||
typename ptr_vector<dependency>::iterator end = m_todo.end();
|
||||
for (; it != end; ++it) {
|
||||
(*it)->unmark();
|
||||
}
|
||||
void unmark_todo() const {
|
||||
for (auto* d : m_todo)
|
||||
d->unmark();
|
||||
m_todo.reset();
|
||||
}
|
||||
|
||||
|
@ -193,7 +190,7 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
void linearize(dependency * d, vector<value, false> & vs) {
|
||||
void linearize(dependency * d, vector<value, false> & vs) const {
|
||||
if (d) {
|
||||
m_todo.reset();
|
||||
d->mark();
|
||||
|
@ -300,7 +297,7 @@ public:
|
|||
return m_dep_manager.contains(d, v);
|
||||
}
|
||||
|
||||
void linearize(dependency * d, vector<value, false> & vs) {
|
||||
void linearize(dependency * d, vector<value, false> & vs) const {
|
||||
return m_dep_manager.linearize(d, vs);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue