diff options
author | Luca Deri <deri@ntop.org> | 2020-06-10 23:43:35 +0200 |
---|---|---|
committer | Luca Deri <deri@ntop.org> | 2020-06-10 23:43:35 +0200 |
commit | 60aaa80570b48b15c14c2a5133d9b73f7578b21a (patch) | |
tree | 9615961ce54a59adb3ed993f58d5f125a58380b4 /src/lib/third_party/include | |
parent | 0b9e46e65a8be9b30de96ec2e9f6061e2b4034b8 (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.h | 8 | ||||
-rw-r--r-- | src/lib/third_party/include/hll.h | 27 |
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); |