From 92223ef1ebe22d7790b810b82b647a7e6d490b64 Mon Sep 17 00:00:00 2001 From: wes Date: Thu, 6 Jul 2017 13:38:44 -0400 Subject: [PATCH] pass k as a paramter to bfilter_set and bfilter_get --- bfilter.c | 47 +++++++++++++++++++++++++++++------------------ bfilter.h | 5 +++++ 2 files changed, 34 insertions(+), 18 deletions(-) diff --git a/bfilter.c b/bfilter.c index 03da912..01fc264 100644 --- a/bfilter.c +++ b/bfilter.c @@ -144,20 +144,23 @@ hash(const char *input, uint32_t k, size_t m) { return hashes; } -bit_array_t +int bfilter_set(bit_array_t *filter, - const char *key) { - hashes_t hashes = hash(key, 5, filter->num_elems); + const char *key, + int k) { + hashes_t hashes = hash(key, k, filter->num_elems); for(int i = 0; i < 5; i++) { setbit(filter, hashes[i]); } + return 0; } int bfilter_get(bit_array_t *filter, - const char*key) { - hashes_t hashes = hash(key, 5, filter->num_elems); + const char*key, + int k) { + hashes_t hashes = hash(key, k, filter->num_elems); int exists = 1; @@ -171,7 +174,9 @@ bfilter_get(bit_array_t *filter, int main (void) { - bit_array_t *test = empty_bfilter(35); + bit_array_t *test = empty_bfilter(4000); + int k = 20; + const char *test_string = "what tf is this I can't even, lololol"; const char *test_string2 = "tf is this I can't even, lololol"; const char *test_string3 = "tf is blah blablablah can't even, lololol"; @@ -185,18 +190,24 @@ main (void) { const char *test_string11 = "this isn't actually in the bloom filter"; - bfilter_set(test, test_string); - bfilter_set(test, test_string2); - bfilter_set(test, test_string3); - bfilter_set(test, test_string4); - bfilter_set(test, test_string5); - bfilter_set(test, test_string6); - bfilter_set(test, test_string7); - bfilter_set(test, test_string8); - bfilter_set(test, test_string9); - bfilter_set(test, test_string10); - - printf("%d\n", bfilter_get(test, test_string11)); + bfilter_set(test, test_string, k); + bfilter_set(test, test_string2, k); + bfilter_set(test, test_string3, k); + bfilter_set(test, test_string4, k); + bfilter_set(test, test_string5, k); + bfilter_set(test, test_string6, k); + bfilter_set(test, test_string7, k); + bfilter_set(test, test_string8, k); + bfilter_set(test, test_string9, k); + bfilter_set(test, test_string11, k); + + printf("%d\n", bfilter_get(test, test_string7, k)); + printf("%d\n", bfilter_get(test, test_string10, k)); + printf("%d\n", bfilter_get(test, test_string10, k)); + printf("%d\n", bfilter_get(test, test_string10, k)); + printf("%d\n", bfilter_get(test, test_string10, k)); + printf("%d\n", bfilter_get(test, test_string10, k)); + printf("%d\n", bfilter_get(test, test_string10, k)); print_barray(test); diff --git a/bfilter.h b/bfilter.h index 4a4478d..a353d95 100644 --- a/bfilter.h +++ b/bfilter.h @@ -29,3 +29,8 @@ hashes_t hash(const char *, uint32_t, size_t); int setbit(bit_array_t*, int); int unsetbit(bit_array_t*, int); + +int bfilter_set(bit_array_t *, const char*, int); +int bfilter_get(bit_array_t *, const char*, int); + +int getbit(bit_array_t *, int);