|
| integer () noexcept |
| Empty constructor.
|
|
| integer (mpz_t &&raw) noexcept |
| Constructor with mpz_t.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
| integer (const 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.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
void | set_number (const 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.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer & | operator= (const T i) noexcept |
| Assignment operator.
|
|
integer & | operator= (const integer &i) noexcept |
| Copy assignment operator.
|
|
integer & | operator= (integer &&i) noexcept |
| Move assignment operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator== (const T i) const noexcept |
| Equality operator.
|
|
bool | operator== (const integer &i) const noexcept |
| Equality operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator!= (const T i) const noexcept |
| Non-equality operator.
|
|
bool | operator!= (const integer &i) const noexcept |
| Non-equality operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator< (const T i) const noexcept |
| Less than operator.
|
|
bool | operator< (const integer &i) const noexcept |
| Less than operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator<= (const T i) const noexcept |
| Less than or equal to operator.
|
|
bool | operator<= (const integer &i) const noexcept |
| Less than or equal to operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator> (const T i) const noexcept |
| Greater than operator.
|
|
bool | operator> (const integer &i) const noexcept |
| Greater than operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator>= (const T i) const noexcept |
| Greater than or equal to operator.
|
|
bool | operator>= (const integer &i) const noexcept |
| Greater than or equal to operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer | operator+ (const T i) const noexcept |
| Addition operator.
|
|
integer | operator+ (const integer &i) const noexcept |
| Addition operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer & | operator+= (const 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'.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer | operator- (const T i) const noexcept |
| Substraction operator.
|
|
integer | operator- (const integer &i) const noexcept |
| Substraction operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer & | operator-= (const T i) noexcept |
| Substraction operator.
|
|
integer & | operator-= (const integer &i) noexcept |
| Substraction operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer | operator* (const T i) const noexcept |
| Product operator.
|
|
integer | operator* (const integer &i) const noexcept |
| Product operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer & | operator*= (const T i) noexcept |
| Product operator.
|
|
integer & | operator*= (const integer &i) noexcept |
| Product operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer | operator/ (const T i) const noexcept |
| Division operator.
|
|
integer | operator/ (const integer &i) const noexcept |
| Product operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer & | operator/= (const T i) noexcept |
| Division operator.
|
|
integer & | operator/= (const integer &i) noexcept |
| Division operator.
|
|
integer | power (const uint64_t i) const noexcept |
| Exponentiation operator.
|
|
integer | power (const integer &i) const noexcept |
| Exponentiation operator.
|
|
integer & | powt (const uint64_t i) noexcept |
| Exponentiation operator.
|
|
integer & | powt (const integer &i) noexcept |
| Exponentiation operator.
|
|
uint64_t | operator% (const 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 initialized 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.
|
|
void | swap (integer &i) noexcept |
| Swaps the value of this integer with integer i's value.
|
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator== (const T i, const integer &ii) noexcept |
| Equality operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator!= (const T i, const integer &ii) noexcept |
| Non-equality operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator< (const T i, const integer &ii) noexcept |
| Less operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator<= (const T i, const integer &ii) noexcept |
| Less than or equal to operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator> (const T i, const integer &ii) noexcept |
| Greater than operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
bool | operator>= (const T i, const integer &ii) noexcept |
| Greater than or equal to operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer | operator+ (const T i, const integer &ii) noexcept |
| Addition operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer | operator- (const T i, const integer &ii) noexcept |
| Substraction operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
integer | operator* (const T i, const integer &ii) noexcept |
| Product operator.
|
|
template<typename T , std::enable_if_t< std::is_integral_v< T >, bool > = true> |
int64_t | operator/ (const 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.