File topo_cache.hpp

namespace busclique
template<typename topo_spec>
class topo_cache
#include <topo_cache.hpp>

Public Functions

topo_cache(const topo_cache&) = delete
topo_cache(topo_cache&&) = delete
inline ~topo_cache()
inline topo_cache(const topo_spec t, const vector<size_t> &nodes, const vector<pair<size_t, size_t>> &edges)
inline void reset()
template<typename serialize_tag>
inline size_t serialize(serialize_tag, uint8_t *output) const
inline vector<size_t> fragment_nodes(const uint8_t *nmask = nullptr) const
inline vector<pair<size_t, size_t>> fragment_edges(const uint8_t *nmask = nullptr, const uint8_t *emask = nullptr) const
inline void set_mask_bound(uint64_t bound)
inline bool next()

Public Members

const topo_spec topo
const cell_cache<topo_spec> cells

Private Functions

inline _initializer_tag _initialize(const vector<size_t> &nodes, const vector<pair<size_t, size_t>> &edges)
inline void compute_bad_edges()

Private Members

fat_pointer<uint8_t> nodemask
fat_pointer<uint8_t> edgemask
fat_pointer<uint8_t> badmask
vector<pair<size_t, size_t>> bad_edges
uint64_t mask_num
uint64_t mask_bound
double log_mask_bound
fastrng rng
_initializer_tag _init
uint8_t *child_nodemask
uint8_t *child_edgemask
class _initializer_tag