File biclique_cache.hpp#

namespace busclique#
class yieldcache
#include <biclique_cache.hpp>

Public Functions

inline yieldcache(size_y r, size_x c, size_t *m)#
inline size_t get(size_y y, size_x x, bool u) const#
inline void set(size_y y, size_x x, bool u, size_t score)#

Public Members

const size_y rows#
const size_x cols#

Private Functions

inline size_t index(size_y y, size_x x, bool u) const#

Private Members

size_t *mem#
template<typename topo_spec>
class biclique_cache
#include <biclique_cache.hpp>

Public Functions

biclique_cache(const biclique_cache&) = delete#
biclique_cache(biclique_cache&&) = delete#
inline yieldcache get(size_y h, size_x w) const#
inline biclique_cache(const cell_cache<topo_spec> &c, const bundle_cache<topo_spec> &b)#
inline ~biclique_cache()#
inline std::pair<size_t, size_t> score(size_y y0, size_y y1, size_x x0, size_x x1) const#

Public Members

const cell_cache<topo_spec> &cells#

Private Functions

inline size_y memrows(size_y h) const#
inline size_x memcols(size_x w) const#
inline size_t memsize(size_y h, size_x w) const#
inline size_t memsize() const#
inline size_t mem_addr(size_y h, size_x w) const#
inline void make_access_table()#
inline void compute_cache(const bundle_cache<topo_spec> &bundles)#

Private Members

size_t *mem#
template<typename topo_spec>
class biclique_yield_cache
#include <biclique_cache.hpp>

Public Functions

biclique_yield_cache(const biclique_yield_cache&) = delete#
biclique_yield_cache(biclique_yield_cache&&) = delete#
inline biclique_yield_cache(const cell_cache<topo_spec> &c, const bundle_cache<topo_spec> &b, const biclique_cache<topo_spec> &bicliques)#
inline iterator begin() const#
inline iterator end() const#

Public Members

const cell_cache<topo_spec> &cells#
const bundle_cache<topo_spec> &bundles#

Private Types

using bound_t = std::tuple<size_y, size_y, size_x, size_x>#

Private Functions

inline void compute_cache(const biclique_cache<topo_spec> &bicliques)#

Private Members

const size_x rows#
const size_y cols#
vector<vector<size_t>> chainlength#
vector<vector<bound_t>> biclique_bounds#
class iterator
#include <biclique_cache.hpp>

Public Functions

inline iterator(size_t _s0, size_t _s1, const size_x &r, const size_y &c, const vector<vector<size_t>> &cl, const vector<vector<bound_t>> &_bounds, const bundle_cache<topo_spec> &_bundles)#
inline iterator operator++()#
inline iterator operator++(int)#
inline std::tuple<size_t, size_t, size_t, vector<vector<size_t>>> operator*()#
inline bool operator==(const iterator &rhs)#
inline bool operator!=(const iterator &rhs)#

Private Functions

inline void adv()#
inline bool inc()#

Private Members

size_t s0#
size_t s1#
const size_x &rows#
const size_y &cols#
const vector<vector<size_t>> &chainlength#
const vector<vector<bound_t>> &bounds#
const bundle_cache<topo_spec> &bundles#