diff options
Diffstat (limited to 'sigmod/Fraction.cpp')
| -rw-r--r-- | sigmod/Fraction.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/sigmod/Fraction.cpp b/sigmod/Fraction.cpp index 8bafe022..c27c2e6e 100644 --- a/sigmod/Fraction.cpp +++ b/sigmod/Fraction.cpp @@ -139,7 +139,7 @@ Sigmod::Fraction& Sigmod::Fraction::operator/=(const Fraction& rhs) bool Sigmod::Fraction::operator==(const Fraction& rhs) const { - return ((m_numerator == rhs.m_numerator) && (m_denominator == rhs.m_denominator)); + return ((m_numerator * rhs.m_denominator) == (m_denominator * rhs.m_numerator)); } bool Sigmod::Fraction::operator!=(const Fraction& rhs) const @@ -147,6 +147,26 @@ bool Sigmod::Fraction::operator!=(const Fraction& rhs) const return !(*this == rhs); } +bool Sigmod::Fraction::operator<(const Fraction& rhs) const +{ + return ((m_numerator * rhs.m_denominator) < (m_denominator * rhs.m_numerator)); +} + +bool Sigmod::Fraction::operator<=(const Fraction& rhs) const +{ + return ((m_numerator * rhs.m_denominator) <= (m_denominator * rhs.m_numerator)); +} + +bool Sigmod::Fraction::operator>(const Fraction& rhs) const +{ + return !(*this <= rhs); +} + +bool Sigmod::Fraction::operator>=(const Fraction& rhs) const +{ + return !(*this < rhs); +} + void Sigmod::Fraction::normalize() { if (m_denominator < 0) |
