CGAL 5.4  Number Types

#include <CGAL/Gmpzf.h>
An object of the class Gmpzf
is a multipleprecision floatingpoint 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 multipleprecision number. This number type offers functionality very similar to MP_Float
but is generally faster.
Implementation
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 .  
Creation  
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 .  