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.