LAL: Linear Arrangement Library 21.07.01
A library focused on algorithms on linear arrangements of graphs.
|
Arbitrary precision integer. More...
#include <integer.hpp>
Public Member Functions | |
integer () noexcept | |
Empty constructor. | |
integer (mpz_t &&raw) | |
Constructor with mpz_t. | |
integer (int64_t i) noexcept | |
Constructor with unsigned integer value. | |
integer (const std::string &s) noexcept | |
Constructor with string. | |
integer (integer &&i) noexcept | |
Move constructor. | |
integer (const integer &i) noexcept | |
Copy constructor. | |
~integer () noexcept | |
Destructor. | |
void | set_si (int64_t i) noexcept |
Overwrites the value of this integer with i. | |
void | set_ui (uint64_t i) noexcept |
Overwrites the value of this integer with i. | |
void | set_integer (const integer &i) noexcept |
Overwrites the value of this integer with i. | |
void | set_str (const std::string &s) noexcept |
Overwrites the value of this integer with s. | |
integer & | operator= (int64_t i) noexcept |
Assignment operator. | |
integer & | operator= (const integer &i) noexcept |
Copy assignment operator. | |
integer & | operator= (integer &&i) noexcept |
Move assignment operator. | |
bool | operator== (int64_t i) const noexcept |
Equality operator. | |
bool friend | operator== (int64_t i, const integer &ii) noexcept |
Equality operator. | |
bool | operator== (const integer &i) const noexcept |
Equality operator. | |
bool | operator!= (int64_t i) const noexcept |
Non-equality operator. | |
bool friend | operator!= (int64_t i, const integer &ii) noexcept |
Non-equality operator. | |
bool | operator!= (const integer &i) const noexcept |
Non-equality operator. | |
bool | operator< (int64_t i) const noexcept |
Less than operator. | |
bool | operator< (const integer &i) const noexcept |
Less than operator. | |
bool | operator<= (int64_t i) const noexcept |
Less than or equal to operator. | |
bool | operator<= (const integer &i) const noexcept |
Less than or equal to operator. | |
bool | operator> (int64_t i) const noexcept |
Greater than operator. | |
bool | operator> (const integer &i) const noexcept |
Greater than operator. | |
bool | operator>= (int64_t i) const noexcept |
Greater than or equal to operator. | |
bool | operator>= (const integer &i) const noexcept |
Greater than or equal to operator. | |
integer | operator+ (int64_t i) const noexcept |
Addition operator. | |
integer | operator+ (const integer &i) const noexcept |
Addition operator. | |
integer & | operator+= (int64_t i) noexcept |
Addition operator. | |
integer & | operator+= (const integer &i) noexcept |
Addition operator. | |
integer | operator- () const noexcept |
Minus unary operator. Returns a new object of type 'integer'. | |
integer | operator- (int64_t i) const noexcept |
Substraction operator. | |
integer | operator- (const integer &i) const noexcept |
Substraction operator. | |
integer & | operator-= (int64_t i) noexcept |
Substraction operator. | |
integer & | operator-= (const integer &i) noexcept |
Substraction operator. | |
integer | operator* (int64_t i) const noexcept |
Product operator. | |
integer | operator* (const integer &i) const noexcept |
Product operator. | |
integer & | operator*= (int64_t i) noexcept |
Product operator. | |
integer & | operator*= (const integer &i) noexcept |
Product operator. | |
integer | operator/ (int64_t i) const noexcept |
Division operator. | |
integer | operator/ (const integer &i) const noexcept |
Product operator. | |
integer & | operator/= (int64_t i) noexcept |
Division operator. | |
integer & | operator/= (const integer &i) noexcept |
Division operator. | |
integer | pow (uint64_t i) const noexcept |
Exponentiation operator. | |
integer | pow (const integer &i) const noexcept |
Exponentiation operator. | |
integer & | powt (uint64_t i) noexcept |
Exponentiation operator. | |
integer & | powt (const integer &i) noexcept |
Exponentiation operator. | |
uint64_t | operator% (uint64_t i) const noexcept |
Modulus operator. | |
integer | operator% (const integer &i) const noexcept |
Modulus operator. | |
constexpr bool | is_initialized () const noexcept |
Returns whether this object is initialised or not. | |
int32_t | get_sign () const noexcept |
Returns the sign of this integer. | |
size_t | bytes () const noexcept |
Returns the amount of bytes this integer occupies. | |
const mpz_t & | get_raw_value () const noexcept |
Returns the underlying gmp data structure. | |
int64_t | to_int () const noexcept |
Converts this integer to a signed 64-bit integer. | |
uint64_t | to_uint () const noexcept |
Converts this integer to an unsigned 64-bit integer. | |
double | to_double () const noexcept |
Converts this integer to a double-precision floating-point value. | |
std::string | to_string () const noexcept |
Converts this integer to a string. | |
void | as_string (std::string &s) const noexcept |
Converts this integer to a string. | |
void | swap (integer &i) noexcept |
Swaps the value of this integer with integer i's value. | |
Private Attributes | |
mpz_t | m_val |
Structure from GMP storing the integer's value. | |
bool | m_initialized = true |
Is this integer initialised? | |
Friends | |
bool | operator< (int64_t i, const integer &ii) noexcept |
Less operator. | |
bool | operator<= (int64_t i, const integer &ii) noexcept |
Less than or equal to operator. | |
bool | operator> (int64_t i, const integer &ii) noexcept |
Greater than operator. | |
bool | operator>= (int64_t i, const integer &ii) noexcept |
Greater than or equal to operator. | |
integer | operator+ (int64_t i, const integer &ii) noexcept |
Addition operator. | |
integer | operator- (int64_t i, const integer &ii) noexcept |
Substraction operator. | |
integer | operator* (int64_t i, const integer &ii) noexcept |
Product operator. | |
int64_t | operator/ (int64_t i, const integer &ii) noexcept |
Division operator. | |
void | swap (integer &i, integer &j) noexcept |
Swaps two integers. | |
Arbitrary precision integer.
This class wraps the mpz_t data structure from GMP with operators for an easy usage.
|
inlinenoexcept |
Constructor with unsigned integer value.
i | A signed integer (basic type) number. |
|
inlinenoexcept |
Constructor with string.
s | A string. |
|
noexcept |
Move constructor.
i | A lal::numeric::integer. |
|
inlinenoexcept |
Copy constructor.
i | A lal::numeric::integer. |
|
inlinenoexcept |
Converts this integer to a string.
s | A reference to a string. |
|
inlinenoexcept |
Non-equality operator.
i | A lal::numeric::integer. |
|
inlinenoexcept |
Non-equality operator.
i | A signed integer (basic type) number. |
|
inlinenoexcept |
Non-equality operator.
i | A signed integer (basic type) number. |
ii | A lal::numeric::integer. |
Modulus operator.
i | A lal::numeric::integer |
|
inlinenoexcept |
Modulus operator.
i | Unsigned integer (basic type) number. |
Product operator.
i | A lal::numeric::integer. |
|
inlinenoexcept |
Product operator.
i | A signed integer (basic type) number. |
Product operator.
i | A lal::numeric::integer. |
|
inlinenoexcept |
Product operator.
i | A signed integer (basic type) number. |
Addition operator.
i | A lal::numeric::integer. |
|
inlinenoexcept |
Addition operator.
i | A signed integer (basic type) number. |
Addition operator.
i | A lal::numeric::integer. |
|
noexcept |
Addition operator.
i | A signed integer (basic type) number. |
Substraction operator.
i | A lal::numeric::integer. |
|
inlinenoexcept |
Substraction operator.
i | A signed integer (basic type) number. |
Substraction operator.
i | A lal::numeric::integer. |
|
noexcept |
Substraction operator.
i | A signed integer (basic type) number. |
Product operator.
i | A lal::numeric::integer. |
|
inlinenoexcept |
Division operator.
i | A signed integer (basic type) number. |
Division operator.
i | A lal::numeric::integer. |
|
noexcept |
Division operator.
i | A signed integer (basic type) number. |
|
inlinenoexcept |
Less than operator.
i | A lal::numeric::integer. |
|
inlinenoexcept |
Less than operator.
i | A signed integer (basic type) number. |
|
inlinenoexcept |
Less than or equal to operator.
i | A lal::numeric::integer. |
|
inlinenoexcept |
Less than or equal to operator.
i | A signed integer (basic type) number. |
Copy assignment operator.
i | A lal::numeric::integer. |
|
inlinenoexcept |
Assignment operator.
i | A signed integer (basic type) number. |
Move assignment operator.
i | A lal::numeric::integer. |
|
inlinenoexcept |
Equality operator.
i | A lal::numeric::integer. |
|
inlinenoexcept |
Equality operator.
i | A signed integer (basic type) number. |
|
inlinenoexcept |
Equality operator.
i | A signed integer (basic type) number. |
ii | A lal::numeric::integer. |
|
inlinenoexcept |
Greater than operator.
i | A lal::numeric::integer. |
|
inlinenoexcept |
Greater than operator.
i | A signed integer (basic type) number. |
|
inlinenoexcept |
Greater than or equal to operator.
i | A lal::numeric::integer. |
|
inlinenoexcept |
Greater than or equal to operator.
i | A signed integer (basic type) number. |
Exponentiation operator.
i | A lal::numeric::integer. |
|
inlinenoexcept |
Exponentiation operator.
i | An unsigned integer (basic type). |
|
inlinenoexcept |
Exponentiation operator.
Modifies the current object.
i | Unsigned integer (basic type) number. |
|
inlinenoexcept |
Overwrites the value of this integer with i.
i | A lal::numeric::integer. |
|
inlinenoexcept |
Overwrites the value of this integer with i.
i | A signed integer (basic type) number. |
|
inlinenoexcept |
Overwrites the value of this integer with s.
s | A string. |
|
inlinenoexcept |
Overwrites the value of this integer with i.
i | Unsigned integer (basic type) number. |
|
inlinenoexcept |
Swaps the value of this integer with integer i's value.
i | A lal::numeric::integer |
Product operator.
i | A signed integer (basic type) number. |
ii | A lal::numeric::integer. |
Addition operator.
i | A signed integer (basic type) number. |
ii | A lal::numeric::integer. |
Substraction operator.
i | A signed integer (basic type) number. |
ii | A lal::numeric::integer. |
|
friend |
Division operator.
i | A signed integer (basic type) number. |
ii | A lal::numeric::integer. |
|
friend |
Less operator.
i | A signed integer (basic type) number. |
ii | A lal::numeric::integer. |
|
friend |
Less than or equal to operator.
i | A signed integer (basic type) number. |
ii | A lal::numeric::integer. |
|
friend |
Greater than operator.
i | A signed integer (basic type) number. |
ii | A lal::numeric::integer. |
|
friend |
Greater than or equal to operator.
i | A signed integer (basic type) number. |
ii | A lal::numeric::integer. |
Swaps two integers.
i | Input lal::numeric::integer. |
j | Input lal::numeric::integer. |