6 ms·
It's worth knowing that you don't need to generate N hashes - you can use https://en.wikipedia.org/wiki/Double_hashing https://en.wikipedia.org/wiki/Double_hash
by giveexamples 5y ago
It's worth knowing that you don't need to generate N hashes - you can use https://en.wikipedia.org/wiki/Double_hashing https://en.wikipedia.org/wiki/Double_hashing to generate all N hashes from just 2 hashes.
- thomasmg 5y agoYes exactly. Actually you just need one 64-bit hash to generate all the hashes needed by the Bloom filter. And the somewhat slow modulo operation can be replaced with multiply+shift (fastRange). See e.g. https://github.com/FastFilter/fastfilter_cpp/blob/master/src/bloom/bloom.h#L149 https://github.com/FastFilter/fastfilter_cpp/blob/master/src... for (int i = 0; i < k; i++) { data[fastRange(a, data.length)] |= getBit(a); a += b; }