|
template<typename T > |
auto | IterateBits (T bits) |
|
template<typename T > |
auto | IterateBitsBackwards (T bits) |
|
int32_t | SignedMulHigh32 (int32_t lhs, int32_t rhs) |
|
int64_t | SignedMulHigh64 (int64_t u, int64_t v) |
|
uint64_t | UnsignedMulHigh64 (uint64_t u, uint64_t v) |
|
uint32_t | UnsignedMulHigh32 (uint32_t lhs, uint32_t rhs) |
|
int32_t | SignedMulHighAndAdd32 (int32_t lhs, int32_t rhs, int32_t acc) |
|
int32_t | SignedDiv32 (int32_t lhs, int32_t rhs) |
|
int64_t | SignedDiv64 (int64_t lhs, int64_t rhs) |
|
int32_t | SignedMod32 (int32_t lhs, int32_t rhs) |
|
int64_t | SignedMod64 (int64_t lhs, int64_t rhs) |
|
int64_t | SignedSaturatedAdd64 (int64_t lhs, int64_t rhs) |
|
int64_t | SignedSaturatedSub64 (int64_t lhs, int64_t rhs) |
|
template<typename T >
requires (std::is_unsigned<T>::value && sizeof(T) <= 8) |
constexpr unsigned | CountPopulation (T value) |
|
template<typename T > |
T | ReverseBits (T value) |
|
template<typename T > |
T | ReverseBytes (T value) |
|
template<class T > |
constexpr std::make_unsigned_t< T > | Unsigned (T value) |
|
template<class T > |
constexpr std::make_signed_t< T > | Signed (T value) |
|
template<typename T , unsigned bits = sizeof(T) * 8>
requires (std::is_unsigned<T>::value && sizeof(T) <= 8) |
constexpr unsigned | CountLeadingZeros (T value) |
|
constexpr unsigned | CountLeadingZeros32 (uint32_t value) |
|
constexpr unsigned | CountLeadingZeros64 (uint64_t value) |
|
template<class T > |
constexpr unsigned | CountLeadingSignBits (T value) |
|
template<typename T , unsigned bits = sizeof(T) * 8>
requires (std::is_integral<T>::value && sizeof(T) <= 8) |
constexpr unsigned | CountTrailingZeros (T value) |
|
constexpr unsigned | CountTrailingZeros32 (uint32_t value) |
|
constexpr unsigned | CountTrailingZeros64 (uint64_t value) |
|
template<typename T , unsigned bits = sizeof(T) * 8>
requires (std::is_integral<T>::value && sizeof(T) <= 8) |
constexpr unsigned | CountTrailingZerosNonZero (T value) |
|
template<typename T >
requires (std::is_integral<T>::value || std::is_enum<T>::value) |
constexpr bool | IsPowerOfTwo (T value) |
|
template<typename T >
requires std::is_integral<T>::value |
constexpr int | WhichPowerOfTwo (T value) |
|
V8_BASE_EXPORT constexpr uint32_t | RoundUpToPowerOfTwo32 (uint32_t value) |
|
V8_BASE_EXPORT constexpr uint64_t | RoundUpToPowerOfTwo64 (uint64_t value) |
|
constexpr size_t | RoundUpToPowerOfTwo (size_t value) |
|
uint32_t | RoundDownToPowerOfTwo32 (uint32_t value) |
|
constexpr uint32_t | RotateRight32 (uint32_t value, uint32_t shift) |
|
constexpr uint32_t | RotateLeft32 (uint32_t value, uint32_t shift) |
|
constexpr uint64_t | RotateRight64 (uint64_t value, uint64_t shift) |
|
constexpr uint64_t | RotateLeft64 (uint64_t value, uint64_t shift) |
|
bool | SignedAddOverflow32 (int32_t lhs, int32_t rhs, int32_t *val) |
|
bool | SignedSubOverflow32 (int32_t lhs, int32_t rhs, int32_t *val) |
|
bool | SignedMulOverflow32 (int32_t lhs, int32_t rhs, int32_t *val) |
|
bool | SignedAddOverflow64 (int64_t lhs, int64_t rhs, int64_t *val) |
|
bool | SignedSubOverflow64 (int64_t lhs, int64_t rhs, int64_t *val) |
|
bool | SignedMulOverflow64 (int64_t lhs, int64_t rhs, int64_t *val) |
|
bool | UnsignedAddOverflow32 (uint32_t lhs, uint32_t rhs, uint32_t *val) |
|
uint32_t | UnsignedDiv32 (uint32_t lhs, uint32_t rhs) |
|
uint64_t | UnsignedDiv64 (uint64_t lhs, uint64_t rhs) |
|
uint32_t | UnsignedMod32 (uint32_t lhs, uint32_t rhs) |
|
uint64_t | UnsignedMod64 (uint64_t lhs, uint64_t rhs) |
|
int32_t | WraparoundAdd32 (int32_t lhs, int32_t rhs) |
|
int32_t | WraparoundNeg32 (int32_t x) |
|
template<class T > |
V8_BASE_EXPORT constexpr int | BitWidth (T x) |
|