872 B
Dev Docs
I've scaffolded but it I feel it makes more sense to just have a one file impl first in some .cpp file and take it from there. So off we go to top level main.cpp
There is an original paper but I'm reading off from wiki for now https://en.wikipedia.org/wiki/Bloom_filter
Making k hashes
This was the first problem. Just like open addressing hash tables do it.
Idea is you take 2 hash functions and then use them as
h_i(x) = ( h1(x) + i.h2(x) ) mod m
Then if I say that gcd(h2(x),m) = 1 then thi will loop over all residues and I have a uniform spread over the range m.
I can't do h(x) + i as that's a bad idea since it'll be consecutive same with i . h(x) as there will be just equally spaced strides.
This double hashed func almost behaves like a random number generator.
std::hash
you make a hasher object and them immediately call it