From b9a65135ffbb240e6645210f543216fbf4193f10 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sun, 20 Nov 2022 16:55:45 +0100 Subject: [PATCH] make use of meow hash in the hash table --- Stdlib/HashTable.h | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Stdlib/HashTable.h b/Stdlib/HashTable.h index 8320d53..bb87a1a 100755 --- a/Stdlib/HashTable.h +++ b/Stdlib/HashTable.h @@ -15,6 +15,8 @@ #include #include +#include "../Hash/MeowHash.h" + namespace Stdlib { namespace HashTable @@ -42,13 +44,12 @@ namespace Stdlib inline unsigned long long hash_key(const char *key) { - unsigned long long hash = 14695981039346656037UL; - for (const char *p = key; *p; ++p) { - hash ^= (unsigned long long)(unsigned char)(*p); - hash *= 1099511628211UL; - } - - return hash; + return (unsigned long long) MeowU64From( + Hash::Meow::MeowHash(Hash::Meow::MeowDefaultSeed, + strlen(key), + (void *) key), + 0 + ); } ht *create_table(int max = 0, bool is_fixed = false)