# Parma_Polyhedra_Library::GMP_Integer Class Reference
[C++ Language Interface]

Unbounded integers as provided by the GMP library. More...

List of all members.

## Related Functions

(Note that these are not member functions.)
void | swap (Parma_Polyhedra_Library::GMP_Integer &x, Parma_Polyhedra_Library::GMP_Integer &y)
| Specializes `std::swap`.
Accessor Functions
const mpz_class & | raw_value (const GMP_Integer &x)
| Returns a const reference to the underlying integer value.
mpz_class & | raw_value (GMP_Integer &x)
| Returns a reference to the underlying integer value.
Memory Size Inspection Functions
memory_size_type | total_memory_in_bytes (const GMP_Integer &x)
| Returns the total size in bytes of the memory occupied by `x`.
memory_size_type | external_memory_in_bytes (const GMP_Integer &x)
| Returns the size in bytes of the memory managed by `x`.
Arithmetic Operators
void | neg_assign (GMP_Integer &x)
| Assigns to `x` its negation.
void | neg_assign (GMP_Integer &x, const GMP_Integer &y)
| Assigns to `x` the negation of `y`.
void | gcd_assign (GMP_Integer &x, const GMP_Integer &y, const GMP_Integer &z)
| Assigns to `x` the greatest common divisor of `y` and `z`.
void | gcdext_assign (GMP_Integer &x, const GMP_Integer &y, const GMP_Integer &z, GMP_Integer &s, GMP_Integer &t)
| Extended GCD.
void | lcm_assign (GMP_Integer &x, const GMP_Integer &y, const GMP_Integer &z)
| Assigns to `x` the least common multiple of `y` and `z`.
void | add_mul_assign (GMP_Integer &x, const GMP_Integer &y, const GMP_Integer &z)
| Assigns to `x` the value `x + y * z`.
void | sub_mul_assign (GMP_Integer &x, const GMP_Integer &y, const GMP_Integer &z)
| Assigns to `x` the value `x - y * z`.
void | exact_div_assign (GMP_Integer &x, const GMP_Integer &y, const GMP_Integer &z)
| If `z` divides `y`, assigns to `x` the quotient of the integer division of `y` and `z`.
void | sqrt_assign (GMP_Integer &x, const GMP_Integer &y)
| Assigns to `x` the integer square root of `y`.
int | cmp (const GMP_Integer &x, const GMP_Integer &y)
| Returns a negative, zero or positive value depending on whether `x` is lower than, equal to or greater than `y`, respectively.

## Detailed Description

Unbounded integers as provided by the GMP library.

GMP_Integer is an alias for the `mpz_class` type defined in the C++ interface of the GMP library. For more information, see `http://www.swox.com/gmp/`

## Friends And Related Function Documentation

void gcdext_assign | ( | GMP_Integer & | x,
|  | const GMP_Integer & | y,
|  | const GMP_Integer & | z,
|  | GMP_Integer & | s,
|  | GMP_Integer & | t |
| ) |  |  | `[related]`

Extended GCD.

Assigns to `x` the greatest common divisor of `y` and `z`, and to `s` and `t` the values such that `y` * `s` + `z` * `t` = `x`.

void exact_div_assign | ( | GMP_Integer & | x,
|  | const GMP_Integer & | y,
|  | const GMP_Integer & | z |
| ) |  |  | `[related]`

If `z` divides `y`, assigns to `x` the quotient of the integer division of `y` and `z`.

The behavior is undefined if `z` does not divide `y`.