3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 17:15:31 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2018-05-01 15:02:04 -07:00
parent ef6339f14c
commit a07c6e4793
3 changed files with 16 additions and 11 deletions

View file

@ -515,6 +515,13 @@ public:
reset_denominator(c);
}
void machine_idiv_rem(mpq const & a, mpq const & b, mpq & c, mpq & d) {
SASSERT(is_int(a) && is_int(b));
machine_div_rem(a.m_num, b.m_num, c.m_num, d.m_num);
reset_denominator(c);
reset_denominator(d);
}
void machine_idiv(mpq const & a, mpq const & b, mpz & c) {
SASSERT(is_int(a) && is_int(b));
machine_div(a.m_num, b.m_num, c);

View file

@ -189,6 +189,12 @@ public:
return r;
}
friend inline rational machine_div_rem(rational const & r1, rational const & r2, rational & rem) {
rational r;
rational::m().machine_idiv(r1.m_val, r2.m_val, r.m_val, rem.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);