|
IterOrbit
Subgraph isomorphism with iterative graphlet-orbit filtering
|
A vertex-labelled, undirected graph: the pattern, the data graph, or an induced subgraph of the data graph. More...
#include <AppGraph.h>
Public Attributes | |
| int | max_label = -1 |
| Largest label, -1 if the graph is empty. | |
| std::vector< size_t > | nlf_offsets |
| Vertex v has nlf_count[i] neighbours of label nlf_label[i], for i in [nlf_offsets[v], nlf_offsets[v + 1]), labels increasing; labels it has no neighbour of are absent. | |
| std::vector< int > | nlf_label |
| std::vector< int > | nlf_count |
A vertex-labelled, undirected graph: the pattern, the data graph, or an induced subgraph of the data graph.
Vertices keep the IDs of the input file ("node IDs"). Internally they are numbered 0..n-1 in ascending ID order ("internal index"), which is the numbering of c_graph and of every per-vertex array produced from it (e.g. OrbitCounts). A subgraph keeps the node IDs of the graph it was taken from, so candidate sets, which hold node IDs, stay valid across subgraphs. Per-label lookups on a data graph, built once at load (AppGraph::buildLabelIndex), as the SOTA tools' graph loader builds its neighbour-label frequencies.
| int LabelIndex::max_label = -1 |
Largest label, -1 if the graph is empty.
| std::vector<int> LabelIndex::nlf_count |
| std::vector<int> LabelIndex::nlf_label |
| std::vector<size_t> LabelIndex::nlf_offsets |
Vertex v has nlf_count[i] neighbours of label nlf_label[i], for i in [nlf_offsets[v], nlf_offsets[v + 1]), labels increasing; labels it has no neighbour of are absent.