aboutsummaryrefslogtreecommitdiffstats
path: root/src/util.h
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rambler-co.ru>2012-10-08 21:21:53 +0400
committerVsevolod Stakhov <vsevolod@rambler-co.ru>2012-10-08 21:21:53 +0400
commit8e399cdba1bba1da8c1de2b8a22efe719aa30cde (patch)
tree579eca49aa1fd0b01d4b9739418f8ed592225ef4 /src/util.h
parenta1e2b2d84b185b5430252d7ead5806944be433af (diff)
downloadrspamd-8e399cdba1bba1da8c1de2b8a22efe719aa30cde.tar.gz
rspamd-8e399cdba1bba1da8c1de2b8a22efe719aa30cde.zip
* Use murmur hash for all hashes as it is more efficient and provides more uniform distribution as glib's default one.
* Fix probability renormalization while using advanced classification.
Diffstat (limited to 'src/util.h')
-rw-r--r--src/util.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/util.h b/src/util.h
index 961e75645..c8fd8158a 100644
--- a/src/util.h
+++ b/src/util.h
@@ -146,6 +146,13 @@ guint rspamd_strcase_hash (gconstpointer key);
gboolean rspamd_strcase_equal (gconstpointer v, gconstpointer v2);
/*
+ * Hash table utility functions for case sensitive hashing
+ */
+guint rspamd_str_hash (gconstpointer key);
+gboolean rspamd_str_equal (gconstpointer v, gconstpointer v2);
+
+
+/*
* Hash table utility functions for hashing fixed strings
*/
guint fstr_strcase_hash (gconstpointer key);
@@ -317,4 +324,39 @@ void rspamd_rwlock_free (rspamd_rwlock_t *mtx);
*/
GThread* rspamd_create_thread (const gchar *name, GThreadFunc func, gpointer data, GError **err);
+/**
+ * Return 32bit murmur hash value for specified input
+ * @param in input data
+ * @param len length of the input data
+ * @code
+ * MurmurHash3 was created by Austin Appleby in 2008. The cannonical
+ * implementations are in C++ and placed in the public.
+ *
+ * https://sites.google.com/site/murmurhash/
+ *
+ * Seungyoung Kim has ported it's cannonical implementation to C language
+ * in 2012 and published it as a part of qLibc component.
+ * @endcode
+ * @return
+ */
+guint32 murmur32_hash (const guint8 *in, gsize len);
+
+/**
+ * Return 32bit murmur hash value for specified input
+ * @param in input data
+ * @param len length of the input data
+ * @param out array of 2 guint64 variables
+ * @code
+ * MurmurHash3 was created by Austin Appleby in 2008. The cannonical
+ * implementations are in C++ and placed in the public.
+ *
+ * https://sites.google.com/site/murmurhash/
+ *
+ * Seungyoung Kim has ported it's cannonical implementation to C language
+ * in 2012 and published it as a part of qLibc component.
+ * @endcode
+ * @return
+ */
+void murmur128_hash (const guint8 *in, gsize len, guint64 out[]);
+
#endif