|
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. |