summaryrefslogtreecommitdiff
path: root/Hashes.h
diff options
context:
space:
mode:
Diffstat (limited to 'Hashes.h')
-rw-r--r--Hashes.h78
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);
+}