mirror of
https://github.com/Z3Prover/z3
synced 2025-04-29 20:05:51 +00:00
add ddnf tests, add facility to solve QF_NRA + QF_UF(and other theories) in joint solver to allow broader use of QF_NRA core
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
9377779e58
commit
839e3fbb7c
20 changed files with 1158 additions and 8 deletions
|
@ -99,6 +99,20 @@ tbv* tbv_manager::allocate(tbv const& bv, unsigned const* permutation) {
|
|||
}
|
||||
return r;
|
||||
}
|
||||
tbv* tbv_manager::allocate(char const* bv) {
|
||||
tbv* result = allocateX();
|
||||
unsigned i = 0, sz = num_tbits();
|
||||
while(*bv && i < sz) {
|
||||
if (*bv == '0') set(*result, i++, tbit::BIT_0);
|
||||
else if (*bv == '1') set(*result, i++, tbit::BIT_1);
|
||||
else if (*bv == '*') i++;
|
||||
else if (i == 0 && (*bv == ' ' || *bv == '\t')) ;
|
||||
else break;
|
||||
++bv;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
tbv* tbv_manager::project(bit_vector const& to_delete, tbv const& src) {
|
||||
tbv* r = allocate();
|
||||
unsigned i, j;
|
||||
|
|
|
@ -55,6 +55,7 @@ public:
|
|||
tbv* allocate(rational const& r);
|
||||
tbv* allocate(uint64 n, unsigned hi, unsigned lo);
|
||||
tbv* allocate(tbv const& bv, unsigned const* permutation);
|
||||
tbv* allocate(char const* bv);
|
||||
|
||||
void deallocate(tbv* bv);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue