14#ifndef HASHFN_UNSTABLE_H
15#define HASHFN_UNSTABLE_H
108#define FH_SIZEOF_ACCUM sizeof(uint64)
120 hs->
hash = seed ^ 0x880355f21e6d1965;
127 h ^= (h >> 23) + tweak;
128 h *= 0x2127599bf4325c37;
138 hs->
hash *= 0x880355f21e6d1965;
153#ifdef WORDS_BIGENDIAN
169 memcpy(&lower_four, k,
sizeof(lower_four));
200 memcpy(&lower_four, k,
sizeof(lower_four));
201 hs->
accum |= lower_four;
224#define haszero64(v) \
225 (((v) - 0x0101010101010101) & ~(v) & 0x8080808080808080)
237 size_t chunk_len = 0;
298#if SIZEOF_VOID_P >= 8
301#ifdef USE_ASSERT_CHECKING
310 len = fasthash_accum_cstring_aligned(hs,
str);
350 return h - (h >> 32);
378 hs.
hash = seed ^ (
len * 0x880355f21e6d1965);
#define PointerIsAligned(pointer, type)
#define Assert(condition)
memcpy(sums, checksumBaseOffsets, sizeof(checksumBaseOffsets))
static uint32 fasthash_reduce32(uint64 h)
static uint32 fasthash32(const char *k, size_t len, uint64 seed)
pg_attribute_no_sanitize_address() static inline size_t fasthash_accum_cstring_aligned(fasthash_state *hs
static size_t fasthash_accum_cstring(fasthash_state *hs, const char *str)
static uint64 fasthash64(const char *k, size_t len, uint64 seed)
static uint64 fasthash_mix(uint64 h, uint64 tweak)
static uint32 fasthash_final32(fasthash_state *hs, uint64 tweak)
static void fasthash_combine(fasthash_state *hs)
static void fasthash_accum(fasthash_state *hs, const char *k, size_t len)
static uint64 fasthash_final64(fasthash_state *hs, uint64 tweak)
static uint32 hash_string(const char *s)
static size_t fasthash_accum_cstring_unaligned(fasthash_state *hs, const char *str)
static void fasthash_init(fasthash_state *hs, uint64 seed)