vendor/bela/include/bela/city.hpp
inline uint64 Hash128to64(const uint128 &x) {
  // Murmur-inspired hashing.
  const uint64 kMul = 0x9ddfea08eb382d69ULL;
  uint64 a = (bela::Uint128Low64(x) ^ bela::Uint128High64(x)) * kMul;
  a ^= (a >> 47);
  uint64 b = (bela::Uint128High64(x) ^ a) * kMul;
  b ^= (b >> 47);
  b *= kMul;
  return b;
}
// Hash 128 input bits down to 64 bits of output.
// This is intended to be a reasonably good hash function.
Hash 128 input bits down to 64 bits of output.
This is intended to be a reasonably good hash function.
Hash 128 input bits down to 64 bits of output . This is intended to be a reasonably good hash function .
inline uint64 Hash128to64(const uint128 &x) {
  const uint64 kMul = 0x9ddfea08eb382d69ULL;
  uint64 a = (bela::Uint128Low64(x) ^ bela::Uint128High64(x)) * kMul;
  a ^= (a >> 47);
  uint64 b = (bela::Uint128High64(x) ^ a) * kMul;
  b ^= (b >> 47);
  b *= kMul;
  return b;
}
inline uint64 Hash128to64 ( const uint128 & x ) { const uint64 kMul = 0x9ddfea08eb382d69ULL ; uint64 a = ( bela :: Uint128Low64 ( x ) ^ bela :: Uint128High64 ( x ) ) * kMul ; a ^= ( a >> 47 ) ; uint64 b = ( bela :: Uint128High64 ( x ) ^ a ) * kMul ; b ^= ( b >> 47 ) ; b *= kMul ; return b ; }
Hash 128 input bits down to 64 bits of output.
Hash 128 input bits down to 64 bits of output .
// Murmur-inspired hashing.