CGAL 5.1 - Number Types
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. More...
 
std::istream & operator>> (std::istream &in, Gmpq &q)
 reads a number from in, then converts it to a Gmpq. More...
 

Creation

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

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. More...
 
Gmpz denominator () const
 returns the denominator of q. More...
 

Constructor & Destructor Documentation

◆ Gmpq() [1/11]

CGAL::Gmpq::Gmpq ( )

creates an uninitialized Gmpq q.

◆ Gmpq() [2/11]

CGAL::Gmpq::Gmpq ( int  i)

creates a Gmpq initialized with i.

◆ Gmpq() [3/11]

CGAL::Gmpq::Gmpq ( Gmpz  n)

creates a Gmpq initialized with n.

◆ Gmpq() [4/11]

CGAL::Gmpq::Gmpq ( Gmpfr  f)

creates a Gmpq initialized with f.

◆ Gmpq() [5/11]

CGAL::Gmpq::Gmpq ( int  n,
int  d 
)

creates a Gmpq initialized with n/d.

◆ Gmpq() [6/11]

CGAL::Gmpq::Gmpq ( signed long  n,
unsigned long  d 
)

creates a Gmpq initialized with n/d.

◆ Gmpq() [7/11]

CGAL::Gmpq::Gmpq ( unsigned long  n,
unsigned long  d 
)

creates a Gmpq initialized with n/d.

◆ Gmpq() [8/11]

CGAL::Gmpq::Gmpq ( Gmpz  n,
Gmpz  d 
)

creates a Gmpq initialized with n/d.

◆ Gmpq() [9/11]

CGAL::Gmpq::Gmpq ( double  d)

creates a Gmpq initialized with d.

◆ Gmpq() [10/11]

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() [11/11]

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.

Member Function Documentation

◆ denominator()

Gmpz CGAL::Gmpq::denominator ( ) const

returns the denominator of q.

◆ numerator()

Gmpz CGAL::Gmpq::numerator ( ) const

returns the numerator of q.

Friends And Related Function Documentation

◆ operator<<()

std::ostream & operator<< ( std::ostream &  out,
const Gmpq q 
)
related

writes q to the ostream out, in the form n/d.

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