| Crates.io | hyperloglogplus |
| lib.rs | hyperloglogplus |
| version | 0.4.1 |
| created_at | 2020-04-16 05:58:51.671048+00 |
| updated_at | 2022-06-13 21:27:48.162753+00 |
| description | HyperLogLog implementations. |
| homepage | https://github.com/tabac/hyperloglog.rs |
| repository | https://github.com/tabac/hyperloglog.rs |
| max_upload_size | |
| id | 230689 |
| size | 188,503 |
HyperLogLog is a probabilistic algorithm for estimating the number of distinct elements (cardinality) of a multiset. Several variations of the original algorithm, described by P. Flajolet et al., have been proposed.
The following implementations are provided:
Add to Cargo.toml:
[dependencies]
hyperloglogplus = "*"
With Rust compiler version 1.45.0 or higher consider enabling the const-loop
feature for better performance, see here
for more details.
[dependencies]
hyperloglogplus = { version = "*", features = ["const-loop"] }
A simple example using HyperLogLog++ implementation:
use std::collections::hash_map::RandomState;
use hyperloglogplus::{HyperLogLog, HyperLogLogPlus};
let mut hllp: HyperLogLogPlus<u32, _> =
HyperLogLogPlus::new(16, RandomState::new()).unwrap();
hllp.insert(&12345);
hllp.insert(&23456);
assert_eq!(hllp.count().trunc() as u32, 2);
Here you can find figures and discussion on experimental evaluation.