57 return cuda::std::rotl(
x,
static_cast<int>(
r));
150 if ((size % 32) >= 8) {
160 if ((size % 8) >= 4) {
193 key *= 0x9e3779b97f4a7c15ULL;
210 return key * 0x9E3779B97F4A7C15ULL;
XXHash_64 implementation from.
constexpr uint64_t PRIME64_3
constexpr uint64_t PRIME64_1
constexpr __host__ __device__ __forceinline__ uint64_t rotl64(uint64_t x, int8_t r)
Rotates x left by r bits.
__host__ __device__ __forceinline__ T load_chunk(const uint8_t *data, uint64_t index)
Loads a chunk of type T from data at byte offset index*sizeof(T).
constexpr __host__ __device__ __forceinline__ uint64_t finalize(uint64_t h)
Applies the xxHash-64 final mixing (avalanche) step.
constexpr uint64_t PRIME64_2
constexpr uint64_t PRIME64_4
__host__ __device__ uint64_t xxhash64(const T &key, uint64_t seed=0)
Computes the xxHash-64 digest of a value.
constexpr uint64_t PRIME64_5
constexpr __host__ __device__ __forceinline__ uint64_t minimizerHash64(uint64_t key)
Fast 64-bit hash sufficient for uniform minimizer selection.
constexpr __host__ __device__ __forceinline__ uint64_t hash64(uint64_t key)
Fast 64-bit integer hash (non-cryptographic).
consteval bool separatorPositionAlwaysEncodesInvalid(char *input, uint64_t separatorPosition, uint64_t index)
Recursively tests whether placing the separator byte at any position in an input of valid bytes alway...