|
|
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=default |
| | 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.
|
| |
| template<std::size_t otherBitness> |
| 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.