mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 17:15:31 +00:00
Shared features from polysat branch (#6567)
* Allow setting default debug action * Fix dlist and add iterator * Add var_queue iterator * Add some helpers * rational: machine_div2k and pseudo_inverse * Basic support for non-copyable types in map * tbv helpers * pdd updates * Remove duplicate functions gcc doesn't like having both versions
This commit is contained in:
parent
be44ace995
commit
d69155b9e9
13 changed files with 456 additions and 62 deletions
|
@ -571,6 +571,38 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
static void subst_get() {
|
||||
std::cout << "subst_get\n";
|
||||
pdd_manager m(4, pdd_manager::mod2N_e, 32);
|
||||
|
||||
unsigned const va = 0;
|
||||
unsigned const vb = 1;
|
||||
unsigned const vc = 2;
|
||||
unsigned const vd = 3;
|
||||
|
||||
rational val;
|
||||
pdd s = m.one();
|
||||
std::cout << s << "\n";
|
||||
VERIFY(!s.subst_get(va, val));
|
||||
VERIFY(!s.subst_get(vb, val));
|
||||
VERIFY(!s.subst_get(vc, val));
|
||||
VERIFY(!s.subst_get(vd, val));
|
||||
|
||||
s = s.subst_add(va, rational(5));
|
||||
std::cout << s << "\n";
|
||||
VERIFY(s.subst_get(va, val) && val == 5);
|
||||
VERIFY(!s.subst_get(vb, val));
|
||||
VERIFY(!s.subst_get(vc, val));
|
||||
VERIFY(!s.subst_get(vd, val));
|
||||
|
||||
s = s.subst_add(vc, rational(7));
|
||||
std::cout << s << "\n";
|
||||
VERIFY(s.subst_get(va, val) && val == 5);
|
||||
VERIFY(!s.subst_get(vb, val));
|
||||
VERIFY(s.subst_get(vc, val) && val == 7);
|
||||
VERIFY(!s.subst_get(vd, val));
|
||||
}
|
||||
|
||||
static void univariate() {
|
||||
std::cout << "univariate\n";
|
||||
pdd_manager m(4, pdd_manager::mod2N_e, 4);
|
||||
|
@ -671,6 +703,7 @@ void tst_pdd() {
|
|||
dd::test::binary_resolve();
|
||||
dd::test::pow();
|
||||
dd::test::subst_val();
|
||||
dd::test::subst_get();
|
||||
dd::test::univariate();
|
||||
dd::test::factors();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue