bloom-sol 0.0.3

Counting bloom filter, aimed for solana
Documentation
use crate::bloom_sol::struct_def::CountingBloomFilter;

impl CountingBloomFilter {
    /// Estimates the false positive probability (error rate) for a Bloom filter.
    ///
    /// This uses the standard Bloom filter approximation: (1 - e^(-k * n / m))^k
    ///
    /// # Arguments
    /// * `n` - Number of elements inserted
    /// * `k` - Number of hash functions
    /// * `m` - Number of counters (size of the filter)
    pub fn estimated_false_positive_rate(n: usize, k: usize, m: usize) -> f64 {
        if m == 0 {
            return 1.0;
        }

        let n_f = n as f64;
        let k_f = k as f64;
        let m_f = m as f64;

        let exp_term = (-k_f * n_f / m_f).exp();
        (1.0 - exp_term).powf(k_f)
    }
}