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_t h, size_t 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_t y0, size_t y1, size_t x0, size_t x1) const

Public Members

const cell_cache<topo_spec> &cells

Private Functions

inline size_t memrows(size_t h) const
inline size_t memcols(size_t w) const
inline size_t memsize(size_t h, size_t w) const
inline size_t memsize() const
inline size_t mem_addr(size_t h, size_t 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_t, size_t, size_t, size_t>

Private Functions

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

Private Members

const size_t rows
const size_t 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_t &r, const size_t &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_t &rows
const size_t &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_t r, size_t c, size_t *m)
inline size_t get(size_t y, size_t x, size_t u) const
inline void set(size_t y, size_t x, size_t u, size_t score)

Public Members

const size_t rows
const size_t cols

Private Members

size_t *mem