Public Member Functions | |
std::ostream & | print (std::ostream &ostr) const |
Standard constructors. | |
RationalNumber (int num, unsigned int denom) | |
Constructor from numerator and denominator. | |
RationalNumber () | |
Default constructor. Initialize to zero. | |
RationalNumber (const RationalNumber &nb) | |
Copy constructor. | |
template<typename T> | |
RationalNumber (const T num) | |
Generic constructor. | |
Accessors | |
const int & | num () const |
Get the numerator. | |
const unsigned & | denom () const |
Get the denominator. | |
Usual Operators. | |
RationalNumber | operator+ (const RationalNumber &nb) const |
Usual numerical operator. | |
RationalNumber | operator- (const RationalNumber &nb) const |
Usual numerical operator. | |
RationalNumber | operator- () const |
Usual numerical operator. | |
RationalNumber | operator * (const RationalNumber &nb) const |
Usual numerical operator. | |
RationalNumber | operator/ (const RationalNumber &nb) const |
Usual numerical operator. | |
RationalNumber & | operator+= (const RationalNumber &nb) |
Usual numerical operator. | |
RationalNumber & | operator-= (const RationalNumber &nb) |
Usual numerical operator. | |
RationalNumber & | operator *= (const RationalNumber &nb) |
Usual numerical operator. | |
RationalNumber & | operator/= (const RationalNumber &nb) |
Usual numerical operator. | |
bool | operator< (const RationalNumber &nb) const |
Usual numerical operator. | |
bool | operator> (const RationalNumber &nb) const |
Usual numerical operator. | |
bool | operator<= (const RationalNumber &nb) const |
Usual numerical operator. | |
bool | operator>= (const RationalNumber &nb) const |
Usual numerical operator. | |
bool | operator== (const RationalNumber &nb) const |
Usual numerical operator. | |
bool | operator!= (const RationalNumber &nb) const |
Usual numerical operator. | |
Type conversion methods. | |
int | to_int () const |
Provide Explicit cast operator. | |
double | to_double () const |
Provide Explicit cast operator. | |
Protected Member Functions | |
Fraction simplification | |
RationalNumber & | set_result () |
Simplifies the fraction. | |
RationalNumber & | set_result (int num, unsigned int denom) |
Simplifies the fraction. | |
Protected Attributes | |
int | num_ |
unsigned int | denom_ |
This is a rational numbers implementation.
The way the constructor works ables us to work only on simplified fractions. So, the numerator (num_) and denominator(denom_) are always relatively prime.
Even after operations, the obtained fraction is simplified.
Definition at line 59 of file rational_number.hh.
|
Generic constructor.
Definition at line 60 of file rational_number.hxx. |
|
Provide Explicit cast operator.
Definition at line 229 of file rational_number.hxx. References RationalNumber::denom_, RationalNumber::num_, and precondition. |
|
Provide Explicit cast operator.
Definition at line 236 of file rational_number.hxx. References RationalNumber::denom_, and RationalNumber::num_. |
|
Simplifies the fraction.
Definition at line 87 of file rational_number.hxx. References RationalNumber::denom_, vcsn::algebra::gcd(), and RationalNumber::num_. Referenced by RationalNumber::operator *=(), RationalNumber::operator+=(), RationalNumber::operator-=(), RationalNumber::operator/=(), and RationalNumber::RationalNumber(). |
|
Simplifies the fraction.
Definition at line 78 of file rational_number.hxx. References RationalNumber::denom_, vcsn::algebra::gcd(), and RationalNumber::num_. |