|
| integer () noexcept |
| Empty constructor.
|
|
| integer (mpz_t &&raw) noexcept |
| Constructor with mpz_t. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
| integer (T i) noexcept |
| Constructor with unsigned integer value. More...
|
|
| integer (const std::string &s) noexcept |
| Constructor with string. More...
|
|
| integer (integer &&i) noexcept |
| Move constructor. More...
|
|
| integer (const integer &i) noexcept |
| Copy constructor. More...
|
|
| ~integer () noexcept |
| Destructor.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
void | set_number (T i) noexcept |
| Overwrites the value of this integer with i. More...
|
|
void | set_integer (const integer &i) noexcept |
| Overwrites the value of this integer with i. More...
|
|
void | set_str (const std::string &s) noexcept |
| Overwrites the value of this integer with s. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer & | operator= (T i) noexcept |
| Assignment operator. More...
|
|
integer & | operator= (const integer &i) noexcept |
| Copy assignment operator. More...
|
|
integer & | operator= (integer &&i) noexcept |
| Move assignment operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator== (T i) const noexcept |
| Equality operator. More...
|
|
bool | operator== (const integer &i) const noexcept |
| Equality operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator!= (T i) const noexcept |
| Non-equality operator. More...
|
|
bool | operator!= (const integer &i) const noexcept |
| Non-equality operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator< (T i) const noexcept |
| Less than operator. More...
|
|
bool | operator< (const integer &i) const noexcept |
| Less than operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator<= (T i) const noexcept |
| Less than or equal to operator. More...
|
|
bool | operator<= (const integer &i) const noexcept |
| Less than or equal to operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator> (T i) const noexcept |
| Greater than operator. More...
|
|
bool | operator> (const integer &i) const noexcept |
| Greater than operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator>= (T i) const noexcept |
| Greater than or equal to operator. More...
|
|
bool | operator>= (const integer &i) const noexcept |
| Greater than or equal to operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer | operator+ (T i) const noexcept |
| Addition operator. More...
|
|
integer | operator+ (const integer &i) const noexcept |
| Addition operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer & | operator+= (T i) noexcept |
| Addition operator. More...
|
|
integer & | operator+= (const integer &i) noexcept |
| Addition operator. More...
|
|
integer | operator- () const noexcept |
| Minus unary operator. Returns a new object of type 'integer'.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer | operator- (T i) const noexcept |
| Substraction operator. More...
|
|
integer | operator- (const integer &i) const noexcept |
| Substraction operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer & | operator-= (T i) noexcept |
| Substraction operator. More...
|
|
integer & | operator-= (const integer &i) noexcept |
| Substraction operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer | operator* (T i) const noexcept |
| Product operator. More...
|
|
integer | operator* (const integer &i) const noexcept |
| Product operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer & | operator*= (T i) noexcept |
| Product operator. More...
|
|
integer & | operator*= (const integer &i) noexcept |
| Product operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer | operator/ (T i) const noexcept |
| Division operator. More...
|
|
integer | operator/ (const integer &i) const noexcept |
| Product operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer & | operator/= (T i) noexcept |
| Division operator. More...
|
|
integer & | operator/= (const integer &i) noexcept |
| Division operator. More...
|
|
integer | power (uint64_t i) const noexcept |
| Exponentiation operator. More...
|
|
integer | power (const integer &i) const noexcept |
| Exponentiation operator. More...
|
|
integer & | powt (uint64_t i) noexcept |
| Exponentiation operator. More...
|
|
integer & | powt (const integer &i) noexcept |
| Exponentiation operator. More...
|
|
uint64_t | operator% (uint64_t i) const noexcept |
| Modulus operator. More...
|
|
integer | operator% (const integer &i) const noexcept |
| Modulus operator. More...
|
|
constexpr bool | is_initialized () const noexcept |
| Returns whether this object is initialised or not.
|
|
int64_t | get_sign () const noexcept |
| Returns the sign of this integer.
|
|
std::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. More...
|
|
void | swap (integer &i) noexcept |
| Swaps the value of this integer with integer i's value. More...
|
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator== (T i, const integer &ii) noexcept |
| Equality operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator!= (T i, const integer &ii) noexcept |
| Non-equality operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator< (T i, const integer &ii) noexcept |
| Less operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator<= (T i, const integer &ii) noexcept |
| Less than or equal to operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator> (T i, const integer &ii) noexcept |
| Greater than operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator>= (T i, const integer &ii) noexcept |
| Greater than or equal to operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer | operator+ (T i, const integer &ii) noexcept |
| Addition operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer | operator- (T i, const integer &ii) noexcept |
| Substraction operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer | operator* (T i, const integer &ii) noexcept |
| Product operator. More...
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
int64_t | operator/ (T i, const integer &ii) noexcept |
| Division operator. More...
|
|
void | swap (integer &i, integer &j) noexcept |
| Swaps two integers. More...
|
|
Arbitrary precision integer.
This class wraps the mpz_t data structure from GMP with operators for an easy usage.