Rational NumbersThe data type rational represents a rational number, i.e., the quotient of two integer numbers. A rational is implemented by two Integers of Arbitrary Length, representing the numerator and denominator. Remark: Rational Numbers are not necessarily normalized, that 
        is, numerator and denominator may have common factors. Call  ExampleThe following program shows how  
#include <LEDA/numbers/rational.h>
#include <LEDA/numbers/integer.h>
using namespace leda;
int main() {
  integer denominator=1;
  int i; 
  for (i=1;i<=40;i++) {denominator*=i;} //generate denominator that does
                                        //not fit into a double :-)
  rational r(1000,denominator);         //create a rational r   
  std::cout << "r=" << r << std::endl;
  //operations on and with r
  r.normalize();                                     
  std::cout << "After r.normalize(): r=" << r << std::endl;
  rational s=3.0*r+r.inverse();
  std::cout << "\ns=" << s << std::endl;
 
  r.invert();
  std::cout << "\nAfter r.invert(): r=" << r << std::endl;
  std::cout << "\nsqr(r)="  << sqr(r)  << std::endl;
  std::cout << "\nceil(r)=" << ceil(r) << std::endl;
  return 0;
}	    
      Strengths
 Disadvantages
 TipsUse rationals if you need exact arithmetic for rational numbers. | 
     
      See also:Vectors and Matrices with Integer Entries Vectors and Matrices with Double Entries Functions of numerical analysis Manual Entries:  |