34# include <gsl/gsl_rng.h>
54 for (
int i = 0; i < 256; ++i)
86 <<
"jsw_hash: init_jsw() has not been called";
88 const unsigned char *p = (
const unsigned char*) key;
91 for (
size_t i = 0; i < len; i++)
92 h = (
h << 1 |
h >> 31) ^
tab[p[i]];
104 <<
"jsw_hash: init_jsw() has not been called";
106 const unsigned char * p = (
const unsigned char*) key;
130#define FORCE_INLINE __attribute__((always_inline)) inline
132#define FORCE_INLINE inline
137 return (x << r) | (x >> (32 - r));
142 return (x << r) | (x >> (64 - r));
145#define ROTL32(x,y) rotl32(x,y)
146#define ROTL64(x,y) rotl64(x,y)
148#define BIG_CONSTANT(x) (x##LLU)
154#define getblock(p, i) (p[i])
212 h1 =
h1*5+0xe6546b64;
226 case 1:
k1 ^= tail[0];
302 case 13:
k4 ^= tail[12] << 0;
308 case 9:
k3 ^= tail[ 8] << 0;
314 case 5:
k2 ^= tail[ 4] << 0;
320 case 1:
k1 ^= tail[ 0] << 0;
327 h1 ^= len;
h2 ^= len;
h3 ^= len;
h4 ^= len;
413 h1 ^= len;
h2 ^= len;
Exception handling system with formatted messages for Aleph-w.
#define ah_domain_error_if(C)
Throws std::domain_error if condition holds.
Collection of general-purpose hash functions.
Main namespace for Aleph-w library functions.
static uint32_t fmix32(uint32_t h)
void MurmurHash3_x86_32(const void *key, int len, uint32_t seed, void *out)
void MurmurHash3_x64_128(const void *key, const int len, const uint32_t seed, void *out)
static uint32_t rotl32(uint32_t x, int8_t r)
size_t jsw_hash(const void *key, size_t len)
JSW hash (Julienne Walker)
static uint64_t fmix64(uint64_t k)
static uint64_t rotl64(uint64_t x, int8_t r)
void MurmurHash3_x86_128(const void *key, const int len, uint32_t seed, void *out)
const unsigned Default_Hash_Seed
Hash functions (implementaciones concretas).
DynList< T > maps(const C &c, Op op)
Classic map operation.