Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

RationalNumber Class Reference
[Semiring]

Rational numbers class. More...

List of all members.

Public Member Functions

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.

RationalNumberoperator+= (const RationalNumber &nb)
 Usual numerical operator.

RationalNumberoperator-= (const RationalNumber &nb)
 Usual numerical operator.

RationalNumberoperator *= (const RationalNumber &nb)
 Usual numerical operator.

RationalNumberoperator/= (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
RationalNumberset_result ()
 Simplifies the fraction.

RationalNumberset_result (int num, unsigned int denom)
 Simplifies the fraction.


Detailed Description

Rational numbers class.

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.

Author:
Sarah O'Connor <sarah@lrde.epita.fr>


Constructor & Destructor Documentation

RationalNumber const T  num  )  [explicit]
 

Generic constructor.

Precondition:
  • T should be implicitly convertible into an integer representation.
  • T should be implicitly constructible from an integer.
  • T should conform the following prerequisite: int(T(n)) / int(T(1)) == n


Member Function Documentation

int to_int  )  const [inline]
 

Provide Explicit cast operator.

to_int() and to_double() allow us to get respectively an integer and a double from the rational number. These numbers are obtained by dividing the fraction's numerator and denominator.

double to_double  )  const [inline]
 

Provide Explicit cast operator.

to_int() and to_double() allow us to get respectively an integer and a double from the rational number. These numbers are obtained by dividing the fraction's numerator and denominator.

RationalNumber & set_result  )  [inline, protected]
 

Simplifies the fraction.

set_result() is used to simplify the fraction. We use the GCD (Greatest Common Divisor) algorithm. When there are no arguments, it simply checks the numerator and denominator and modifies them if needed.

RationalNumber & set_result int  num,
unsigned int  denom
[inline, protected]
 

Simplifies the fraction.

set_result() is used to simplify the fraction. We use the GCD (Greatest Common Divisor) algorithm. When there are no arguments, it simply checks the numerator and denominator and modifies them if needed.


Generated on Mon Mar 29 15:42:54 2004 for Vaucanson by doxygen 1.3.6-20040222