12 const uint32_t c1 = 0xcc9e2d51;
13 const uint32_t c2 = 0x1b873593;
14 const uint32_t r1 = 15;
15 const uint32_t r2 = 13;
17 const uint32_t n = 0xe6546b64;
21 const int nblocks = len / 4;
22 const uint32_t *blocks = (
const uint32_t *)(key);
24 for (i = 0; i < nblocks; i++) {
25 uint32_t k = blocks[i];
28 k = (k << r1) | (k >> (32 - r1));
32 hash = (hash << r2) | (hash >> (32 - r2));
36 const uint8_t *tail = (
const uint8_t *)(key + nblocks * 4);
47 k1 = (k1 << r1) | (k1 >> (32 - r1));
static uint32_t ck_murmurhash3_str(const char *key, uint32_t seed)
uint32_t ck_murmurhash3_32(const void *key, size_t len, uint32_t seed)
uint32_t ck_murmurhash3(const char *key, uint32_t len, uint32_t seed)