16#ifndef SOCNETV_DISTANCE_ENGINE_H
17#define SOCNETV_DISTANCE_ENGINE_H
30 void compute(
const bool computeCentralities,
31 const bool considerWeights,
32 const bool inverseWeights,
33 const bool dropIsolates,
34 const bool allowNegativeWeights =
false);
60 void initRun(
const bool computeCentralities,
61 const bool considerWeights,
62 const bool inverseWeights,
63 const bool dropIsolates,
64 const bool allowNegativeWeights,
87 const bool considerWeights,
88 const bool inverseWeights,
89 const bool dropIsolates,
106 void finalize(
const bool computeCentralities,
107 const bool dropIsolates,
117 void bfsSSSP(
const int &s,
const int &si,
118 const bool &computeCentralities,
119 const bool &dropIsolates,
130 const bool &computeCentralities,
131 const bool &inverseWeights,
132 const bool &dropIsolates,
134 const QVector<qreal> &potentials = QVector<qreal>());
bool bellmanFordPotentials(const bool inverseWeights, QVector< qreal > &outPotentials)
Public entry point for the potentials pass below, for callers with no DistanceScratch of their own (c...
Definition distance_engine.cpp:536
Graph & graph
Definition distance_engine.h:40
void compute(const bool computeCentralities, const bool considerWeights, const bool inverseWeights, const bool dropIsolates, const bool allowNegativeWeights=false)
Runs the full geodesic distance (and optionally centrality) computation pipeline.
Definition distance_engine.cpp:170
void finalize(const bool computeCentralities, const bool dropIsolates, struct DistanceScratch &ds, struct CentralityScratchFinalize &csfin, IDistanceProgressSink &sink)
Single-threaded aggregation pass run after runAllSources() completes: scans for vertex pairs left unr...
Definition distance_engine.cpp:977
void dijkstraSSSP(const int &s, const int &si, const bool &computeCentralities, const bool &inverseWeights, const bool &dropIsolates, PerSourceScratch &pss, const QVector< qreal > &potentials=QVector< qreal >())
Definition distance_engine.cpp:1528
DistanceEngine(Graph &g)
Definition distance_engine.cpp:140
void initRun(const bool computeCentralities, const bool considerWeights, const bool inverseWeights, const bool dropIsolates, const bool allowNegativeWeights, struct DistanceScratch &ds, struct CentralityScratchSSSP &csssp, struct CentralityScratchFinalize &csfin, IDistanceProgressSink &sink)
Phase 0 of compute(): resets every scratch/aggregate field this run will populate,...
Definition distance_engine.cpp:295
void bfsSSSP(const int &s, const int &si, const bool &computeCentralities, const bool &dropIsolates, PerSourceScratch &pss)
Definition distance_engine.cpp:1352
void runAllSources(const bool computeCentralities, const bool considerWeights, const bool inverseWeights, const bool dropIsolates, struct DistanceScratch &ds, IDistanceProgressSink &sink)
Runs SSSP (BFS or Dijkstra, per considerWeights) from every enabled vertex, in parallel across CPU co...
Definition distance_engine.cpp:663
The Graph class This is the main class for a Graph, used in conjuction with GraphVertex,...
Definition graph.h:105
Definition distance_progress_sink.h:21
Declares the GraphDistanceProgressSink class, which forwards DistanceEngine's status messages and can...
Per-source scratch state for the Brandes SSSP / centrality computation.
Scratch for the finalize() phase — the single-threaded pass that runs once after runAllSources() comp...
Definition distance_engine.cpp:130
Per-run scratch for centrality values computed once per SSSP source, before the parallel per-source l...
Definition distance_engine.cpp:104
Per-run scratch state for DistanceEngine::compute(), scoped to one compute() call.
Definition distance_engine.cpp:60
Definition per_source_scratch.h:25