Compile-time MurmurHash3.
More...
|
constexpr uint32_t | RotateL (uint32_t x, int8_t r) |
|
constexpr uint32_t | Mix2 (uint32_t k) |
|
constexpr uint32_t | Mix (uint32_t block, uint32_t state) |
|
constexpr uint32_t | ShiftAndXor (uint32_t val, int shift) |
|
constexpr uint32_t | ToInt32 (const char *bytes) |
| Convert char[4] to uint32_t. More...
|
|
constexpr uint32_t | Hash2 (const char *str, size_t length, uint32_t state) |
|
constexpr uint32_t | Finalize (uint32_t h0) |
| Finalize step of MurmurHash3. More...
|
|
constexpr Hash | Hash (const char *str, size_t length, uint32_t seed=42) |
| Compute Hash of string. More...
|
|
|
const uint32_t | mixC1 = 0xcc9e2d51 |
|
const uint32_t | mixC2 = 0x1b873593 |
|
const uint32_t | mixR1 = 15 |
|
const uint32_t | mixR2 = 13 |
|
const uint32_t | m1 = 5 |
|
const uint32_t | m2 = 0xe6546b64 |
|
const uint32_t | c1 = 0x85ebca6b |
|
const uint32_t | c2 = 0xc2b2ae35 |
|
const uint32_t | r1 = 16 |
|
const uint32_t | r2 = 13 |
|
const uint32_t | r3 = 16 |
|
Compile-time MurmurHash3.
Only use Murmur::Hash(), the rest is for internal use only.
constexpr uint32_t molecular::util::Murmur::Finalize |
( |
uint32_t |
h0 | ) |
|
Finalize step of MurmurHash3.
constexpr Hash molecular::util::Murmur::Hash |
( |
const char * |
str, |
|
|
size_t |
length, |
|
|
uint32_t |
seed = 42 |
|
) |
| |
constexpr uint32_t molecular::util::Murmur::Hash2 |
( |
const char * |
str, |
|
|
size_t |
length, |
|
|
uint32_t |
state |
|
) |
| |
constexpr uint32_t molecular::util::Murmur::Mix |
( |
uint32_t |
block, |
|
|
uint32_t |
state |
|
) |
| |
constexpr uint32_t molecular::util::Murmur::Mix2 |
( |
uint32_t |
k | ) |
|
constexpr uint32_t molecular::util::Murmur::RotateL |
( |
uint32_t |
x, |
|
|
int8_t |
r |
|
) |
| |
constexpr uint32_t molecular::util::Murmur::ShiftAndXor |
( |
uint32_t |
val, |
|
|
int |
shift |
|
) |
| |
constexpr uint32_t molecular::util::Murmur::ToInt32 |
( |
const char * |
bytes | ) |
|
Convert char[4] to uint32_t.
Little endian.
const uint32_t molecular::util::Murmur::c1 = 0x85ebca6b |
const uint32_t molecular::util::Murmur::c2 = 0xc2b2ae35 |
const uint32_t molecular::util::Murmur::m1 = 5 |
const uint32_t molecular::util::Murmur::m2 = 0xe6546b64 |
const uint32_t molecular::util::Murmur::mixC1 = 0xcc9e2d51 |
const uint32_t molecular::util::Murmur::mixC2 = 0x1b873593 |
const uint32_t molecular::util::Murmur::mixR1 = 15 |
const uint32_t molecular::util::Murmur::mixR2 = 13 |
const uint32_t molecular::util::Murmur::r1 = 16 |
const uint32_t molecular::util::Murmur::r2 = 13 |
const uint32_t molecular::util::Murmur::r3 = 16 |