|
constexpr | bigint () noexcept |
| Construct and clear an bigint.
|
|
constexpr | bigint (bigint const &) noexcept=default |
|
constexpr bigint & | operator= (bigint const &) noexcept=default |
|
constexpr | bigint (bigint &&) noexcept=default |
|
constexpr bigint & | operator= (bigint &&) noexcept=default |
|
template<std::size_t N, bool S>
requires (N < num_digits) |
constexpr | bigint (bigint< digit_type, N, S > const &rhs) noexcept |
| Construct from a small bigint.
|
|
template<std::size_t N, bool S>
requires (N < num_digits) |
constexpr bigint & | operator= (bigint< digit_type, N, S > const &rhs) noexcept |
| Assign from a small bigint.
|
|
constexpr | bigint (std::integral auto value) noexcept |
|
constexpr bigint & | operator= (std::integral auto value) noexcept |
|
constexpr | bigint (std::string_view str, int base=10) |
|
constexpr | operator unsigned long long () const noexcept |
|
constexpr | operator signed long long () const noexcept |
|
constexpr | operator unsigned long () const noexcept |
|
constexpr | operator signed long () const noexcept |
|
constexpr | operator unsigned int () const noexcept |
|
constexpr | operator signed int () const noexcept |
|
constexpr | operator unsigned short () const noexcept |
|
constexpr | operator signed short () const noexcept |
|
constexpr | operator unsigned char () const noexcept |
|
constexpr | operator signed char () const noexcept |
|
constexpr | operator bool () const noexcept |
|
constexpr bool | is_negative () const noexcept |
|
template<std::size_t N, bool S> |
constexpr | operator bigint< digit_type, N, S > () const noexcept |
|
std::string | string () const noexcept |
|
std::string | uuid_string () const noexcept |
|
constexpr bigint | operator- () const noexcept |
|
constexpr bigint & | operator<<= (std::size_t rhs) noexcept |
|
constexpr bigint & | operator>>= (std::size_t rhs) noexcept |
|
constexpr bigint & | operator*= (bigint const &rhs) noexcept |
|
constexpr bigint & | operator+= (bigint const &rhs) noexcept |
|
constexpr bigint & | operator-= (bigint const &rhs) noexcept |
|
constexpr bigint & | operator&= (bigint const &rhs) noexcept |
|
constexpr bigint & | operator|= (bigint const &rhs) noexcept |
|
constexpr bigint & | operator^= (bigint const &rhs) noexcept |
|
|
constexpr friend bigint | crc (bigint const &lhs, bigint const &rhs) noexcept |
| Calculate the remainder of a CRC check.
|
|
constexpr friend bigint | reciprocal (bigint const &rhs) |
| Calculate the reciprocal at a certain precision.
|
|
constexpr friend bool | operator== (bigint const &lhs, bigint const &rhs) noexcept |
|
constexpr friend std::strong_ordering | operator<=> (bigint const &lhs, bigint const &rhs) noexcept |
|
constexpr friend bigint | operator<< (bigint const &lhs, std::size_t rhs) noexcept |
|
constexpr friend bigint | operator>> (bigint const &lhs, std::size_t rhs) noexcept |
|
constexpr friend bigint | operator* (bigint const &lhs, bigint const &rhs) noexcept |
|
constexpr friend bigint | operator+ (bigint const &lhs, bigint const &rhs) noexcept |
|
constexpr friend bigint | operator- (bigint const &lhs, bigint const &rhs) noexcept |
|
constexpr friend bigint | operator~ (bigint const &rhs) noexcept |
|
constexpr friend bigint | operator| (bigint const &lhs, bigint const &rhs) noexcept |
|
constexpr friend bigint | operator& (bigint const &lhs, bigint const &rhs) noexcept |
|
constexpr friend bigint | operator^ (bigint const &lhs, bigint const &rhs) noexcept |
|
constexpr friend std::pair< bigint, bigint > | div (bigint const &lhs, bigint const &rhs) noexcept |
|
constexpr friend std::pair< bigint, bigint > | div (bigint const &lhs, bigint const &rhs, bigint< digit_type, 2 *num_digits, is_signed > const &rhs_reciprocal) noexcept |
|
constexpr friend bigint | operator/ (bigint const &lhs, bigint const &rhs) noexcept |
|
constexpr friend bigint | operator% (bigint const &lhs, bigint const &rhs) noexcept |
|
std::ostream & | operator<< (std::ostream &lhs, bigint const &rhs) |
|
template<std::unsigned_integral DigitType,
std::size_t NumDigits, bool IsSigned>
struct v1::bigint< DigitType, NumDigits, IsSigned >
High performance big integer implementation.
The bigint is a fixed width integer which will allow the compiler to make aggressive optimizations, unrolling most loops and easy inlining.