Hacker News new | ask | show | jobs
by giveexamples 1776 days ago
It's worth knowing that you don't need to generate N hashes - you can use https://en.wikipedia.org/wiki/Double_hashing to generate all N hashes from just 2 hashes.
1 comments

Yes 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...

for (int i = 0; i < k; i++) { data[fastRange(a, data.length)] |= getBit(a); a += b; }