molecular
Functions | Variables
molecular::util::Murmur Namespace Reference

Compile-time MurmurHash3. More...

Functions

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...
 

Variables

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
 

Detailed Description

Compile-time MurmurHash3.

Only use Murmur::Hash(), the rest is for internal use only.

Function Documentation

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 
)

Compute Hash of string.

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.

Variable Documentation

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