Loading [MathJax]/extensions/TeX/newcommand.js
\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 5.0.2 - Number Types
All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Modules Pages
CGAL::Gmpzf Class Reference

#include <CGAL/Gmpzf.h>

Definition

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:

EuclideanRing

RealEmbeddable

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.