60 return (key >> 3) * 2654435761U;
65 template<
class T,
class Enable =
void>
71 struct fnv<T, typename std::enable_if<sizeof(T) == 4>::type>
73 static_assert(std::is_integral<T>::value && std::is_unsigned<T>::value,
74 "Fowler-Noll-Vo hash requires an unsigned integral type");
75 static constexpr T init = 2166136261UL;
76 static constexpr T prime = 16777619UL;
81 struct fnv<T, typename std::enable_if<sizeof(T) == 8>::type>
83 static_assert(std::is_integral<T>::value && std::is_unsigned<T>::value,
84 "Fowler-Noll-Vo hash requires an unsigned integral type");
85 static constexpr T init = 14695981039346656037ULL;
86 static constexpr T prime = 1099511628211ULL;
98 for (; begin != end; ++begin)
size_t fnv_hash(It begin, It end)
Fowler-Noll-Vo hash function.
Definition: hashfunc.hh:95
size_t wang32_hash(size_t key)
Thomas Wang's 32 bit hash function.
Definition: hashfunc.hh:37
size_t knuth32_hash(size_t key)
Knuth's Multiplicative hash function.
Definition: hashfunc.hh:56
Definition: automata.hh:26
Struct for Fowler-Noll-Vo parameters.
Definition: hashfunc.hh:67