libTriton version 1.0 build 1592
|
Public Types | |
using | limb_type = LimbType |
using | double_limb_type |
using | ushort_type = limb_type |
using | ularge_type = double_limb_type |
using | representation_type |
using | iterator = typename representation_type::iterator |
using | const_iterator = typename representation_type::const_iterator |
using | reverse_iterator = typename representation_type::reverse_iterator |
using | const_reverse_iterator = typename representation_type::const_reverse_iterator |
using | double_width_type = uintwide_t<static_cast<size_t>(Width2 * 2U), limb_type, AllocatorType, IsSigned> |
Public Member Functions | |
template<typename UnsignedIntegralType > | |
constexpr | uintwide_t (const UnsignedIntegralType v, typename std::enable_if<((std::is_integral< UnsignedIntegralType >::value) &&(std::is_unsigned< UnsignedIntegralType >::value) &&(std::numeric_limits< UnsignedIntegralType >::digits<=std::numeric_limits< limb_type >::digits))>::type *=nullptr) |
template<typename UnsignedIntegralType > | |
WIDE_INTEGER_CONSTEXPR | uintwide_t (const UnsignedIntegralType v, typename std::enable_if<((std::is_integral< UnsignedIntegralType >::value) &&(std::is_unsigned< UnsignedIntegralType >::value) &&(std::numeric_limits< UnsignedIntegralType >::digits > std::numeric_limits< limb_type >::digits))>::type *p_nullparam=nullptr) |
template<typename SignedIntegralType > | |
WIDE_INTEGER_CONSTEXPR | uintwide_t (const SignedIntegralType v, typename std::enable_if<((std::is_integral< SignedIntegralType >::value) &&(std::is_signed< SignedIntegralType >::value))>::type *p_nullparam=nullptr) |
template<typename FloatingPointType , typename std::enable_if<(std::is_floating_point< FloatingPointType >::value)>::type const * = nullptr> | |
WIDE_INTEGER_CONSTEXPR | uintwide_t (const FloatingPointType f) |
constexpr | uintwide_t (const uintwide_t &other)=default |
template<const bool OtherIsSigned, typename std::enable_if<(OtherIsSigned !=IsSigned)>::type const * = nullptr> | |
constexpr | uintwide_t (const uintwide_t< Width2, LimbType, AllocatorType, OtherIsSigned > &other) |
template<const size_t OtherWidth2, const bool OtherIsSigned, typename std::enable_if<(Width2< OtherWidth2)>::type const * = nullptr> | |
WIDE_INTEGER_CONSTEXPR | uintwide_t (const uintwide_t< OtherWidth2, LimbType, AllocatorType, OtherIsSigned > &v) |
template<const size_t OtherWidth2, const bool OtherIsSigned, typename std::enable_if<(Width2 > OtherWidth2)>::type const * = nullptr> | |
WIDE_INTEGER_CONSTEXPR | uintwide_t (const uintwide_t< OtherWidth2, LimbType, AllocatorType, OtherIsSigned > &v) |
WIDE_INTEGER_CONSTEXPR | uintwide_t (const char *str_input) |
constexpr | uintwide_t (uintwide_t &&other) noexcept=default |
template<const bool OtherIsSigned, typename std::enable_if<(IsSigned !=OtherIsSigned)>::type const * = nullptr> | |
constexpr | uintwide_t (uintwide_t< Width2, LimbType, AllocatorType, OtherIsSigned > &&other) |
WIDE_INTEGER_CONSTEXPR auto | operator= (const uintwide_t &other) -> uintwide_t &=default |
template<const bool OtherIsSigned, typename std::enable_if<(OtherIsSigned !=IsSigned)>::type const * = nullptr> | |
WIDE_INTEGER_CONSTEXPR auto | operator= (const uintwide_t< Width2, LimbType, AllocatorType, OtherIsSigned > &other) -> uintwide_t & |
WIDE_INTEGER_CONSTEXPR auto | operator= (uintwide_t &&other) noexcept -> uintwide_t &=default |
template<const bool OtherIsSigned, typename std::enable_if<(IsSigned !=OtherIsSigned)>::type const * = nullptr> | |
WIDE_INTEGER_CONSTEXPR auto | operator= (uintwide_t< Width2, LimbType, AllocatorType, OtherIsSigned > &&other) -> uintwide_t & |
constexpr | operator long double () const |
constexpr | operator double () const |
constexpr | operator float () const |
template<typename IntegralType , typename = typename std::enable_if<std::is_integral<IntegralType>::value>::type> | |
constexpr | operator IntegralType () const |
constexpr | operator bool () const |
template<const size_t OtherWidth2, const bool OtherIsSigned, typename = typename std::enable_if<(Width2 != OtherWidth2), uintwide_t<OtherWidth2, LimbType, AllocatorType, OtherIsSigned>>::type> | |
WIDE_INTEGER_CONSTEXPR | operator uintwide_t< OtherWidth2, LimbType, AllocatorType, OtherIsSigned > () const |
template<const bool OtherIsSigned, typename = typename std::enable_if<(OtherIsSigned != IsSigned), uintwide_t<Width2, LimbType, AllocatorType, OtherIsSigned>>::type> | |
WIDE_INTEGER_CONSTEXPR | operator uintwide_t< Width2, LimbType, AllocatorType, OtherIsSigned > () const |
WIDE_INTEGER_CONSTEXPR auto | representation () -> representation_type & |
WIDE_INTEGER_NODISCARD WIDE_INTEGER_CONSTEXPR auto | representation () const -> const representation_type & |
WIDE_INTEGER_NODISCARD WIDE_INTEGER_CONSTEXPR auto | crepresentation () const -> const representation_type & |
WIDE_INTEGER_CONSTEXPR auto | operator+ () const -> const uintwide_t & |
WIDE_INTEGER_CONSTEXPR auto | operator- () const -> uintwide_t |
WIDE_INTEGER_CONSTEXPR auto | operator+= (const uintwide_t &other) -> uintwide_t & |
WIDE_INTEGER_CONSTEXPR auto | operator-= (const uintwide_t &other) -> uintwide_t & |
WIDE_INTEGER_CONSTEXPR auto | operator*= (const uintwide_t &other) -> uintwide_t & |
WIDE_INTEGER_CONSTEXPR auto | mul_by_limb (const limb_type v) -> uintwide_t & |
WIDE_INTEGER_CONSTEXPR auto | operator/= (const uintwide_t &other) -> uintwide_t & |
WIDE_INTEGER_CONSTEXPR auto | operator%= (const uintwide_t &other) -> uintwide_t & |
WIDE_INTEGER_CONSTEXPR auto | operator++ () -> uintwide_t & |
WIDE_INTEGER_CONSTEXPR auto | operator-- () -> uintwide_t & |
WIDE_INTEGER_CONSTEXPR auto | operator++ (int) -> uintwide_t |
WIDE_INTEGER_CONSTEXPR auto | operator-- (int) -> uintwide_t |
WIDE_INTEGER_CONSTEXPR auto | operator~ () -> uintwide_t & |
WIDE_INTEGER_CONSTEXPR auto | operator|= (const uintwide_t &other) -> uintwide_t & |
WIDE_INTEGER_CONSTEXPR auto | operator^= (const uintwide_t &other) -> uintwide_t & |
WIDE_INTEGER_CONSTEXPR auto | operator&= (const uintwide_t &other) -> uintwide_t & |
template<typename SignedIntegralType > | |
WIDE_INTEGER_CONSTEXPR auto | operator<<= (const SignedIntegralType n) -> typename std::enable_if<((std::is_integral< SignedIntegralType >::value) &&(std::is_signed< SignedIntegralType >::value)), uintwide_t >::type & |
template<typename UnsignedIntegralType > | |
WIDE_INTEGER_CONSTEXPR auto | operator<<= (const UnsignedIntegralType n) -> typename std::enable_if<((std::is_integral< UnsignedIntegralType >::value) &&(!std::is_signed< UnsignedIntegralType >::value)), uintwide_t >::type & |
template<typename SignedIntegralType > | |
WIDE_INTEGER_CONSTEXPR auto | operator>>= (const SignedIntegralType n) -> typename std::enable_if<((std::is_integral< SignedIntegralType >::value) &&(std::is_signed< SignedIntegralType >::value)), uintwide_t >::type & |
template<typename UnsignedIntegralType > | |
WIDE_INTEGER_CONSTEXPR auto | operator>>= (const UnsignedIntegralType n) -> typename std::enable_if<((std::is_integral< UnsignedIntegralType >::value) &&(!std::is_signed< UnsignedIntegralType >::value)), uintwide_t >::type & |
constexpr auto | operator== (const uintwide_t &other) const -> bool |
constexpr auto | operator< (const uintwide_t &other) const -> bool |
constexpr auto | operator> (const uintwide_t &other) const -> bool |
constexpr auto | operator!= (const uintwide_t &other) const -> bool |
constexpr auto | operator<= (const uintwide_t &other) const -> bool |
constexpr auto | operator>= (const uintwide_t &other) const -> bool |
WIDE_INTEGER_CONSTEXPR auto | wr_string (char *str_result, const std::uint_fast8_t base_rep=0x10U, const bool show_base=true, const bool show_pos=false, const bool is_uppercase=true, unsigned_fast_type field_width=0U, const char fill_char=static_cast< char >('0')) const -> bool |
template<const bool RePhraseIsSigned = IsSigned, typename std::enable_if<(!RePhraseIsSigned)>::type const * = nullptr> | |
WIDE_INTEGER_NODISCARD WIDE_INTEGER_CONSTEXPR auto | compare (const uintwide_t< Width2, LimbType, AllocatorType, RePhraseIsSigned > &other) const -> std::int_fast8_t |
template<const bool RePhraseIsSigned = IsSigned, typename std::enable_if<(RePhraseIsSigned)>::type const * = nullptr> | |
WIDE_INTEGER_NODISCARD WIDE_INTEGER_CONSTEXPR auto | compare (const uintwide_t< Width2, LimbType, AllocatorType, RePhraseIsSigned > &other) const -> std::int_fast8_t |
WIDE_INTEGER_CONSTEXPR void | negate () |
WIDE_INTEGER_CONSTEXPR void | eval_divide_by_single_limb (const limb_type short_denominator, const unsigned_fast_type u_offset, uintwide_t *remainder) |
WIDE_INTEGER_NODISCARD WIDE_INTEGER_CONSTEXPR auto | is_zero () const -> bool |
Static Public Member Functions | |
static constexpr auto | limits_helper_max (bool is_signed) -> uintwide_t |
static constexpr auto | limits_helper_min (bool is_signed) -> uintwide_t |
static constexpr auto | limits_helper_min () -> uintwide_t |
static constexpr auto | limits_helper_lowest (bool is_signed) -> uintwide_t |
template<const bool RePhraseIsSigned = IsSigned, typename std::enable_if<(!RePhraseIsSigned)>::type const * = nullptr> | |
static constexpr auto | is_neg (uintwide_t< Width2, LimbType, AllocatorType, RePhraseIsSigned >) -> bool |
template<const bool RePhraseIsSigned = IsSigned, typename std::enable_if<(RePhraseIsSigned)>::type const * = nullptr> | |
static constexpr auto | is_neg (uintwide_t< Width2, LimbType, AllocatorType, RePhraseIsSigned > a) -> bool |
static constexpr auto | from_rep (const representation_type &other_rep) -> uintwide_t |
static constexpr auto | from_rep (representation_type &&other_rep) -> uintwide_t |
Static Public Attributes | |
static constexpr size_t | my_width2 = Width2 |
static constexpr size_t | number_of_limbs |
static constexpr size_t | number_of_limbs_karatsuba_threshold = static_cast<size_t>(128U + 1U) |
static constexpr auto | wr_string_max_buffer_size_oct |
static constexpr auto | wr_string_max_buffer_size_hex |
static constexpr auto | wr_string_max_buffer_size_dec |
Definition at line 1273 of file uintwide_t.h.
using math::wide_integer::uintwide_t< Width2, LimbType, AllocatorType, IsSigned >::const_iterator = typename representation_type::const_iterator |
Definition at line 1339 of file uintwide_t.h.
using math::wide_integer::uintwide_t< Width2, LimbType, AllocatorType, IsSigned >::const_reverse_iterator = typename representation_type::const_reverse_iterator |
Definition at line 1341 of file uintwide_t.h.
using math::wide_integer::uintwide_t< Width2, LimbType, AllocatorType, IsSigned >::double_limb_type |
Definition at line 1285 of file uintwide_t.h.
using math::wide_integer::uintwide_t< Width2, LimbType, AllocatorType, IsSigned >::double_width_type = uintwide_t<static_cast<size_t>(Width2 * 2U), limb_type, AllocatorType, IsSigned> |
Definition at line 1344 of file uintwide_t.h.
using math::wide_integer::uintwide_t< Width2, LimbType, AllocatorType, IsSigned >::iterator = typename representation_type::iterator |
Definition at line 1338 of file uintwide_t.h.
using math::wide_integer::uintwide_t< Width2, LimbType, AllocatorType, IsSigned >::limb_type = LimbType |
Definition at line 1283 of file uintwide_t.h.
using math::wide_integer::uintwide_t< Width2, LimbType, AllocatorType, IsSigned >::representation_type |
Definition at line 1325 of file uintwide_t.h.
using math::wide_integer::uintwide_t< Width2, LimbType, AllocatorType, IsSigned >::reverse_iterator = typename representation_type::reverse_iterator |
Definition at line 1340 of file uintwide_t.h.
using math::wide_integer::uintwide_t< Width2, LimbType, AllocatorType, IsSigned >::ularge_type = double_limb_type |
Definition at line 1291 of file uintwide_t.h.
using math::wide_integer::uintwide_t< Width2, LimbType, AllocatorType, IsSigned >::ushort_type = limb_type |
Definition at line 1290 of file uintwide_t.h.
|
inlineconstexpr |
Definition at line 1352 of file uintwide_t.h.
|
inline |
Definition at line 1362 of file uintwide_t.h.
|
inline |
Definition at line 1386 of file uintwide_t.h.
|
inline |
Definition at line 1410 of file uintwide_t.h.
|
inlineconstexpr |
Definition at line 1467 of file uintwide_t.h.
|
inlineexplicit |
Definition at line 1475 of file uintwide_t.h.
|
inlineexplicit |
Definition at line 1506 of file uintwide_t.h.
|
inline |
Definition at line 1537 of file uintwide_t.h.
|
inlineconstexpr |
Definition at line 1552 of file uintwide_t.h.
|
inline |
Definition at line 2442 of file uintwide_t.h.
|
inline |
Definition at line 2451 of file uintwide_t.h.
|
inline |
Definition at line 1676 of file uintwide_t.h.
|
inline |
Definition at line 2471 of file uintwide_t.h.
|
inlinestaticconstexpr |
Definition at line 2536 of file uintwide_t.h.
|
inlinestaticconstexpr |
Definition at line 2542 of file uintwide_t.h.
|
inlinestaticconstexpr |
Definition at line 2531 of file uintwide_t.h.
|
inlinestaticconstexpr |
Definition at line 2524 of file uintwide_t.h.
|
inline |
Definition at line 2510 of file uintwide_t.h.
|
inlinestaticconstexpr |
Definition at line 2091 of file uintwide_t.h.
|
inlinestaticconstexpr |
Definition at line 2044 of file uintwide_t.h.
|
inlinestaticconstexpr |
Definition at line 2086 of file uintwide_t.h.
|
inlinestaticconstexpr |
Definition at line 2065 of file uintwide_t.h.
|
inline |
Definition at line 1749 of file uintwide_t.h.
|
inline |
Definition at line 2464 of file uintwide_t.h.
|
inlineexplicitconstexpr |
Definition at line 1602 of file uintwide_t.h.
|
inlineexplicitconstexpr |
Definition at line 1586 of file uintwide_t.h.
|
inlineexplicitconstexpr |
Definition at line 1587 of file uintwide_t.h.
|
inlineexplicitconstexpr |
Definition at line 1592 of file uintwide_t.h.
|
inlineexplicitconstexpr |
Definition at line 1585 of file uintwide_t.h.
|
inline |
Definition at line 1609 of file uintwide_t.h.
|
inline |
Definition at line 1660 of file uintwide_t.h.
|
inlineconstexpr |
Definition at line 2039 of file uintwide_t.h.
|
inline |
Definition at line 1810 of file uintwide_t.h.
|
inline |
Definition at line 1902 of file uintwide_t.h.
|
inline |
Definition at line 1733 of file uintwide_t.h.
|
inline |
Definition at line 1679 of file uintwide_t.h.
|
inline |
Definition at line 1855 of file uintwide_t.h.
|
inline |
Definition at line 1859 of file uintwide_t.h.
|
inline |
Definition at line 1682 of file uintwide_t.h.
|
inline |
Definition at line 1680 of file uintwide_t.h.
|
inline |
Definition at line 1856 of file uintwide_t.h.
|
inline |
Definition at line 1860 of file uintwide_t.h.
|
inline |
Definition at line 1712 of file uintwide_t.h.
|
inline |
Definition at line 1766 of file uintwide_t.h.
|
inlineconstexpr |
Definition at line 2037 of file uintwide_t.h.
|
inline |
Definition at line 1917 of file uintwide_t.h.
|
inline |
Definition at line 1948 of file uintwide_t.h.
|
inlineconstexpr |
Definition at line 2040 of file uintwide_t.h.
|
inline |
Definition at line 1564 of file uintwide_t.h.
|
inline |
Definition at line 1577 of file uintwide_t.h.
|
inlineconstexpr |
Definition at line 2036 of file uintwide_t.h.
|
inlineconstexpr |
Definition at line 2038 of file uintwide_t.h.
|
inlineconstexpr |
Definition at line 2041 of file uintwide_t.h.
|
inline |
Definition at line 1972 of file uintwide_t.h.
|
inline |
Definition at line 2012 of file uintwide_t.h.
|
inline |
Definition at line 1884 of file uintwide_t.h.
|
inline |
Definition at line 1870 of file uintwide_t.h.
|
inline |
Definition at line 1862 of file uintwide_t.h.
|
inline |
Definition at line 1674 of file uintwide_t.h.
|
inline |
Definition at line 1675 of file uintwide_t.h.
|
inline |
Definition at line 2144 of file uintwide_t.h.
|
friend |
Definition at line 1280 of file uintwide_t.h.
|
staticconstexpr |
Definition at line 1307 of file uintwide_t.h.
|
staticconstexpr |
Definition at line 1310 of file uintwide_t.h.
|
staticconstexpr |
Definition at line 1313 of file uintwide_t.h.
|
staticconstexpr |
Definition at line 2134 of file uintwide_t.h.
|
staticconstexpr |
Definition at line 2124 of file uintwide_t.h.
|
staticconstexpr |
Definition at line 2114 of file uintwide_t.h.