From c6f056caf25b4cf46bddff1d511d70828b9080de Mon Sep 17 00:00:00 2001 From: Matthias Vallentin Date: Fri, 2 Aug 2013 12:10:08 +0200 Subject: [PATCH] Add debugging code to find FP inconsistency. --- src/probabilistic/BloomFilter.cc | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/probabilistic/BloomFilter.cc b/src/probabilistic/BloomFilter.cc index bcab6c9b54..6e3ff763d2 100644 --- a/src/probabilistic/BloomFilter.cc +++ b/src/probabilistic/BloomFilter.cc @@ -11,6 +11,9 @@ #include "../util.h" +// TODO: remove code within these ifdefs after debugging. +#define BLOOMFILTER_DEBUG + using namespace probabilistic; BloomFilter::BloomFilter() @@ -144,9 +147,18 @@ void BasicBloomFilter::Add(const HashKey* key) { Hasher::digest_vector h = hasher->Hash(key); +#ifdef BLOOMFILTER_DEBUG for ( size_t i = 0; i < h.size(); ++i ) - bits->Set(h[i] % bits->Size()); - } + { + BitVector::size_type pos = h[i] % bits->Size(); + fprintf(stderr, "setting bit %lu (was %u)\n", pos, !!(*bits)[pos]); + bits->Set(pos); + } +#else + for ( size_t i = 0; i < h.size(); ++i ) + bits->Set(h[i] % bits->Size()); +#endif + } size_t BasicBloomFilter::Count(const HashKey* key) const {