\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 4.13 - Number Types
CGAL::Gmpzf Class Reference

#include <CGAL/Gmpzf.h>


An object of the class Gmpzf is a multiple-precision floating-point number which can represent numbers of the form \( m*2^e\), where \( m\) is an arbitrary precision integer based on the Gmp library, and \( e\) is of type long.

This type can be considered exact, even if the exponent is not a multiple-precision number. This number type offers functionality very similar to MP_Float but is generally faster.

Is Model Of:




The significand \( m\) of a Gmpzf is a Gmpz and is reference counted. The exponent \( e\) of a Gmpzf is a long.

Related Functions

(Note that these are not member functions.)

std::ostream & operator<< (std::ostream &out, const Gmpzf &f)
 writes a double approximation of f to the ostream out.
std::ostream & print (std::ostream &out, const Gmpzf &f)
 writes an exact representation of f to the ostream out.
std::istream & operator>> (std::istream &in, Gmpzf &f)
 reads a double from in, then converts it to a Gmpzf.


 Gmpzf ()
 creates a Gmpzf initialized with 0.
 Gmpzf (int i)
 creates a Gmpzf initialized with i.
 Gmpzf (long int l)
 creates a Gmpzf initialized with l.
 Gmpzf (const Gmpz &i)
 creates a Gmpzf initialized with i.
 Gmpzf (const Gmpfr &f)
 creates a Gmpzf initialized with f.
 Gmpzf (double d)
 creates a Gmpzf initialized with d.