|
gpu constexpr | Aesi () noexcept=default |
| Default constructor.
|
|
gpu constexpr | ~Aesi () noexcept=default |
| Destructor.
|
|
gpu constexpr | Aesi (const Aesi ©) noexcept=default |
| Copy constructor.
|
|
template<typename Integral >
requires (std::is_integral_v<Integral>) |
gpu constexpr | Aesi (Integral value) noexcept |
| Integral constructor.
|
|
template<typename Char >
requires (std::is_same_v<Char, char> || std::is_same_v<Char, wchar_t>) |
gpu constexpr | Aesi (const Char *ptr, std::size_t size) noexcept |
| Pointer-based character constructor.
|
|
template<typename Char , std::size_t arrayLength>
requires (arrayLength > 1 && (std::is_same_v<Char, char> || std::is_same_v<Char, wchar_t>)) |
gpu constexpr | Aesi (const Char(&literal)[arrayLength]) noexcept |
| C-style string literal constructor.
|
|
template<typename String , typename Char = typename String::value_type>
requires (std::is_same_v<std::basic_string<Char>, std::decay_t<String>> || std::is_same_v<std::basic_string_view<Char>, std::decay_t<String>>) |
gpu constexpr | Aesi (String &&stringView) noexcept |
| String / String-view constructor.
|
|
template<typename String , typename Char = typename String::value_type>
requires (std::is_same_v<std::basic_string<Char>, std::decay_t<String>> || std::is_same_v<std::basic_string_view<Char>, std::decay_t<String>>) |
gpu constexpr | Aesi (const String &stringView) noexcept |
|
gpu constexpr | Aesi (const Aeu< bitness > &value) |
| Unsigned integer conversion.
|
|
template<typename Integral >
requires (std::is_signed_v<Integral>) |
gpu constexpr Aesi & | operator= (Integral value) noexcept |
| Integral assignment operator.
|
|
gpu constexpr Aesi & | operator= (const Aesi &other) noexcept |
| Copy assignment operator.
|
|
gpu constexpr auto | operator+ () const noexcept -> Aesi |
| Unary plus operator.
|
|
gpu constexpr auto | operator- () const noexcept -> Aesi |
| Unary minus operator.
|
|
gpu constexpr auto | operator++ () noexcept -> Aesi & |
| Prefix increment operator.
|
|
gpu constexpr auto | operator++ (int) &noexcept -> Aesi |
| Postfix increment operator.
|
|
gpu constexpr auto | operator-- () noexcept -> Aesi & |
| Prefix decrement operator.
|
|
gpu constexpr auto | operator-- (int) &noexcept -> Aesi |
| Postfix decrement operator.
|
|
template<typename Integral >
requires (std::is_integral_v<Integral>) |
gpu constexpr auto | compareTo (Integral integral) const noexcept -> Comparison |
| Comparison operator for built-in types.
|
|
template<std::size_t otherBitness = bitness> |
gpu constexpr auto | compareTo (const Aesi< otherBitness > &value) const noexcept -> Comparison |
| Different precision comparison operator.
|
|
gpu constexpr auto | compareTo (const Aesi &value) const noexcept -> Comparison |
| Comparison operator.
|
|
gpu constexpr auto | operator<=> (const Aesi &other) const noexcept -> std::strong_ordering |
| Three-way comparison operator.
|
|
template<typename Object > |
gpu constexpr auto | operator<=> (const Object &other) const noexcept -> std::strong_ordering |
| Three-way comparison operator for numbers of different precision and built-in integral types.
|
|
gpu constexpr auto | setBit (std::size_t index, bool bit) noexcept -> void |
| Set bit in number by index starting from the right.
|
|
gpu constexpr auto | getBit (std::size_t index) const noexcept -> bool |
| Get bit in number by index starting from the right.
|
|
gpu constexpr auto | setByte (std::size_t index, byte byte) noexcept -> void |
| Set byte in number by index starting from the right.
|
|
gpu constexpr auto | getByte (std::size_t index) const noexcept -> byte |
| Get byte in number by index starting from the right.
|
|
gpu constexpr auto | setBlock (std::size_t index, block block) noexcept -> void |
| Set block in number by index starting from the right.
|
|
gpu constexpr auto | getBlock (std::size_t index) const noexcept -> block |
| Get block in number by index starting from the right.
|
|
gpu constexpr auto | byteCount () const noexcept -> std::size_t |
| Get amount of non-empty bytes in number right to left.
|
|
gpu constexpr auto | bitCount () const noexcept -> std::size_t |
| Get amount of non-empty bits in number right to left.
|
|
gpu constexpr auto | isOdd () const noexcept -> bool |
| Check whether number is odd.
|
|
gpu constexpr auto | isEven () const noexcept -> bool |
| Check whether number is even.
|
|
gpu constexpr auto | isZero () const noexcept -> bool |
| Check whether number is zero.
|
|
gpu constexpr auto | isPositive () const noexcept -> bool |
| Check whether number is positive.
|
|
gpu constexpr auto | isNegative () const noexcept -> bool |
| Check whether number is negative.
|
|
gpu constexpr auto | filledBlocksNumber () const noexcept -> std::size_t |
| Get number of non-empty blocks inside object starting from the right.
|
|
gpu constexpr auto | swap (Aesi &other) noexcept -> void |
| Make swap between two objects.
|
|
gpu constexpr auto | inverse () noexcept -> void |
| Invertes number's bitness.
|
|
gpu constexpr auto | squareRoot () const noexcept -> Aesi |
| Square root.
|
|
template<typename Integral >
requires (std::is_integral_v<Integral>) |
gpu constexpr auto | integralCast () const noexcept -> Integral |
| Cast for built-in integral types.
|
|
template<std::size_t newBitness>
requires (newBitness != bitness) |
gpu constexpr auto | precisionCast () const noexcept -> Aesi< newBitness > |
| Number's precision cast.
|
|
gpu constexpr auto | unsignedCast () const noexcept -> Aeu< bitness > |
| Unsigned cast.
|
|
template<byte notation, typename Char >
requires (std::is_same_v<Char, char> || std::is_same_v<Char, wchar_t> && (notation == 2 || notation == 8 || notation == 10 || notation == 16)) |
gpu constexpr auto | getString (Char *buffer, std::size_t bufferSize, bool showBase=false, bool hexUppercase=false) const noexcept -> std::size_t |
| Character buffer output operator.
|
|
__device__ constexpr auto | tryAtomicSet (const Aesi &value) noexcept -> void |
| Atomicity-oriented object assignment operator.
|
|
__device__ constexpr auto | tryAtomicExchange (const Aesi &value) noexcept -> void |
| Atomicity-oriented object exchangement operator.
|
|
|
gpu constexpr friend auto | operator+ (const Aesi &addition, const Aesi &addendum) noexcept -> Aesi |
| Addition operator.
|
|
gpu constexpr friend auto | operator+= (Aesi &addition, const Aesi &addendum) noexcept -> Aesi & |
| Addition assignment operator.
|
|
gpu constexpr friend auto | operator- (const Aesi &subtraction, const Aesi &subtrahend) noexcept -> Aesi |
| Subtraction operator.
|
|
gpu constexpr friend auto | operator-= (Aesi &subtraction, const Aesi &subtrahend) noexcept -> Aesi & |
| Subtraction assignment operator.
|
|
template<typename Integral >
requires (std::is_integral_v<Integral>) |
gpu constexpr friend auto | operator* (const Aesi &multiplication, Integral factor) noexcept -> Aesi |
| Multiplication operator for built-in types.
|
|
gpu constexpr friend auto | operator* (const Aesi &multiplication, const Aesi &factor) noexcept -> Aesi |
| Multiplication operator.
|
|
template<typename Integral >
requires (std::is_integral_v<Integral>) |
gpu constexpr friend auto | operator*= (Aesi &multiplication, Integral factor) noexcept -> Aesi & |
| Multiplication assignment operator for built-in types.
|
|
gpu constexpr friend auto | operator*= (Aesi &multiplication, const Aesi &factor) noexcept -> Aesi & |
| Multiplication assignment operator.
|
|
template<typename Integral >
requires (std::is_integral_v<Integral>) |
gpu constexpr friend auto | operator/ (const Aesi &division, Integral divisor) noexcept -> Aesi |
| Division operator for built-in integral types.
|
|
gpu constexpr friend auto | operator/ (const Aesi &division, const Aesi &divisor) noexcept -> Aesi |
| Division operator.
|
|
template<typename Integral >
requires (std::is_integral_v<Integral>) |
gpu constexpr friend auto | operator/= (Aesi &division, Integral divisor) noexcept -> Aesi & |
| Assignment division operator for built-in integral types.
|
|
gpu constexpr friend auto | operator/= (Aesi &division, const Aesi &divisor) noexcept -> Aesi & |
| Assignment division operator.
|
|
template<typename Integral >
requires (std::is_integral_v<Integral>) |
gpu constexpr friend auto | operator% (const Aesi &modulation, Integral modulo) noexcept -> Aesi |
| Modulo operator for built-in types.
|
|
gpu constexpr friend auto | operator% (const Aesi &modulation, const Aesi &modulo) noexcept -> Aesi |
| Modulo operator.
|
|
template<typename Integral >
requires (std::is_integral_v<Integral>) |
gpu constexpr friend auto | operator%= (Aesi &modulation, Integral modulo) noexcept -> Aesi & |
| Modulo assignment operator for built-in types.
|
|
gpu constexpr friend auto | operator%= (Aesi &modulation, const Aesi &modulo) noexcept -> Aesi & |
| Modulo assignment operator.
|
|
template<typename Integral >
requires (std::is_integral_v<Integral>) |
gpu constexpr friend auto | operator== (const Aesi &our, Integral integral) noexcept -> bool |
| Equality operator for built-in types.
|
|
gpu constexpr friend auto | operator== (const Aesi &our, const Aesi &other) noexcept -> bool=default |
| Equality operator.
|
|
template<std::size_t otherBitness>
requires (otherBitness != bitness) |
gpu constexpr friend auto | operator== (const Aesi &our, const Aesi< otherBitness > &other) noexcept -> bool |
| Different precision equlity operator.
|
|
template<typename Char >
requires (std::is_same_v<Char, char> || std::is_same_v<Char, wchar_t>) |
constexpr auto | operator<< (std::basic_ostream< Char > &os, const Aesi &number) -> std::basic_ostream< Char > & |
| STD stream output operator.
|
|
template<std::size_t bitness = 512>
requires (bitness % blockBitLength == 0)
class Aesi< bitness >
Long precision signed integer.
May be used to represent positive and negative integers. Number precision is set in template parameter bitness.