summaryrefslogtreecommitdiff
path: root/Hashes.h
diff options
context:
space:
mode:
authortanjent@gmail.com <tanjent@gmail.com@77a7d1d3-4c08-bdc2-d393-d5859734b01a>2010-11-05 01:20:58 +0000
committertanjent@gmail.com <tanjent@gmail.com@77a7d1d3-4c08-bdc2-d393-d5859734b01a>2010-11-05 01:20:58 +0000
commitad4b363201477cb33966510b850c2193b1f825fe (patch)
tree9b4bdb1b5d9ed22197655b796a205f3c458ab4fc /Hashes.h
parent2e8984f1e39b91dae37a23aea35d30b78f46c096 (diff)
downloadsrc-ad4b363201477cb33966510b850c2193b1f825fe.tar.gz
MurmurHash3 is released to beta
(potentially some constant-tweaking yet to be done, but it is quite usable and all variants pass all tests) git-svn-id: http://smhasher.googlecode.com/svn/trunk@5 77a7d1d3-4c08-bdc2-d393-d5859734b01a
Diffstat (limited to 'Hashes.h')
-rw-r--r--Hashes.h33
1 files changed, 31 insertions, 2 deletions
diff --git a/Hashes.h b/Hashes.h
index 8bf998e..1aad04c 100644
--- a/Hashes.h
+++ b/Hashes.h
@@ -6,17 +6,37 @@
#include "MurmurHash2.h"
#include "MurmurHash3.h"
+//----------
+// These are _not_ hash functions (even though people tend to use crc32 as one...)
+
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 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 md5_32 ( const void * key, int len, uint32_t seed, void * out );
-void crc32 ( const void * key, int len, uint32_t seed, void * out );
+
+//----------
+// 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 )
{
@@ -33,3 +53,12 @@ inline void MurmurHash2A_test ( const void * key, int len, uint32_t seed, void *
*(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);
+} \ No newline at end of file