40   memcpy(&result, p, 
sizeof(result));
 
   46   memcpy(&result, p, 
sizeof(result));
 
   53 #define bswap_32(x) _byteswap_ulong(x) 
   54 #define bswap_64(x) _byteswap_uint64(x) 
   56 #elif defined(__APPLE__) 
   59 #include <libkern/OSByteOrder.h> 
   60 #define bswap_32(x) OSSwapInt32(x) 
   61 #define bswap_64(x) OSSwapInt64(x) 
   63 #elif defined(__NetBSD__) 
   65 #include <sys/types.h> 
   66 #include <machine/bswap.h> 
   67 #if defined(__BSWAP_RENAME) && !defined(__bswap_32) 
   68 #define bswap_32(x) bswap32(x) 
   69 #define bswap_64(x) bswap64(x) 
   73 #elif defined(__FreeBSD__) 
   77 #include <sys/types.h> 
   78 #include <sys/endian.h> 
   79 #define bswap_16(x) bswap16(x) 
   80 #define bswap_32(x) bswap32(x) 
   81 #define bswap_64(x) bswap64(x) 
   89 #ifdef WORDS_BIGENDIAN 
   90 #define uint32_in_expected_order(x) (bswap_32(x)) 
   91 #define uint64_in_expected_order(x) (bswap_64(x)) 
   93 #define uint32_in_expected_order(x) (x) 
   94 #define uint64_in_expected_order(x) (x) 
   98 #if HAVE_BUILTIN_EXPECT 
   99 #define LIKELY(x) (__builtin_expect(!!(x), 1)) 
  101 #define LIKELY(x) (x) 
  119 static const uint32_t 
c1 = 0xcc9e2d51;
 
  120 static const uint32_t 
c2 = 0x1b873593;
 
  135   return shift == 0 ? val : ((val >> shift) | (val << (32 - shift)));
 
  139 #define PERMUTE3(a, b, c) do { std::swap(a, b); std::swap(a, c); } while (0) 
  148   return h * 5 + 0xe6546b64;
 
  166   for (
size_t i = 0; i < len; i++) {
 
  167     signed char v = s[i];
 
  175   uint32 a = len, b = len * 5, c = 9, d = b;
 
  178   c += 
Fetch32(s + ((len >> 1) & 4));
 
  190   uint32 h = len, g = 
c1 * len, f = g;
 
  198   h = h * 5 + 0xe6546b64;
 
  201   h = h * 5 + 0xe6546b64;
 
  204   g = g * 5 + 0xe6546b64;
 
  207   g = g * 5 + 0xe6546b64;
 
  210   f = f * 5 + 0xe6546b64;
 
  211   size_t iters = (len - 1) / 20;
 
  220     h = h * 5 + 0xe6546b64;
 
  226     g = g * 5 + 0xe6546b64;
 
  229     h = h * 5 + 0xe6546b64;
 
  237   } 
while (--iters != 0);
 
  243   h = h * 5 + 0xe6546b64;
 
  246   h = h * 5 + 0xe6546b64;
 
  255   return shift == 0 ? val : ((val >> shift) | (val << (64 - shift)));
 
  259   return val ^ (val >> 47);
 
  292     uint8 b = s[len >> 1];
 
  293     uint8 c = s[len - 1];
 
  294     uint32 y = 
static_cast<uint32>(a) + (static_cast<uint32>(b) << 8);
 
  318   b = 
Rotate(b + a + z, 21);
 
  323   return make_pair(a + z, b + c);
 
  349   uint64 v = ((a + g) ^ d) + f + 1;
 
  350   uint64 w = bswap_64((u + v) * mul) + h;
 
  352   uint64 y = (bswap_64((v + w) * mul) + g) * mul;
 
  354   a = bswap_64((x + z) * mul + y) + b;
 
  355   b = 
ShiftMix((z + a) * mul + d + h) * mul;
 
  366   } 
else if (len <= 64) {
 
  380   len = (len - 1) & ~static_cast<size_t>(63);
 
  382     x = 
Rotate(x + y + v.first + Fetch64(s + 8), 37) * 
k1;
 
  383     y = 
Rotate(y + v.second + Fetch64(s + 48), 42) * 
k1;
 
  385     y += v.first + 
Fetch64(s + 40);
 
  413   signed long l = len - 16;
 
  445   pair<uint64, uint64> v, w;
 
  451   w.first = 
Rotate(y + z, 35) * k1 + x;
 
  456     x = 
Rotate(x + y + v.first + Fetch64(s + 8), 37) * 
k1;
 
  457     y = 
Rotate(y + v.second + Fetch64(s + 48), 42) * 
k1;
 
  459     y += v.first + 
Fetch64(s + 40);
 
  465     x = 
Rotate(x + y + v.first + Fetch64(s + 8), 37) * 
k1;
 
  466     y = 
Rotate(y + v.second + Fetch64(s + 48), 42) * 
k1;
 
  468     y += v.first + 
Fetch64(s + 40);
 
  475   } 
while (
LIKELY(len >= 128));
 
  482   for (
size_t tail_done = 0; tail_done < len; ) {
 
  484     y = 
Rotate(x + y, 42) * 
k0 + v.second;
 
  485     w.first += 
Fetch64(s + len - tail_done + 16);
 
  486     x = x * 
k0 + w.first;
 
  487     z += w.second + 
Fetch64(s + len - tail_done);
 
static uint32 Fetch32(const char *p)
 
static uint32 Mur(uint32 a, uint32 h)
 
std::pair< uint64, uint64 > uint128
 
static uint32 fmix(uint32 h)
 
uint64 Hash128to64(const uint128 &x)
 
static uint32 Rotate32(uint32 val, int shift)
 
uint64 CityHash64WithSeeds(const char *s, size_t len, uint64 seed0, uint64 seed1)
 
uint32 CityHash32(const char *s, size_t len)
 
static pair< uint64, uint64 > WeakHashLen32WithSeeds(uint64 w, uint64 x, uint64 y, uint64 z, uint64 a, uint64 b)
 
static uint64 UNALIGNED_LOAD64(const char *p)
 
uint64 Uint128High64(const uint128 &x)
 
static uint32 Hash32Len0to4(const char *s, size_t len)
 
uint64 CityHash64(const char *s, size_t len)
 
static uint32 Hash32Len13to24(const char *s, size_t len)
 
static uint128 CityMurmur(const char *s, size_t len, uint128 seed)
 
static uint32 Hash32Len5to12(const char *s, size_t len)
 
#define uint32_in_expected_order(x)
 
static uint32 UNALIGNED_LOAD32(const char *p)
 
uint64 CityHash64WithSeed(const char *s, size_t len, uint64 seed)
 
uint64 Uint128Low64(const uint128 &x)
 
static uint64 Rotate(uint64 val, int shift)
 
static uint64 HashLen17to32(const char *s, size_t len)
 
uint128 CityHash128(const char *s, size_t len)
 
uint128 CityHash128WithSeed(const char *s, size_t len, uint128 seed)
 
#define PERMUTE3(a, b, c)
 
static uint64 ShiftMix(uint64 val)
 
static uint64 Fetch64(const char *p)
 
static uint64 HashLen33to64(const char *s, size_t len)
 
#define uint64_in_expected_order(x)
 
static uint64 HashLen0to16(const char *s, size_t len)
 
static uint64 HashLen16(uint64 u, uint64 v)