top | item 28140048

(no title)

giveexamples | 4 years 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.

discuss

order

thomasmg|4 years ago

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; }