diff options
Diffstat (limited to 'Hashes.h')
-rw-r--r-- | Hashes.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/Hashes.h b/Hashes.h new file mode 100644 index 0000000..6c04ae1 --- /dev/null +++ b/Hashes.h @@ -0,0 +1,78 @@ +#pragma once + +#include "Types.h" + +#include "MurmurHash1.h" +#include "MurmurHash2.h" +#include "MurmurHash3.h" + +//---------- +// These are _not_ hash functions (even though people tend to use crc32 as one...) + +void sumhash ( const void * key, int len, uint32_t seed, void * out ); +void sumhash32 ( const void * key, int len, uint32_t seed, void * out ); + +void DoNothingHash ( const void * key, int len, uint32_t seed, void * out ); +void crc32 ( const void * key, int len, uint32_t seed, void * out ); + +void randhash_32 ( const void * key, int len, uint32_t seed, void * out ); +void randhash_64 ( const void * key, int len, uint32_t seed, void * out ); +void randhash_128 ( const void * key, int len, uint32_t seed, void * out ); + +//---------- +// Cryptographic hashes + +void md5_32 ( const void * key, int len, uint32_t seed, void * out ); +void sha1_32a ( const void * key, int len, uint32_t seed, void * out ); + +//---------- +// General purpose hashes + +void FNV ( const void * key, int len, uint32_t seed, void * out ); +void Bernstein ( const void * key, int len, uint32_t seed, void * out ); +void SuperFastHash ( const void * key, int len, uint32_t seed, void * out ); +void lookup3_test ( const void * key, int len, uint32_t seed, void * out ); +void MurmurOAAT_test ( const void * key, int len, uint32_t seed, void * out ); +void Crap8_test ( const void * key, int len, uint32_t seed, void * out ); +void CityHash128_test ( const void * key, int len, uint32_t seed, void * out ); +void CityHash64_test ( const void * key, int len, uint32_t seed, void * out ); + +void SpookyHash32_test ( const void * key, int len, uint32_t seed, void * out ); +void SpookyHash64_test ( const void * key, int len, uint32_t seed, void * out ); +void SpookyHash128_test ( const void * key, int len, uint32_t seed, void * out ); + +uint32_t MurmurOAAT ( const void * key, int len, uint32_t seed ); + +//---------- +// MurmurHash2 + +void MurmurHash2_test ( const void * key, int len, uint32_t seed, void * out ); +void MurmurHash2A_test ( const void * key, int len, uint32_t seed, void * out ); + +//----------------------------------------------------------------------------- +// Test harnesses for Murmur1/2 + +inline void MurmurHash1_test ( const void * key, int len, uint32_t seed, void * out ) +{ + *(uint32_t*)out = MurmurHash1(key,len,seed); +} + +inline void MurmurHash2_test ( const void * key, int len, uint32_t seed, void * out ) +{ + *(uint32_t*)out = MurmurHash2(key,len,seed); +} + +inline void MurmurHash2A_test ( const void * key, int len, uint32_t seed, void * out ) +{ + *(uint32_t*)out = MurmurHash2A(key,len,seed); +} + +inline void MurmurHash64A_test ( const void * key, int len, uint32_t seed, void * out ) +{ + *(uint64_t*)out = MurmurHash64A(key,len,seed); +} + +inline void MurmurHash64B_test ( const void * key, int len, uint32_t seed, void * out ) +{ + *(uint64_t*)out = MurmurHash64B(key,len,seed); +} |