Crates.io | cmsketch |
lib.rs | cmsketch |
version | 0.2.1 |
source | src |
created_at | 2023-05-17 08:42:19.62681 |
updated_at | 2024-08-20 03:58:34.008503 |
description | A count min sketch implementation in Rust |
homepage | https://github.com/mrcroxx/cmsketch-rs |
repository | https://github.com/mrcroxx/cmsketch-rs |
max_upload_size | |
id | 866779 |
size | 29,236 |
A count min sketch implementation in Rust.
Inspired by Facebook/CacheLib and Caffeine.
use cmsketch::CMSketchU32;
const ERROR: f64 = 0.01;
const CONFIDENCE: f64 = 0.95;
fn main() {
let mut cms = CMSketchU32::new(ERROR, CONFIDENCE);
for i in 0..10 {
for _ in 0..i {
cms.inc(i);
}
}
for i in 0..10 {
assert!(cms.estimate(i) >= i as u32);
}
cms.halve();
for i in 0..10 {
assert!(cms.estimate(i) >= (i as f64 * 0.5) as u32);
}
}