diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2008-10-17 05:46:40 +0000 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2008-10-17 05:46:40 +0000 |
| commit | b3e1495f7a626bb4429ff5e4f3ad39ae9654f23b (patch) | |
| tree | 8a188df964484e7dcf630e792dccfa1766c2f8f0 /sigmod/Fraction.cpp | |
| parent | 47428274a07bce9be5e62f82aeeb7e57aa21037f (diff) | |
| download | sigen-b3e1495f7a626bb4429ff5e4f3ad39ae9654f23b.tar.gz sigen-b3e1495f7a626bb4429ff5e4f3ad39ae9654f23b.tar.xz sigen-b3e1495f7a626bb4429ff5e4f3ad39ae9654f23b.zip | |
[FIX] Moved Hat, Fraction, Matrix, and Script to sigcore
git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@281 6ecfd1a5-f3ed-3746-8530-beee90d26b22
Diffstat (limited to 'sigmod/Fraction.cpp')
| -rw-r--r-- | sigmod/Fraction.cpp | 177 |
1 files changed, 0 insertions, 177 deletions
diff --git a/sigmod/Fraction.cpp b/sigmod/Fraction.cpp deleted file mode 100644 index c27c2e6e..00000000 --- a/sigmod/Fraction.cpp +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Copyright 2007-2008 Ben Boeckel <MathStuf@gmail.com> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -/** - * \file sigmod/Fraction.cpp - */ - -// Header include -#include "Fraction.h" - -Sigmod::Fraction::Fraction(const int numerator, const int denominator) -{ - set(numerator, denominator); -} - -Sigmod::Fraction::Fraction(const Fraction& fraction) -{ - set(fraction.numerator(), fraction.denominator()); -} - -void Sigmod::Fraction::set(const int numerator, const int denominator) -{ - m_numerator = numerator; - m_denominator = denominator; - normalize(); -} - -void Sigmod::Fraction::setNumerator(const int numerator) -{ - set(numerator, m_denominator); -} - -void Sigmod::Fraction::setDenominator(const int denominator) -{ - set(m_numerator, denominator); -} - -int Sigmod::Fraction::numerator() const -{ - return m_numerator; -} - -int Sigmod::Fraction::denominator() const -{ - return m_denominator; -} - -void Sigmod::Fraction::reduce() -{ - if (!m_numerator || !m_denominator) - return; - int i = m_numerator; - int j = m_denominator; - if (i < 0) - i = -i; - while (i - j) - (i > j) ? (i -= j) : (j -= i); - m_numerator /= i; - m_denominator /= i; -} - -bool Sigmod::Fraction::poll() const -{ - return (qrand() % m_denominator) < m_numerator; -} - -bool Sigmod::Fraction::poll(const int numerator, const int denominator) -{ - return (qrand() % denominator) < numerator; -} - -Sigmod::Fraction& Sigmod::Fraction::operator=(const Fraction& rhs) -{ - if (this == &rhs) - return *this; - m_numerator = rhs.m_numerator; - m_denominator = rhs.m_denominator; - return *this; -} - -Sigmod::Fraction::operator double() const -{ - return (double(m_numerator) / m_denominator); -} - -Sigmod::Fraction Sigmod::Fraction::operator+(const Fraction& rhs) const -{ - return Fraction((m_numerator * rhs.m_denominator) + (m_denominator * rhs.m_numerator), m_denominator * rhs.m_denominator); -} - -Sigmod::Fraction Sigmod::Fraction::operator-(const Fraction& rhs) const -{ - return Fraction((m_numerator * rhs.m_denominator) - (m_denominator * rhs.m_numerator), m_denominator * rhs.m_denominator); -} - -Sigmod::Fraction Sigmod::Fraction::operator*(const Fraction& rhs) const -{ - return Fraction(m_numerator * rhs.m_numerator, m_denominator * rhs.m_denominator); -} - -Sigmod::Fraction Sigmod::Fraction::operator/(const Fraction& rhs) const -{ - return Fraction(m_numerator * rhs.m_denominator, m_denominator * rhs.m_numerator); -} - -Sigmod::Fraction& Sigmod::Fraction::operator+=(const Fraction& rhs) -{ - return *this = *this + rhs; -} - -Sigmod::Fraction& Sigmod::Fraction::operator-=(const Fraction& rhs) -{ - return *this = *this - rhs; -} - -Sigmod::Fraction& Sigmod::Fraction::operator*=(const Fraction& rhs) -{ - return *this = *this * rhs; -} - -Sigmod::Fraction& Sigmod::Fraction::operator/=(const Fraction& rhs) -{ - return *this = *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 !(*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) - { - m_denominator = -m_denominator; - m_numerator = -m_numerator; - } -} |
