1#pragma once 2 3#include "Types.h" 4 5#include "MurmurHash1.h" 6#include "MurmurHash2.h" 7#include "MurmurHash3.h" 8 9//---------- 10// These are _not_ hash functions (even though people tend to use crc32 as one...) 11 12void sumhash ( const void * key, int len, uint32_t seed, void * out ); 13void sumhash32 ( const void * key, int len, uint32_t seed, void * out ); 14 15void DoNothingHash ( const void * key, int len, uint32_t seed, void * out ); 16void crc32 ( const void * key, int len, uint32_t seed, void * out ); 17 18void randhash_32 ( const void * key, int len, uint32_t seed, void * out ); 19void randhash_64 ( const void * key, int len, uint32_t seed, void * out ); 20void randhash_128 ( const void * key, int len, uint32_t seed, void * out ); 21 22//---------- 23// Cryptographic hashes 24 25void md5_32 ( const void * key, int len, uint32_t seed, void * out ); 26void sha1_32a ( const void * key, int len, uint32_t seed, void * out ); 27 28//---------- 29// General purpose hashes 30 31void FNV ( const void * key, int len, uint32_t seed, void * out ); 32void Bernstein ( const void * key, int len, uint32_t seed, void * out ); 33void SuperFastHash ( const void * key, int len, uint32_t seed, void * out ); 34void lookup3_test ( const void * key, int len, uint32_t seed, void * out ); 35void MurmurOAAT_test ( const void * key, int len, uint32_t seed, void * out ); 36void Crap8_test ( const void * key, int len, uint32_t seed, void * out ); 37void CityHash128_test ( const void * key, int len, uint32_t seed, void * out ); 38void CityHash64_test ( const void * key, int len, uint32_t seed, void * out ); 39 40void SpookyHash32_test ( const void * key, int len, uint32_t seed, void * out ); 41void SpookyHash64_test ( const void * key, int len, uint32_t seed, void * out ); 42void SpookyHash128_test ( const void * key, int len, uint32_t seed, void * out ); 43 44uint32_t MurmurOAAT ( const void * key, int len, uint32_t seed ); 45 46//---------- 47// MurmurHash2 48 49void MurmurHash2_test ( const void * key, int len, uint32_t seed, void * out ); 50void MurmurHash2A_test ( const void * key, int len, uint32_t seed, void * out ); 51 52//----------------------------------------------------------------------------- 53// Test harnesses for Murmur1/2 54 55inline void MurmurHash1_test ( const void * key, int len, uint32_t seed, void * out ) 56{ 57 *(uint32_t*)out = MurmurHash1(key,len,seed); 58} 59 60inline void MurmurHash2_test ( const void * key, int len, uint32_t seed, void * out ) 61{ 62 *(uint32_t*)out = MurmurHash2(key,len,seed); 63} 64 65inline void MurmurHash2A_test ( const void * key, int len, uint32_t seed, void * out ) 66{ 67 *(uint32_t*)out = MurmurHash2A(key,len,seed); 68} 69 70inline void MurmurHash64A_test ( const void * key, int len, uint32_t seed, void * out ) 71{ 72 *(uint64_t*)out = MurmurHash64A(key,len,seed); 73} 74 75inline void MurmurHash64B_test ( const void * key, int len, uint32_t seed, void * out ) 76{ 77 *(uint64_t*)out = MurmurHash64B(key,len,seed); 78} 79