15#ifndef DRACO_CORE_HASH_UTILS_H_
16#define DRACO_CORE_HASH_UTILS_H_
25template <
typename T1,
typename T2>
27 const size_t hash1 = std::hash<T1>()(a);
28 const size_t hash2 = std::hash<T2>()(b);
29 return (hash1 << 2) ^ (hash2 << 1);
34 const size_t hasha = std::hash<T>()(a);
35 return (hash) ^ (hasha + 239);
39 return (a + 1013) ^ (b + 107) << 1;
50 for (
unsigned int i = 0; i < std::tuple_size<T>::value; ++i) {
58 return std::hash<V>()(val);
Definition attribute_octahedron_transform.cc:21
uint64_t FingerprintString(const char *s, size_t len)
Definition hash_utils.cc:24
size_t HashCombine(T1 a, T2 b)
Definition hash_utils.h:26
Definition hash_utils.h:47
size_t ValueHash(const V &val) const
Definition hash_utils.h:57
size_t operator()(const T &a) const
Definition hash_utils.h:48