mirror of
https://github.com/Z3Prover/z3
synced 2025-08-23 03:27:52 +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
|
@ -56,6 +56,8 @@ public:
|
|||
|
||||
explicit rational(char const * v) { m().set(m_val, v); }
|
||||
|
||||
explicit rational(unsigned const * v, unsigned sz) { m().set(m_val, sz, v); }
|
||||
|
||||
struct i64 {};
|
||||
rational(int64_t i, i64) { m().set(m_val, i); }
|
||||
|
||||
|
@ -227,6 +229,12 @@ public:
|
|||
return r;
|
||||
}
|
||||
|
||||
friend inline rational machine_div2k(rational const & r1, unsigned k) {
|
||||
rational r;
|
||||
rational::m().machine_idiv2k(r1.m_val, k, r.m_val);
|
||||
return r;
|
||||
}
|
||||
|
||||
friend inline rational mod(rational const & r1, rational const & r2) {
|
||||
rational r;
|
||||
rational::m().mod(r1.m_val, r2.m_val, r.m_val);
|
||||
|
@ -353,6 +361,7 @@ public:
|
|||
}
|
||||
|
||||
bool mult_inverse(unsigned num_bits, rational & result) const;
|
||||
rational pseudo_inverse(unsigned num_bits) const;
|
||||
|
||||
static rational const & zero() {
|
||||
return m_zero;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue