CGAL 6.2 - Number Types

Loading...
Searching...
No Matches
List of all members | Related Functions
CGAL::Gmpz Class Reference
Reference Manual » GMP

`#include <CGAL/Gmpz.h>`

## Definition

An object of the class `Gmpz` is an arbitrary precision integer based on the GMP Library.

Is model of
  `EuclideanRing`
  `RealEmbeddable`

Implementation

`Gmpz`s are reference counted.

## Related Functions
(Note that these are not member functions.)
Gmpz | operator>> (const Gmpz &a, unsigned long i)
| rightshift by `i`.
Gmpz | operator<< (const Gmpz &a, unsigned long i)
| leftshift by `i`.
Gmpz | operator& (const Gmpz &a, const Gmpz &b)
| bitwise AND.
Gmpz | operator| (const Gmpz &a, const Gmpz &b)
| bitwise IOR.
Gmpz | operator^ (const Gmpz &a, const Gmpz &b)
| bitwise XOR.
std::ostream & | operator<< (std::ostream &out, const Gmpz &z)
| writes `z` to the ostream `out`.
std::istream & | operator>> (std::istream &in, Gmpz &z)
| reads an integer from `in`, then converts it to a `Gmpz`.

## Creation
| Gmpz ()
| creates an uninitialized multiple precision integer `z`.
| Gmpz (int i)
| creates a multiple-precision integer initialized with `i`.
| Gmpz (double d)
| creates a multiple-precision integer initialized with the integral part of `d`.

## Operations
Gmpz & | operator++ ()
| prefix increment.
Gmpz | operator++ (int)
| postfix increment.
Gmpz & | operator-- ()
| prefix decrement.
Gmpz | operator-- (int)
| postfix decrement.
Gmpz & | operator>>= (const long &i)
| rightshift by `i`, where `i >= 0`.
Gmpz & | operator<<= (const long &i)
| leftshift by `i`, where `i >= 0`.
Gmpz & | operator&= (const Gmpz &b)
| bitwise AND.
Gmpz & | operator|= (const Gmpz &b)
| bitwise IOR.
Gmpz & | operator^= (const Gmpz &b)
| bitwise XOR.
Sign | sign () const
| Returns the sign of `z`.
size_t | bit_size () const
| Returns the bit-size (that is, the number of bits needed to represent the mantissa) of `z`.
size_t | size () const
| Returns the size in limbs of `z`.
size_t | approximate_decimal_length () const
| Returns the approximate number of decimal digits needed to represent `z`.
double | to_double () const
| Returns a double approximation of `z`.

## Member Function Documentation

## ◆ approximate_decimal_length()

size_t CGAL::Gmpz::approximate_decimal_length | ( |  | ) | const

Returns the approximate number of decimal digits needed to represent `z`.

Approximate means either a correct result, either the correct result plus one.

## ◆ size()

size_t CGAL::Gmpz::size | ( |  | ) | const

Returns the size in limbs of `z`.

A limb is the type used by GMP to represent the integer (usually `long`).

## ◆ to_double()

double CGAL::Gmpz::to_double | ( |  | ) | const

Returns a double approximation of `z`.

The integer is truncated if needed. If the exponent of the conversion is too big, the result is system dependent (returning infinity where it is supported).