|
IterOrbit
Subgraph isomorphism with iterative graphlet-orbit filtering
|
Graphlet orbit counting on top of the Escape/EVOKE library (extern/Escape). More...
#include "OrbitCounter.h"#include <algorithm>#include <chrono>#include <cmath>#include <utility>#include <stdexcept>#include <iostream>#include "Escape/OrbitStructure.h"#include "Escape/GetAllOrbitCounts.h"#include "Escape/FiveVertexOrbit.h"#include "Escape/FourVertexOrbit.h"Classes | |
| struct | anonymous_namespace{OrbitCounter.cpp}::EdgeTriangles |
Namespaces | |
| namespace | anonymous_namespace{OrbitCounter.cpp} |
Typedefs | |
| using | anonymous_namespace{OrbitCounter.cpp}::Clock = std::chrono::high_resolution_clock |
Functions | |
| double | anonymous_namespace{OrbitCounter.cpp}::msSince (Clock::time_point start) |
| void | anonymous_namespace{OrbitCounter.cpp}::fourCliqueOrbitsByMarking (const CGraph *gout, double *clique_counts, const std::vector< double > *cap) |
| void | anonymous_namespace{OrbitCounter.cpp}::fiveCliqueOrbitsByMarking (const CGraph *gout, double *clique_counts, const std::vector< double > *cap) |
| void | anonymous_namespace{OrbitCounter.cpp}::threeVertexOrbitsByMarking (const CGraph *cg, const CGraph *gout, OrbitInfo &oc, bool count_triangles) |
| void | anonymous_namespace{OrbitCounter.cpp}::pawDiamondOrbits (const CGraph *gout, OrbitInfo &oc) |
| void | anonymous_namespace{OrbitCounter.cpp}::fourCycleOrbits (const CGraph *gout, const CGraph *gin, double *cycle_counts) |
| template<typename F > | |
| void | anonymous_namespace{OrbitCounter.cpp}::forEachFourClique (const CGraph *gout, F &&f) |
| void | anonymous_namespace{OrbitCounter.cpp}::fourCliqueOrbitsWithEdges (const CGraph *gout, OrbitInfo &oc) |
| void | anonymous_namespace{OrbitCounter.cpp}::pattern66Orbits (const CGraph *gout, OrbitInfo &oc) |
| void | anonymous_namespace{OrbitCounter.cpp}::intersectSortedInto (const VertexIdx *a, EdgeIdx na, const VertexIdx *b, EdgeIdx nb, std::vector< VertexIdx > &out) |
| EdgeTriangles | anonymous_namespace{OrbitCounter.cpp}::buildEdgeTriangles (const CGraph *cg, const CGraph *gout, const CGraph *gin) |
| std::vector< EdgeIdx > | anonymous_namespace{OrbitCounter.cpp}::ginToGoutPositions (const CGraph *gout, const CGraph *gin) |
| void | anonymous_namespace{OrbitCounter.cpp}::fourCycleOrbitsWithEdges (const CGraph *gout, const CGraph *gin, OrbitInfo &oc) |
| void | anonymous_namespace{OrbitCounter.cpp}::fiveCycleOrbits (const CGraph *cg, const CGraph *gout, const CGraph *gin, double *c34) |
| void | anonymous_namespace{OrbitCounter.cpp}::chordalWedgeOrbits (const CGraph *cg, const EdgeTriangles &et, OrbitInfo &oc, bool do62, bool do6364, bool do6869) |
| void | anonymous_namespace{OrbitCounter.cpp}::almostFiveCliqueOrbits (const CGraph *cg, const EdgeTriangles &et, OrbitInfo &oc) |
Graphlet orbit counting on top of the Escape/EVOKE library (extern/Escape).
The routines in the anonymous namespace are reimplementations of Escape routines that return the same counts with less work, mostly by replacing binary searches for edges with marking; each one's comment names the Escape routine it replaces and what differs. test/orbit_equivalence.cpp checks them against the originals. See OrbitCounter.h.