Libecoli
0.11.5
Extensible COmmand LIne library
Toggle main menu visibility
Loading...
Searching...
No Matches
murmurhash.h
1
/* SPDX-License-Identifier: BSD-3-Clause
2
* Copyright 2016, Olivier MATZ <zer0@droids-corp.org>
3
*/
4
15
16
#pragma once
17
18
#include <stdint.h>
19
21
static
inline
uint32_t
ec_murmurhash_rotl32
(uint32_t x, int8_t r)
22
{
23
return
(x << r) | (x >> (32 - r));
24
}
25
27
static
inline
uint32_t
ec_murmurhash3_add32
(uint32_t h, uint32_t data)
28
{
29
data *= 0xcc9e2d51;
30
data =
ec_murmurhash_rotl32
(data, 15);
31
data *= 0x1b873593;
32
h ^= data;
33
return
h;
34
}
35
37
static
inline
uint32_t
ec_murmurhash3_mix32
(uint32_t h)
38
{
39
h =
ec_murmurhash_rotl32
(h, 13);
40
h = h * 5 + 0xe6546b64;
41
return
h;
42
}
43
45
static
inline
uint32_t
ec_murmurhash3_fmix32
(uint32_t h)
46
{
47
h ^= h >> 16;
48
h *= 0x85ebca6b;
49
h ^= h >> 13;
50
h *= 0xc2b2ae35;
51
h ^= h >> 16;
52
53
return
h;
54
}
55
68
uint32_t
ec_murmurhash3
(
const
void
*key,
int
len, uint32_t seed);
69
ec_murmurhash3_fmix32
static uint32_t ec_murmurhash3_fmix32(uint32_t h)
Definition
murmurhash.h:45
ec_murmurhash3_mix32
static uint32_t ec_murmurhash3_mix32(uint32_t h)
Definition
murmurhash.h:37
ec_murmurhash_rotl32
static uint32_t ec_murmurhash_rotl32(uint32_t x, int8_t r)
Definition
murmurhash.h:21
ec_murmurhash3
uint32_t ec_murmurhash3(const void *key, int len, uint32_t seed)
ec_murmurhash3_add32
static uint32_t ec_murmurhash3_add32(uint32_t h, uint32_t data)
Definition
murmurhash.h:27
ecoli
murmurhash.h
Generated by
1.17.0