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#