11 uint32_t length = (uint32_t)s.size();
14 a = b = c = 0xDEADBEEF + length;
21 a += ((uint32_t)s[k + 1]) << 8;
22 a += ((uint32_t)s[k + 2]) << 16;
23 a += ((uint32_t)s[k + 3]) << 24;
25 b += ((uint32_t)s[k + 5]) << 8;
26 b += ((uint32_t)s[k + 6]) << 16;
27 b += ((uint32_t)s[k + 7]) << 24;
29 c += ((uint32_t)s[k + 9]) << 8;
30 c += ((uint32_t)s[k + 10]) << 16;
31 c += ((uint32_t)s[k + 11]) << 24;
33 a -= c; a ^= ((c << 4) | (c >> 28)); c += b;
34 b -= a; b ^= ((a << 6) | (a >> 26)); a += c;
35 c -= b; c ^= ((b << 8) | (b >> 24)); b += a;
36 a -= c; a ^= ((c << 16) | (c >> 16)); c += b;
37 b -= a; b ^= ((a << 19) | (a >> 13)); a += c;
38 c -= b; c ^= ((b << 4) | (b >> 28)); b += a;
48 case 12: c += ((uint32_t)s[k + 11]) << 24;
49 case 11: c += ((uint32_t)s[k + 10]) << 16;
50 case 10: c += ((uint32_t)s[k + 9]) << 8;
51 case 9: c += s[k + 8];
52 case 8: b += ((uint32_t)s[k + 7]) << 24;
53 case 7: b += ((uint32_t)s[k + 6]) << 16;
54 case 6: b += ((uint32_t)s[k + 5]) << 8;
55 case 5: b += s[k + 4];
56 case 4: a += ((uint32_t)s[k + 3]) << 24;
57 case 3: a += ((uint32_t)s[k + 2]) << 16;
58 case 2: a += ((uint32_t)s[k + 1]) << 8;
59 case 1: a += s[k];
break;
62 c ^= b; c -= ((b << 14) | (b >> 18));
63 a ^= c; a -= ((c << 11) | (c >> 21));
64 b ^= a; b -= ((a << 25) | (a >> 7));
65 c ^= b; c -= ((b << 16) | (b >> 16));
66 a ^= c; a -= ((c << 4) | (c >> 28));
67 b ^= a; b -= ((a << 14) | (a >> 18));
68 c ^= b; c -= ((b << 24) | (b >> 8));
71 return ((uint64_t)b << 32) | c;
uint64_t HashLittle2(std::string s)