Program Listing for File BloomFilter.hpp

Return to documentation for file (include/networkit/auxiliary/BloomFilter.hpp)

/*
 * BloomFilter.hpp
 *
 *  Created on: 08.08.2015
 *      Author: Henning
 */

#ifndef NETWORKIT_AUXILIARY_BLOOM_FILTER_HPP_
#define NETWORKIT_AUXILIARY_BLOOM_FILTER_HPP_

#include <vector>

#include <networkit/Globals.hpp>
#include <networkit/auxiliary/Log.hpp>

namespace Aux {

using index = NetworKit::index;
using count = NetworKit::count;

class BloomFilter {
private:
    count numHashes;
    count size;
    std::vector<std::vector<char>> membership;
    std::vector<index> salts;

    index hash(index key, index hfunc) const;

public:
    BloomFilter(count numHashes, count size = 6291469);

    virtual ~BloomFilter() = default;

    void insert(index key);

    bool isMember(index key) const;
};

} // namespace Aux

#endif // NETWORKIT_AUXILIARY_BLOOM_FILTER_HPP_