File biclique_cache.hpp

namespace busclique
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
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