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
yieldcache get(size_t h, size_t w) const
biclique_cache(const cell_cache<topo_spec> &c, const bundle_cache<topo_spec> &b)
~biclique_cache()
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

size_t memrows(size_t h) const
size_t memcols(size_t w) const
size_t memsize(size_t h, size_t w) const
size_t memsize() const
size_t mem_addr(size_t h, size_t w) const
void make_access_table()
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
biclique_yield_cache(const cell_cache<topo_spec> &c, const bundle_cache<topo_spec> &b, const biclique_cache<topo_spec> &bicliques)
iterator begin() const
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

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

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)
iterator operator++()
iterator operator++(int)
std::tuple<size_t, size_t, size_t, vector<vector<size_t>>> operator*()
bool operator==(const iterator &rhs)
bool operator!=(const iterator &rhs)

Private Functions

void adv()
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

yieldcache(size_t r, size_t c, size_t *m)
size_t get(size_t y, size_t x, size_t u) const
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