summaryrefslogtreecommitdiffstats
path: root/sigmod/Fraction.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sigmod/Fraction.cpp')
-rw-r--r--sigmod/Fraction.cpp22
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)