|
@@ -214,7 +214,8 @@ class File_seek_backend(object):
|
|
|
char = python2x3.intlist_to_binary([byte])
|
|
|
os.write(char)
|
|
|
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
def __iand__(self, other):
|
|
|
assert self.num_bits == other.num_bits
|
|
|
|
|
@@ -345,7 +346,8 @@ class Array_then_file_seek_backend(object):
|
|
|
else:
|
|
|
os.write(byte)
|
|
|
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
def __iand__(self, other):
|
|
|
assert self.num_bits == other.num_bits
|
|
|
|
|
@@ -522,7 +524,6 @@ class BloomFilter(object):
|
|
|
|
|
|
numerator = -1 * self.ideal_num_elements_n * math.log(self.error_rate_p)
|
|
|
denominator = math.log(2) ** 2
|
|
|
-
|
|
|
real_num_bits_m = numerator / denominator
|
|
|
self.num_bits_m = int(math.ceil(real_num_bits_m))
|
|
|
|
|
@@ -540,22 +541,10 @@ class BloomFilter(object):
|
|
|
try_unlink(filename)
|
|
|
self.backend = File_seek_backend(self.num_bits_m, filename)
|
|
|
|
|
|
-
|
|
|
-
|
|
|
|
|
|
|
|
|
real_num_probes_k = (self.num_bits_m / self.ideal_num_elements_n) * math.log(2)
|
|
|
self.num_probes_k = int(math.ceil(real_num_probes_k))
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
self.probe_bitnoer = probe_bitnoer
|
|
|
|
|
|
def __repr__(self):
|
|
@@ -598,12 +587,6 @@ class BloomFilter(object):
|
|
|
|
|
|
def __contains__(self, key):
|
|
|
for bitno in self.probe_bitnoer(self, key):
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
if not self.backend.is_set(bitno):
|
|
|
return False
|
|
|
return True
|
|
|
-
|
|
|
-
|
|
|
-
|