| 78 | size_t Index(KeyT const & key) const { return static_cast<size_t>(Hash(key) & m_hashMask); } |
| 79 | |
| 80 | static uint32_t Hash(uint32_t x) |
| 81 | { |
| 82 | x = (x ^ 61) ^ (x >> 16); |
| 83 | x = x + (x << 3); |
| 84 | x = x ^ (x >> 4); |
| 85 | x = x * 0x27d4eb2d; |
| 86 | x = x ^ (x >> 15); |
| 87 | return x; |
| 88 | } |
| 89 | |
| 90 | static uint32_t Hash(uint64_t x) { return Hash(uint32_t(x) ^ uint32_t(x >> 32)); } |
| 91 |