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