Algorithms
Low-level graph algorithms used by the analysis engine live in src/core/GraphAlgorithms.h, src/core/PaperAlgorithmHelpers.h and their parallel counterparts.
GraphAlgorithms
Static class grouping all single-threaded graph routines required by the basic-network heuristic.
Header: src/core/GraphAlgorithms.h
Shortest paths and distances
getDistance(graph, source, target)— single-pair BFS distance.getDistancesFromSource(graph, source)— full single-source BFS.getAllPairDistances(graph, nodes)— all-pairs distances restricted to a node subset.getShortestPath(graph, source, target)— one shortest path.getAllShortestPaths(graph, source, target)— enumeration of all shortest paths.getPathInfo(graph, source, target)— distance and shortest-path set bundled in a singlePathInfo.
Basic-network specific
getNodesInGeodesicPaths(...)— internal nodes of all geodesics between two seeds.getAllNodesInSeedGeodesics(...)— internal nodes of every seed-to-seed geodesic.preservesDistances(original, subgraph, seeds)— check that a candidate subgraph preserves every seed-to-seed distance.getSeedPlusOneNodes(...)/getSeedPlusNNodes(...)— seed+n classification used in the expansion phase.
Centrality
betweennessCentrality(graph)— Brandes’ algorithm used by the corresponding UI filter.
BFS primitives
bfsDistances(graph, source)andbfsPredecessors(graph, source, target)are exposed for direct use when a custom traversal is needed.
PaperAlgorithmHelpers
Helpers implementing the specific comparison and tie-breaking rules described in Marín & Hoyas (2009). These functions drive the path evaluation stage of the heuristic.
Header: src/core/PaperAlgorithmHelpers.h
ParallelGraphAlgorithms
Parallel counterparts of the most CPU-bound routines. They are used when the input graph is large enough for thread-level parallelism to pay off (typically from a few thousand nodes upwards).