aboutsummaryrefslogtreecommitdiff
path: root/src/lib/third_party/include
diff options
context:
space:
mode:
authorLuca Deri <deri@ntop.org>2020-06-10 23:43:35 +0200
committerLuca Deri <deri@ntop.org>2020-06-10 23:43:35 +0200
commit60aaa80570b48b15c14c2a5133d9b73f7578b21a (patch)
tree9615961ce54a59adb3ed993f58d5f125a58380b4 /src/lib/third_party/include
parent0b9e46e65a8be9b30de96ec2e9f6061e2b4034b8 (diff)
Added HyperLogLog cardinality estimator API calls
/* Memory lifecycle */ int ndpi_hll_init(struct ndpi_hll *hll, u_int8_t bits); void ndpi_hll_destroy(struct ndpi_hll *hll); /* Add values */ void ndpi_hll_add(struct ndpi_hll *hll, const char *data, size_t data_len); void ndpi_hll_add_number(struct ndpi_hll *hll, u_int32_t value) ; /* Get cardinality estimation */ double ndpi_hll_count(struct ndpi_hll *hll);
Diffstat (limited to 'src/lib/third_party/include')
-rw-r--r--src/lib/third_party/include/MurmurHash3.h8
-rw-r--r--src/lib/third_party/include/hll.h27
2 files changed, 35 insertions, 0 deletions
diff --git a/src/lib/third_party/include/MurmurHash3.h b/src/lib/third_party/include/MurmurHash3.h
new file mode 100644
index 000000000..a048eb37d
--- /dev/null
+++ b/src/lib/third_party/include/MurmurHash3.h
@@ -0,0 +1,8 @@
+#ifndef _MURMURHASH3_H_
+#define _MURMURHASH3_H_
+
+#include <stdint.h>
+
+uint32_t MurmurHash3_x86_32(const void * key, uint32_t len, uint32_t seed);
+
+#endif
diff --git a/src/lib/third_party/include/hll.h b/src/lib/third_party/include/hll.h
new file mode 100644
index 000000000..00975ec36
--- /dev/null
+++ b/src/lib/third_party/include/hll.h
@@ -0,0 +1,27 @@
+/*
+ Code taken from https://github.com/avz/hll
+
+ Copyright (c) 2015 Artem Zaytsev <arepo@nologin.ru>
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+extern int hll_init(struct ndpi_hll *hll, u_int8_t bits);
+extern void hll_destroy(struct ndpi_hll *hll);
+extern void hll_add(struct ndpi_hll *hll, const void *buf, size_t size);
+extern double hll_count(const struct ndpi_hll *hll);