Rust implementation of the CVM algorithm for counting distinct elements in a stream
0

Configure Feed

Select the types of activity you want to include in your feed.

Just return usize for the buffer size

+4 -4
+4 -4
src/lib.rs
··· 30 30 pub fn new(epsilon: f64, delta: f64, stream_size: usize) -> Self { 31 31 let bufsize = buffer_size(epsilon, delta, stream_size); 32 32 Self { 33 - buf_size: bufsize as usize, 34 - buf: Vec::with_capacity(bufsize as usize), 33 + buf_size: bufsize, 34 + buf: Vec::with_capacity(bufsize), 35 35 probability: 1.0, 36 36 rng: rand::thread_rng(), 37 37 re: Regex::new(r"[^\w\s]").unwrap(), ··· 71 71 } 72 72 73 73 // Calculate threshold (buf_size) value for the F0-Estimator algorithm 74 - fn buffer_size(epsilon: f64, delta: f64, stream_size: usize) -> u32 { 75 - ((12.0 / epsilon.powf(2.0)) * ((8.0 * stream_size as f64) / delta).log2()).ceil() as u32 74 + fn buffer_size(epsilon: f64, delta: f64, stream_size: usize) -> usize { 75 + ((12.0 / epsilon.powf(2.0)) * ((8.0 * stream_size as f64) / delta).log2()).ceil() as usize 76 76 }