Skip to content

Repository files navigation

HyperLogLog

Build statusCrates.ioDocumentation

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:

Usage

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};letmut hllp:HyperLogLogPlus<u32,_> =
HyperLogLogPlus::new(16,RandomState::new()).unwrap();
hllp.insert(&12345);
hllp.insert(&23456);assert_eq!(hllp.count().trunc()asu32,2);

Evaluation

Here you can find figures and discussion on experimental evaluation.

About

HyperLogLog implementations.

Topics

Resources

Stars

30 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages