#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); } void XxHash_test ( const void * key, int len, uint32_t seed, void * out );