From 92158ac6075fbaedeb1521d0aef24261b3b71b7c Mon Sep 17 00:00:00 2001 From: Nuno Lopes Date: Sun, 15 Feb 2026 16:27:51 +0000 Subject: [PATCH] fix --- src/util/mpq.h | 6 +++--- src/util/rational.h | 14 +++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/util/mpq.h b/src/util/mpq.h index 83992111f..cef964a9e 100644 --- a/src/util/mpq.h +++ b/src/util/mpq.h @@ -679,11 +679,11 @@ public: reset_denominator(a); } - void set(mpq & a, int n, int d) { + void set(mpq & a, int64_t n, int64_t d) { SASSERT(d != 0); if (d < 0) { - SASSERT(d != INT_MIN); - SASSERT(n != INT_MIN); + SASSERT(d != std::numeric_limits()); + SASSERT(n != std::numeric_limits()); n = -n; d = -d; } diff --git a/src/util/rational.h b/src/util/rational.h index 888386678..3b5485d59 100644 --- a/src/util/rational.h +++ b/src/util/rational.h @@ -50,7 +50,7 @@ public: explicit rational(uint64_t n) { m().set(m_val, n); } - rational(int n, int d) { m().set(m_val, n, d); } + rational(int64_t n, int64_t d) { m().set(m_val, n, d); } rational(mpq const & q) { m().set(m_val, q); } rational(mpq && q) noexcept : m_val(std::move(q)) {} rational(mpz const & z) { m().set(m_val, z); } @@ -290,7 +290,7 @@ public: rational r = mod(a,b); SASSERT(r.is_nonneg()); rational r2 = r; - r2 *= rational(2); + r2 *= rational(2ull); if (operator<(b, r2)) { r -= b; } @@ -510,11 +510,11 @@ public: } unsigned get_num_bits() const { - return get_num_digits(rational(2)); + return get_num_digits(rational(2ull)); } unsigned get_num_decimal() const { - return get_num_digits(rational(10)); + return get_num_digits(rational(10ull)); } /** @@ -646,14 +646,14 @@ inline rational operator*(rational const & r1, rational const & r2) { inline rational operator*(rational const & r1, bool r2) { UNREACHABLE(); - return r1 * rational(r2); + return r1 * rational((uint64_t)r2); } inline rational operator*(rational const & r1, int64_t r2) { return r1 * rational(r2); } -inline rational operator*(bool r1, rational const & r2) { +inline rational operator*(bool r1, rational const & r2) { UNREACHABLE(); - return rational(r1) * r2; + return rational((uint64_t)r1) * r2; } inline rational operator*(int64_t r1, rational const & r2) {