From be8c539171d49d116cfe877cef1b5da21066314c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Sat, 9 Jun 2018 01:07:16 -0400 Subject: [PATCH] rational: fix comparison with integer Change-Id: I77ef41dca57022836681f9b4359fcba0e5b5bd0f Reviewed-by: Philippe Gorley <philippe.gorley@savoirfairelinux.com> --- src/rational.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rational.h b/src/rational.h index c9263e263b..bab02e1213 100644 --- a/src/rational.h +++ b/src/rational.h @@ -125,8 +125,8 @@ public: bool operator!= (const rational& r) const { return num_ * r.den_ != den_ * r.num_; } // Comparison with integers - bool operator< (I i) const { return num_ < i * den_; } - bool operator> (I i) const { return num_ > i * den_; } + bool operator< (I i) const { return den_ < 0 ? (num_ > i * den_) : (num_ < i * den_); } + bool operator> (I i) const { return den_ < 0 ? (num_ < i * den_) : (num_ > i * den_); } bool operator== (I i) const { return num_ == i * den_; } bool operator!= (I i) const { return num_ != i * den_; } private: -- GitLab