CGAL 6.1.2 - Number Types: CGAL::Gmpq Class Reference

CGAL 6.1.2 - Number Types

Loading...
Searching...
No Matches
List of all members | Related Functions
CGAL::Gmpq Class Reference
Reference Manual » GMP

`#include <CGAL/Gmpq.h>`

## Definition

An object of the class `Gmpq` is an arbitrary precision rational number based on the GMP library.

Is model of
  `Field`
  `RealEmbeddable`
  `Fraction`

Implementation

`Gmpq`s are reference counted.

## Related Functions
(Note that these are not member functions.)
std::ostream & | operator<< (std::ostream &out, const Gmpq &q)
| writes `q` to the ostream `out`, in the form `n/d`.
std::istream & | operator>> (std::istream &in, Gmpq &q)
| reads a number from `in`, then converts it to a `Gmpq`.

## Creation
| Gmpq ()
| creates an uninitialized `Gmpq` `q`.
| Gmpq (int i)
| creates a `Gmpq` initialized with `i`.
| Gmpq (Gmpz n)
| creates a `Gmpq` initialized with `n`.
| Gmpq (Gmpfr f)
| creates a `Gmpq` initialized with `f`.
| Gmpq (int n, int d)
| creates a `Gmpq` initialized with `n/d`.
| Gmpq (signed long n, unsigned long d)
| creates a `Gmpq` initialized with `n/d`.
| Gmpq (unsigned long n, unsigned long d)
| creates a `Gmpq` initialized with `n/d`.
| Gmpq (Gmpz n, Gmpz d)
| creates a `Gmpq` initialized with `n/d`.
| Gmpq (double d)
| creates a `Gmpq` initialized with `d`.
| Gmpq (const std::string &str)
| creates a `Gmpq` initialized with `str`, which can be an integer like "41" or a fraction like "41/152".
| Gmpq (const std::string &str, int base)
| creates a `Gmpq` initialized with `str` in base `base`, which is an integer between 2 and 62.

## Operations
There are two access functions, namely to the numerator and the denominator of a rational. Note that these values are not uniquely defined. It is guaranteed that `q.numerator()` and `q.denominator()` return values `nt_num` and `nt_den` such that `q = nt_num/nt_den`, only if `q.numerator()` and `q.denominator()` are called consecutively wrt. `q`, i.e. `q` is not involved in any other operation between these calls.
Gmpz | numerator () const
| returns the numerator of `q`.
Gmpz | denominator () const
| returns the denominator of `q`.

## Constructor & Destructor Documentation

## ◆ Gmpq() [1/2]

CGAL::Gmpq::Gmpq | ( | const std::string & | str | ) |

creates a `Gmpq` initialized with `str`, which can be an integer like "41" or a fraction like "41/152".

White space is allowed in the string, and ignored.

## ◆ Gmpq() [2/2]

CGAL::Gmpq::Gmpq | ( | const std::string & | str,
|  | int | base
| ) |  |

creates a `Gmpq` initialized with `str` in base `base`, which is an integer between 2 and 62.

White space in the string is ignored.

## Friends And Related Function Documentation

## ◆ operator>>()

std::istream & operator>> | ( | std::istream & | in,
|  | Gmpq & | q
| ) |  |
| related

reads a number from `in`, then converts it to a `Gmpq`.

The number may be an integer, a rational number in the form `n/d`, or a floating-point number.