CGAL 6.1 - Number Types
Loading...
Searching...
No Matches
CGAL::Gmpq Class Reference

#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

Gmpqs 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.