next up previous contents index
Next: The data type bigfloat Up: Number Types and Linear Previous: Integers of Arbitrary Length   Contents   Index


Rational Numbers ( rational )

Definition

An instance q of type rational is a rational number where the numerator and the denominator are both of type integer .

#include < LEDA/numbers/rational.h >

Creation

rational q creates an instance q of type rational.

rational q(integer n) creates an instance q of type rational and initializes it with the integer n .

rational q(integer n, integer d) creates an instance q of type rational and initializes it to the rational number n/d .

rational q(double x) creates an instance q of type rational and initializes it with the value of x .

Operations

The arithmetic operations + , - , * , / , + = , - = , * = , / = , - (unary), + + , - - , the comparison operations < , < = , > , > = , = = , ! = and the stream operations are all available.

void q.negate() negates q.

void q.invert() inverts q.

rational q.inverse() returns the inverse of q.

integer q.numerator() returns the numerator of q .

integer q.denominator() returns the denominator of q .

rational& q.simplify(const integer& a)
    simplifies q by a .
Precondition a divides the numerator and the denominator of q .

rational& q.normalize() normalizes q.

double to_float() returns a double floating point approximation of q. If the q is approximable by a normalized, finite floating point number, the error is 3ulps, i.e., three units in the last place.

string q.to_string() returns a string representation of q.

Non-member functions

int sign(const rational& q) returns the sign of q .

rational abs(const rational& q) returns the absolute value of q .

rational sqr(const rational& q) returns the square of q .

integer trunc(const rational& q) returns the integer with the next smaller absolute value.

rational pow(const rational& q, int n)
    returns the n -th power of q .

rational pow(const rational& q, integer a)
    returns the a -th power of q .

integer floor(const rational& q) returns the next smaller integer .

integer ceil(const rational& q) returns the next bigger integer .

integer round(const rational& q) rounds q to the nearest integer .

rational small_rational_between(const rational& p, const rational& q)
    returns a rational number between p and q whose denominator is as small as possible.

rational small_rational_near(const rational& p, rational eps)
    returns a rational number between p - eps and p + eps whose denominator is as small as possible.

Implementation

A rational is implemented by two integer numbers which represent the numerator and the denominator. The sign is represented by the sign of the numerator.


next up previous contents index
Next: The data type bigfloat Up: Number Types and Linear Previous: Integers of Arbitrary Length   Contents   Index
Christian Uhrig 2017-04-07