diff --git a/src/numerics/mpbq.h b/src/numerics/mpbq.h index 68b7c61b8c..febd2a55b8 100644 --- a/src/numerics/mpbq.h +++ b/src/numerics/mpbq.h @@ -246,6 +246,7 @@ public: template<> class numeric_traits { public: + static bool precise() { return true; } static bool is_zero(mpbq const & v) { return v.is_zero(); } static bool is_pos(mpbq const & v) { return v.is_pos(); } static bool is_neg(mpbq const & v) { return v.is_neg(); } diff --git a/src/numerics/mpq.h b/src/numerics/mpq.h index 36f204e40d..396e88f654 100644 --- a/src/numerics/mpq.h +++ b/src/numerics/mpq.h @@ -211,6 +211,7 @@ public: template<> class numeric_traits { public: + static bool precise() { return true; } static bool is_zero(mpq const & v) { return v.is_zero(); } static bool is_pos(mpq const & v) { return v.is_pos(); } static bool is_neg(mpq const & v) { return v.is_neg(); } diff --git a/src/numerics/mpz.h b/src/numerics/mpz.h index 8904de9e0b..f73d7c4cf3 100644 --- a/src/numerics/mpz.h +++ b/src/numerics/mpz.h @@ -221,6 +221,7 @@ public: template<> class numeric_traits { public: + static bool precise() { return true; } static bool is_zero(mpz const & v) { return v.is_zero(); } static bool is_pos(mpz const & v) { return v.is_pos(); } static bool is_neg(mpz const & v) { return v.is_neg(); } diff --git a/src/numerics/numeric_traits.h b/src/numerics/numeric_traits.h index 451bc49ab6..0dc70a35ca 100644 --- a/src/numerics/numeric_traits.h +++ b/src/numerics/numeric_traits.h @@ -18,6 +18,7 @@ void double_power(double & v, unsigned k); template<> class numeric_traits { public: + static bool precise() { return false; } static bool is_zero(double v) { return v == 0.0; } static bool is_pos(double v) { return v > 0.0; } static bool is_neg(double v) { return v < 0.0; }