From 71781a0e525ad02deb0d95a08a354b76a7d26e4c Mon Sep 17 00:00:00 2001 From: Thomas Mueller Date: Sun, 19 Jan 2020 21:10:29 +0100 Subject: [PATCH] Bloom filters untested for large (500M) inputs #22 --- .../src/main/java/org/fastfilter/bloom/Bloom.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fastfilter/src/main/java/org/fastfilter/bloom/Bloom.java b/fastfilter/src/main/java/org/fastfilter/bloom/Bloom.java index e76d8e7..10fe29f 100644 --- a/fastfilter/src/main/java/org/fastfilter/bloom/Bloom.java +++ b/fastfilter/src/main/java/org/fastfilter/bloom/Bloom.java @@ -50,10 +50,10 @@ public boolean supportsAdd() { @Override public void add(long key) { long hash = Hash.hash64(key, seed); - int a = (int) (hash >>> 32); - int b = (int) hash; + long a = (hash >>> 32) | (hash << 32); + long b = hash; for (int i = 0; i < k; i++) { - data[Hash.reduce(a, arraySize)] |= 1L << a; + data[Hash.reduce((int) (a >>> 32), arraySize)] |= 1L << a; a += b; } } @@ -61,10 +61,10 @@ public void add(long key) { @Override public boolean mayContain(long key) { long hash = Hash.hash64(key, seed); - int a = (int) (hash >>> 32); - int b = (int) hash; + long a = (hash >>> 32) | (hash << 32); + long b = hash; for (int i = 0; i < k; i++) { - if ((data[Hash.reduce(a, arraySize)] & 1L << a) == 0) { + if ((data[Hash.reduce((int) (a >>> 32), arraySize)] & 1L << a) == 0) { return false; } a += b;