libbf  0.1
 All Classes Functions Typedefs Friends Pages
a2.h
1 #ifndef BF_BLOOM_FILTER_A2_H
2 #define BF_BLOOM_FILTER_A2_H
3 
4 #include <bf/bloom_filter/basic.h>
5 
6 namespace bf {
7 
8 class a2_bloom_filter : public bloom_filter
9 {
10 public:
17  static size_t k(double fp);
18 
24  static size_t capacity(double fp, size_t cells);
25 
38  a2_bloom_filter(size_t k, size_t cells, size_t capacity,
39  size_t seed1 = 0, size_t seed2 = 0);
40 
41  using bloom_filter::add;
43 
44  virtual void add(object const& o) override;
45  virtual size_t lookup(object const& o) const override;
46  virtual void clear() override;
47 
48 private:
49  basic_bloom_filter first_;
50  basic_bloom_filter second_;
51  size_t items_ = 0;
52  size_t capacity_;
53 };
54 
55 } // namespace bf
56 
57 #endif