@ladybugmem/icebug 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (624) hide show
  1. package/README.md +14 -0
  2. package/binding.gyp +54 -0
  3. package/build/Release/.deps/Release/icebug.node.d +1 -0
  4. package/build/Release/.deps/Release/obj.target/icebug/src/addon.o.d +291 -0
  5. package/build/Release/icebug.node +0 -0
  6. package/build/Release/obj.target/icebug/src/addon.o +0 -0
  7. package/lib/index.d.ts +361 -0
  8. package/lib/index.js +102 -0
  9. package/package.json +42 -0
  10. package/src/addon.cpp +1253 -0
  11. package/vendor/include/networkit/GlobalState.hpp +86 -0
  12. package/vendor/include/networkit/Globals.hpp +41 -0
  13. package/vendor/include/networkit/algebraic/AlgebraicGlobals.hpp +27 -0
  14. package/vendor/include/networkit/algebraic/CSRGeneralMatrix.hpp +1292 -0
  15. package/vendor/include/networkit/algebraic/CSRMatrix.hpp +11 -0
  16. package/vendor/include/networkit/algebraic/DenseMatrix.hpp +537 -0
  17. package/vendor/include/networkit/algebraic/DynamicMatrix.hpp +514 -0
  18. package/vendor/include/networkit/algebraic/GraphBLAS.hpp +323 -0
  19. package/vendor/include/networkit/algebraic/MatrixTools.hpp +156 -0
  20. package/vendor/include/networkit/algebraic/Semirings.hpp +171 -0
  21. package/vendor/include/networkit/algebraic/SparseAccumulator.hpp +111 -0
  22. package/vendor/include/networkit/algebraic/Vector.hpp +371 -0
  23. package/vendor/include/networkit/algebraic/algorithms/AlgebraicBFS.hpp +72 -0
  24. package/vendor/include/networkit/algebraic/algorithms/AlgebraicBellmanFord.hpp +88 -0
  25. package/vendor/include/networkit/algebraic/algorithms/AlgebraicMatchingCoarsening.hpp +96 -0
  26. package/vendor/include/networkit/algebraic/algorithms/AlgebraicPageRank.hpp +145 -0
  27. package/vendor/include/networkit/algebraic/algorithms/AlgebraicSpanningEdgeCentrality.hpp +122 -0
  28. package/vendor/include/networkit/algebraic/algorithms/AlgebraicTriangleCounting.hpp +76 -0
  29. package/vendor/include/networkit/auxiliary/AlignedAllocator.hpp +113 -0
  30. package/vendor/include/networkit/auxiliary/ArrayTools.hpp +85 -0
  31. package/vendor/include/networkit/auxiliary/BloomFilter.hpp +70 -0
  32. package/vendor/include/networkit/auxiliary/BucketPQ.hpp +142 -0
  33. package/vendor/include/networkit/auxiliary/Enforce.hpp +117 -0
  34. package/vendor/include/networkit/auxiliary/FunctionTraits.hpp +74 -0
  35. package/vendor/include/networkit/auxiliary/HashUtils.hpp +28 -0
  36. package/vendor/include/networkit/auxiliary/IncrementalUniformRandomSelector.hpp +52 -0
  37. package/vendor/include/networkit/auxiliary/Log.hpp +119 -0
  38. package/vendor/include/networkit/auxiliary/MissingMath.hpp +48 -0
  39. package/vendor/include/networkit/auxiliary/Multiprecision.hpp +17 -0
  40. package/vendor/include/networkit/auxiliary/NumberParsing.hpp +307 -0
  41. package/vendor/include/networkit/auxiliary/NumericTools.hpp +57 -0
  42. package/vendor/include/networkit/auxiliary/Parallel.hpp +56 -0
  43. package/vendor/include/networkit/auxiliary/Parallelism.hpp +33 -0
  44. package/vendor/include/networkit/auxiliary/PrioQueue.hpp +252 -0
  45. package/vendor/include/networkit/auxiliary/Random.hpp +122 -0
  46. package/vendor/include/networkit/auxiliary/SetIntersector.hpp +72 -0
  47. package/vendor/include/networkit/auxiliary/SignalHandling.hpp +39 -0
  48. package/vendor/include/networkit/auxiliary/SortedList.hpp +128 -0
  49. package/vendor/include/networkit/auxiliary/SparseVector.hpp +215 -0
  50. package/vendor/include/networkit/auxiliary/SpinLock.hpp +23 -0
  51. package/vendor/include/networkit/auxiliary/StringBuilder.hpp +322 -0
  52. package/vendor/include/networkit/auxiliary/StringTools.hpp +76 -0
  53. package/vendor/include/networkit/auxiliary/TemplateUtils.hpp +76 -0
  54. package/vendor/include/networkit/auxiliary/Timer.hpp +145 -0
  55. package/vendor/include/networkit/auxiliary/VectorComparator.hpp +32 -0
  56. package/vendor/include/networkit/base/Algorithm.hpp +41 -0
  57. package/vendor/include/networkit/base/DynAlgorithm.hpp +31 -0
  58. package/vendor/include/networkit/centrality/ApproxBetweenness.hpp +62 -0
  59. package/vendor/include/networkit/centrality/ApproxCloseness.hpp +136 -0
  60. package/vendor/include/networkit/centrality/ApproxElectricalCloseness.hpp +156 -0
  61. package/vendor/include/networkit/centrality/ApproxGroupBetweenness.hpp +124 -0
  62. package/vendor/include/networkit/centrality/ApproxSpanningEdge.hpp +84 -0
  63. package/vendor/include/networkit/centrality/Betweenness.hpp +47 -0
  64. package/vendor/include/networkit/centrality/Centrality.hpp +98 -0
  65. package/vendor/include/networkit/centrality/Closeness.hpp +107 -0
  66. package/vendor/include/networkit/centrality/ComplexPaths.hpp +113 -0
  67. package/vendor/include/networkit/centrality/CoreDecomposition.hpp +161 -0
  68. package/vendor/include/networkit/centrality/DegreeCentrality.hpp +55 -0
  69. package/vendor/include/networkit/centrality/DynApproxBetweenness.hpp +95 -0
  70. package/vendor/include/networkit/centrality/DynBetweenness.hpp +99 -0
  71. package/vendor/include/networkit/centrality/DynBetweennessOneNode.hpp +98 -0
  72. package/vendor/include/networkit/centrality/DynKatzCentrality.hpp +115 -0
  73. package/vendor/include/networkit/centrality/DynTopHarmonicCloseness.hpp +223 -0
  74. package/vendor/include/networkit/centrality/EigenvectorCentrality.hpp +41 -0
  75. package/vendor/include/networkit/centrality/EstimateBetweenness.hpp +51 -0
  76. package/vendor/include/networkit/centrality/ForestCentrality.hpp +112 -0
  77. package/vendor/include/networkit/centrality/GedWalk.hpp +225 -0
  78. package/vendor/include/networkit/centrality/GroupCloseness.hpp +115 -0
  79. package/vendor/include/networkit/centrality/GroupClosenessGrowShrink.hpp +78 -0
  80. package/vendor/include/networkit/centrality/GroupClosenessLocalSearch.hpp +77 -0
  81. package/vendor/include/networkit/centrality/GroupClosenessLocalSwaps.hpp +106 -0
  82. package/vendor/include/networkit/centrality/GroupDegree.hpp +155 -0
  83. package/vendor/include/networkit/centrality/GroupHarmonicCloseness.hpp +83 -0
  84. package/vendor/include/networkit/centrality/HarmonicCloseness.hpp +48 -0
  85. package/vendor/include/networkit/centrality/KPathCentrality.hpp +52 -0
  86. package/vendor/include/networkit/centrality/KadabraBetweenness.hpp +242 -0
  87. package/vendor/include/networkit/centrality/KatzCentrality.hpp +62 -0
  88. package/vendor/include/networkit/centrality/LaplacianCentrality.hpp +44 -0
  89. package/vendor/include/networkit/centrality/LocalClusteringCoefficient.hpp +60 -0
  90. package/vendor/include/networkit/centrality/LocalPartitionCoverage.hpp +43 -0
  91. package/vendor/include/networkit/centrality/LocalSquareClusteringCoefficient.hpp +42 -0
  92. package/vendor/include/networkit/centrality/PageRank.hpp +101 -0
  93. package/vendor/include/networkit/centrality/PermanenceCentrality.hpp +48 -0
  94. package/vendor/include/networkit/centrality/Sfigality.hpp +45 -0
  95. package/vendor/include/networkit/centrality/SpanningEdgeCentrality.hpp +86 -0
  96. package/vendor/include/networkit/centrality/TopCloseness.hpp +136 -0
  97. package/vendor/include/networkit/centrality/TopHarmonicCloseness.hpp +151 -0
  98. package/vendor/include/networkit/clique/MaximalCliques.hpp +83 -0
  99. package/vendor/include/networkit/coarsening/ClusteringProjector.hpp +59 -0
  100. package/vendor/include/networkit/coarsening/CoarsenedGraphView.hpp +156 -0
  101. package/vendor/include/networkit/coarsening/GraphCoarsening.hpp +57 -0
  102. package/vendor/include/networkit/coarsening/MatchingCoarsening.hpp +43 -0
  103. package/vendor/include/networkit/coarsening/ParallelPartitionCoarsening.hpp +33 -0
  104. package/vendor/include/networkit/coarsening/ParallelPartitionCoarseningView.hpp +62 -0
  105. package/vendor/include/networkit/community/AdjustedRandMeasure.hpp +31 -0
  106. package/vendor/include/networkit/community/ClusteringGenerator.hpp +75 -0
  107. package/vendor/include/networkit/community/CommunityDetectionAlgorithm.hpp +58 -0
  108. package/vendor/include/networkit/community/Conductance.hpp +32 -0
  109. package/vendor/include/networkit/community/CoverF1Similarity.hpp +53 -0
  110. package/vendor/include/networkit/community/CoverHubDominance.hpp +38 -0
  111. package/vendor/include/networkit/community/Coverage.hpp +25 -0
  112. package/vendor/include/networkit/community/CutClustering.hpp +62 -0
  113. package/vendor/include/networkit/community/DissimilarityMeasure.hpp +31 -0
  114. package/vendor/include/networkit/community/DynamicNMIDistance.hpp +44 -0
  115. package/vendor/include/networkit/community/EdgeCut.hpp +24 -0
  116. package/vendor/include/networkit/community/GraphClusteringTools.hpp +103 -0
  117. package/vendor/include/networkit/community/GraphStructuralRandMeasure.hpp +28 -0
  118. package/vendor/include/networkit/community/HubDominance.hpp +46 -0
  119. package/vendor/include/networkit/community/IntrapartitionDensity.hpp +44 -0
  120. package/vendor/include/networkit/community/IsolatedInterpartitionConductance.hpp +40 -0
  121. package/vendor/include/networkit/community/IsolatedInterpartitionExpansion.hpp +40 -0
  122. package/vendor/include/networkit/community/JaccardMeasure.hpp +25 -0
  123. package/vendor/include/networkit/community/LFM.hpp +49 -0
  124. package/vendor/include/networkit/community/LPDegreeOrdered.hpp +48 -0
  125. package/vendor/include/networkit/community/LocalCommunityEvaluation.hpp +100 -0
  126. package/vendor/include/networkit/community/LocalCoverEvaluation.hpp +31 -0
  127. package/vendor/include/networkit/community/LocalPartitionEvaluation.hpp +31 -0
  128. package/vendor/include/networkit/community/LouvainMapEquation.hpp +135 -0
  129. package/vendor/include/networkit/community/Modularity.hpp +54 -0
  130. package/vendor/include/networkit/community/NMIDistance.hpp +28 -0
  131. package/vendor/include/networkit/community/NodeStructuralRandMeasure.hpp +27 -0
  132. package/vendor/include/networkit/community/OverlappingCommunityDetectionAlgorithm.hpp +51 -0
  133. package/vendor/include/networkit/community/OverlappingNMIDistance.hpp +175 -0
  134. package/vendor/include/networkit/community/PLM.hpp +89 -0
  135. package/vendor/include/networkit/community/PLP.hpp +83 -0
  136. package/vendor/include/networkit/community/ParallelAgglomerativeClusterer.hpp +37 -0
  137. package/vendor/include/networkit/community/ParallelLeiden.hpp +96 -0
  138. package/vendor/include/networkit/community/ParallelLeidenView.hpp +138 -0
  139. package/vendor/include/networkit/community/PartitionFragmentation.hpp +30 -0
  140. package/vendor/include/networkit/community/PartitionHubDominance.hpp +37 -0
  141. package/vendor/include/networkit/community/PartitionIntersection.hpp +25 -0
  142. package/vendor/include/networkit/community/QualityMeasure.hpp +27 -0
  143. package/vendor/include/networkit/community/SampledGraphStructuralRandMeasure.hpp +40 -0
  144. package/vendor/include/networkit/community/SampledNodeStructuralRandMeasure.hpp +40 -0
  145. package/vendor/include/networkit/community/StablePartitionNodes.hpp +48 -0
  146. package/vendor/include/networkit/components/BiconnectedComponents.hpp +116 -0
  147. package/vendor/include/networkit/components/ComponentDecomposition.hpp +72 -0
  148. package/vendor/include/networkit/components/ConnectedComponents.hpp +55 -0
  149. package/vendor/include/networkit/components/DynConnectedComponents.hpp +71 -0
  150. package/vendor/include/networkit/components/DynWeaklyConnectedComponents.hpp +73 -0
  151. package/vendor/include/networkit/components/ParallelConnectedComponents.hpp +44 -0
  152. package/vendor/include/networkit/components/RandomSpanningForest.hpp +36 -0
  153. package/vendor/include/networkit/components/StronglyConnectedComponents.hpp +50 -0
  154. package/vendor/include/networkit/components/WeaklyConnectedComponents.hpp +59 -0
  155. package/vendor/include/networkit/correlation/Assortativity.hpp +64 -0
  156. package/vendor/include/networkit/distance/APSP.hpp +70 -0
  157. package/vendor/include/networkit/distance/AStar.hpp +68 -0
  158. package/vendor/include/networkit/distance/AStarGeneral.hpp +110 -0
  159. package/vendor/include/networkit/distance/AdamicAdarDistance.hpp +52 -0
  160. package/vendor/include/networkit/distance/AffectedNodes.hpp +130 -0
  161. package/vendor/include/networkit/distance/AlgebraicDistance.hpp +63 -0
  162. package/vendor/include/networkit/distance/BFS.hpp +43 -0
  163. package/vendor/include/networkit/distance/BidirectionalBFS.hpp +51 -0
  164. package/vendor/include/networkit/distance/BidirectionalDijkstra.hpp +69 -0
  165. package/vendor/include/networkit/distance/CommuteTimeDistance.hpp +89 -0
  166. package/vendor/include/networkit/distance/Diameter.hpp +97 -0
  167. package/vendor/include/networkit/distance/Dijkstra.hpp +50 -0
  168. package/vendor/include/networkit/distance/DynAPSP.hpp +67 -0
  169. package/vendor/include/networkit/distance/DynBFS.hpp +56 -0
  170. package/vendor/include/networkit/distance/DynDijkstra.hpp +57 -0
  171. package/vendor/include/networkit/distance/DynPrunedLandmarkLabeling.hpp +67 -0
  172. package/vendor/include/networkit/distance/DynSSSP.hpp +87 -0
  173. package/vendor/include/networkit/distance/Eccentricity.hpp +32 -0
  174. package/vendor/include/networkit/distance/EffectiveDiameter.hpp +47 -0
  175. package/vendor/include/networkit/distance/EffectiveDiameterApproximation.hpp +57 -0
  176. package/vendor/include/networkit/distance/FloydWarshall.hpp +93 -0
  177. package/vendor/include/networkit/distance/GraphDistance.hpp +49 -0
  178. package/vendor/include/networkit/distance/HopPlotApproximation.hpp +62 -0
  179. package/vendor/include/networkit/distance/IncompleteDijkstra.hpp +66 -0
  180. package/vendor/include/networkit/distance/IncompleteSSSP.hpp +41 -0
  181. package/vendor/include/networkit/distance/JaccardDistance.hpp +57 -0
  182. package/vendor/include/networkit/distance/MultiTargetBFS.hpp +32 -0
  183. package/vendor/include/networkit/distance/MultiTargetDijkstra.hpp +40 -0
  184. package/vendor/include/networkit/distance/NeighborhoodFunction.hpp +47 -0
  185. package/vendor/include/networkit/distance/NeighborhoodFunctionApproximation.hpp +56 -0
  186. package/vendor/include/networkit/distance/NeighborhoodFunctionHeuristic.hpp +56 -0
  187. package/vendor/include/networkit/distance/NodeDistance.hpp +54 -0
  188. package/vendor/include/networkit/distance/PrunedLandmarkLabeling.hpp +76 -0
  189. package/vendor/include/networkit/distance/ReverseBFS.hpp +46 -0
  190. package/vendor/include/networkit/distance/SPSP.hpp +143 -0
  191. package/vendor/include/networkit/distance/SSSP.hpp +216 -0
  192. package/vendor/include/networkit/distance/STSP.hpp +193 -0
  193. package/vendor/include/networkit/distance/Volume.hpp +66 -0
  194. package/vendor/include/networkit/dynamics/DGSStreamParser.hpp +40 -0
  195. package/vendor/include/networkit/dynamics/DGSWriter.hpp +30 -0
  196. package/vendor/include/networkit/dynamics/GraphDifference.hpp +110 -0
  197. package/vendor/include/networkit/dynamics/GraphEvent.hpp +55 -0
  198. package/vendor/include/networkit/dynamics/GraphEventHandler.hpp +39 -0
  199. package/vendor/include/networkit/dynamics/GraphEventProxy.hpp +55 -0
  200. package/vendor/include/networkit/dynamics/GraphUpdater.hpp +38 -0
  201. package/vendor/include/networkit/edgescores/ChibaNishizekiQuadrangleEdgeScore.hpp +26 -0
  202. package/vendor/include/networkit/edgescores/ChibaNishizekiTriangleEdgeScore.hpp +33 -0
  203. package/vendor/include/networkit/edgescores/EdgeScore.hpp +50 -0
  204. package/vendor/include/networkit/edgescores/EdgeScoreAsWeight.hpp +33 -0
  205. package/vendor/include/networkit/edgescores/EdgeScoreBlender.hpp +33 -0
  206. package/vendor/include/networkit/edgescores/EdgeScoreLinearizer.hpp +32 -0
  207. package/vendor/include/networkit/edgescores/EdgeScoreNormalizer.hpp +35 -0
  208. package/vendor/include/networkit/edgescores/GeometricMeanScore.hpp +29 -0
  209. package/vendor/include/networkit/edgescores/PrefixJaccardScore.hpp +23 -0
  210. package/vendor/include/networkit/edgescores/TriangleEdgeScore.hpp +39 -0
  211. package/vendor/include/networkit/embedding/Node2Vec.hpp +83 -0
  212. package/vendor/include/networkit/flow/EdmondsKarp.hpp +112 -0
  213. package/vendor/include/networkit/generators/BarabasiAlbertGenerator.hpp +87 -0
  214. package/vendor/include/networkit/generators/ChungLuGenerator.hpp +46 -0
  215. package/vendor/include/networkit/generators/ChungLuGeneratorAlamEtAl.hpp +63 -0
  216. package/vendor/include/networkit/generators/ClusteredRandomGraphGenerator.hpp +56 -0
  217. package/vendor/include/networkit/generators/ConfigurationModel.hpp +36 -0
  218. package/vendor/include/networkit/generators/DorogovtsevMendesGenerator.hpp +33 -0
  219. package/vendor/include/networkit/generators/DynamicBarabasiAlbertGenerator.hpp +33 -0
  220. package/vendor/include/networkit/generators/DynamicDGSParser.hpp +51 -0
  221. package/vendor/include/networkit/generators/DynamicDorogovtsevMendesGenerator.hpp +34 -0
  222. package/vendor/include/networkit/generators/DynamicForestFireGenerator.hpp +55 -0
  223. package/vendor/include/networkit/generators/DynamicGraphGenerator.hpp +40 -0
  224. package/vendor/include/networkit/generators/DynamicGraphSource.hpp +79 -0
  225. package/vendor/include/networkit/generators/DynamicHyperbolicGenerator.hpp +143 -0
  226. package/vendor/include/networkit/generators/DynamicPathGenerator.hpp +26 -0
  227. package/vendor/include/networkit/generators/DynamicPubWebGenerator.hpp +54 -0
  228. package/vendor/include/networkit/generators/EdgeSwitchingMarkovChainGenerator.hpp +65 -0
  229. package/vendor/include/networkit/generators/ErdosRenyiEnumerator.hpp +318 -0
  230. package/vendor/include/networkit/generators/ErdosRenyiGenerator.hpp +56 -0
  231. package/vendor/include/networkit/generators/HavelHakimiGenerator.hpp +48 -0
  232. package/vendor/include/networkit/generators/HyperbolicGenerator.hpp +236 -0
  233. package/vendor/include/networkit/generators/LFRGenerator.hpp +175 -0
  234. package/vendor/include/networkit/generators/MocnikGenerator.hpp +147 -0
  235. package/vendor/include/networkit/generators/MocnikGeneratorBasic.hpp +58 -0
  236. package/vendor/include/networkit/generators/PowerlawDegreeSequence.hpp +128 -0
  237. package/vendor/include/networkit/generators/PubWebGenerator.hpp +94 -0
  238. package/vendor/include/networkit/generators/RegularRingLatticeGenerator.hpp +37 -0
  239. package/vendor/include/networkit/generators/RmatGenerator.hpp +67 -0
  240. package/vendor/include/networkit/generators/StaticDegreeSequenceGenerator.hpp +42 -0
  241. package/vendor/include/networkit/generators/StaticGraphGenerator.hpp +30 -0
  242. package/vendor/include/networkit/generators/StochasticBlockmodel.hpp +41 -0
  243. package/vendor/include/networkit/generators/WattsStrogatzGenerator.hpp +43 -0
  244. package/vendor/include/networkit/generators/quadtree/QuadNode.hpp +857 -0
  245. package/vendor/include/networkit/generators/quadtree/QuadNodeCartesianEuclid.hpp +587 -0
  246. package/vendor/include/networkit/generators/quadtree/QuadNodePolarEuclid.hpp +726 -0
  247. package/vendor/include/networkit/generators/quadtree/Quadtree.hpp +232 -0
  248. package/vendor/include/networkit/generators/quadtree/QuadtreeCartesianEuclid.hpp +149 -0
  249. package/vendor/include/networkit/generators/quadtree/QuadtreePolarEuclid.hpp +143 -0
  250. package/vendor/include/networkit/geometric/HyperbolicSpace.hpp +248 -0
  251. package/vendor/include/networkit/geometric/Point2DWithIndex.hpp +145 -0
  252. package/vendor/include/networkit/global/ClusteringCoefficient.hpp +42 -0
  253. package/vendor/include/networkit/global/GlobalClusteringCoefficient.hpp +24 -0
  254. package/vendor/include/networkit/graph/Attributes.hpp +568 -0
  255. package/vendor/include/networkit/graph/BFS.hpp +111 -0
  256. package/vendor/include/networkit/graph/DFS.hpp +71 -0
  257. package/vendor/include/networkit/graph/Dijkstra.hpp +83 -0
  258. package/vendor/include/networkit/graph/EdgeIterators.hpp +171 -0
  259. package/vendor/include/networkit/graph/Graph.hpp +2083 -0
  260. package/vendor/include/networkit/graph/GraphBuilder.hpp +289 -0
  261. package/vendor/include/networkit/graph/GraphR.hpp +133 -0
  262. package/vendor/include/networkit/graph/GraphTools.hpp +589 -0
  263. package/vendor/include/networkit/graph/GraphW.hpp +1236 -0
  264. package/vendor/include/networkit/graph/KruskalMSF.hpp +50 -0
  265. package/vendor/include/networkit/graph/NeighborIterators.hpp +163 -0
  266. package/vendor/include/networkit/graph/NodeIterators.hpp +127 -0
  267. package/vendor/include/networkit/graph/PrimMSF.hpp +66 -0
  268. package/vendor/include/networkit/graph/RandomMaximumSpanningForest.hpp +133 -0
  269. package/vendor/include/networkit/graph/SpanningForest.hpp +41 -0
  270. package/vendor/include/networkit/graph/TopologicalSort.hpp +87 -0
  271. package/vendor/include/networkit/graph/UnionMaximumSpanningForest.hpp +126 -0
  272. package/vendor/include/networkit/graph/test/GraphBuilderBenchmark.hpp +68 -0
  273. package/vendor/include/networkit/independentset/IndependentSetFinder.hpp +44 -0
  274. package/vendor/include/networkit/independentset/Luby.hpp +27 -0
  275. package/vendor/include/networkit/io/BinaryEdgeListPartitionReader.hpp +45 -0
  276. package/vendor/include/networkit/io/BinaryEdgeListPartitionWriter.hpp +47 -0
  277. package/vendor/include/networkit/io/BinaryPartitionReader.hpp +41 -0
  278. package/vendor/include/networkit/io/BinaryPartitionWriter.hpp +44 -0
  279. package/vendor/include/networkit/io/CoverReader.hpp +27 -0
  280. package/vendor/include/networkit/io/CoverWriter.hpp +21 -0
  281. package/vendor/include/networkit/io/DGSReader.hpp +39 -0
  282. package/vendor/include/networkit/io/DibapGraphReader.hpp +43 -0
  283. package/vendor/include/networkit/io/DotGraphWriter.hpp +39 -0
  284. package/vendor/include/networkit/io/DotPartitionWriter.hpp +23 -0
  285. package/vendor/include/networkit/io/DynamicGraphReader.hpp +29 -0
  286. package/vendor/include/networkit/io/EdgeListCoverReader.hpp +35 -0
  287. package/vendor/include/networkit/io/EdgeListPartitionReader.hpp +43 -0
  288. package/vendor/include/networkit/io/EdgeListReader.hpp +61 -0
  289. package/vendor/include/networkit/io/EdgeListWriter.hpp +48 -0
  290. package/vendor/include/networkit/io/GMLGraphReader.hpp +33 -0
  291. package/vendor/include/networkit/io/GMLGraphWriter.hpp +33 -0
  292. package/vendor/include/networkit/io/GraphIO.hpp +52 -0
  293. package/vendor/include/networkit/io/GraphReader.hpp +40 -0
  294. package/vendor/include/networkit/io/GraphToolBinaryReader.hpp +71 -0
  295. package/vendor/include/networkit/io/GraphToolBinaryWriter.hpp +61 -0
  296. package/vendor/include/networkit/io/GraphWriter.hpp +27 -0
  297. package/vendor/include/networkit/io/KONECTGraphReader.hpp +44 -0
  298. package/vendor/include/networkit/io/LineFileReader.hpp +42 -0
  299. package/vendor/include/networkit/io/METISGraphReader.hpp +36 -0
  300. package/vendor/include/networkit/io/METISGraphWriter.hpp +29 -0
  301. package/vendor/include/networkit/io/METISParser.hpp +63 -0
  302. package/vendor/include/networkit/io/MTXGraphReader.hpp +31 -0
  303. package/vendor/include/networkit/io/MTXParser.hpp +87 -0
  304. package/vendor/include/networkit/io/MatrixMarketReader.hpp +33 -0
  305. package/vendor/include/networkit/io/MatrixReader.hpp +33 -0
  306. package/vendor/include/networkit/io/MemoryMappedFile.hpp +80 -0
  307. package/vendor/include/networkit/io/NetworkitBinaryGraph.hpp +144 -0
  308. package/vendor/include/networkit/io/NetworkitBinaryReader.hpp +50 -0
  309. package/vendor/include/networkit/io/NetworkitBinaryWriter.hpp +71 -0
  310. package/vendor/include/networkit/io/PartitionReader.hpp +34 -0
  311. package/vendor/include/networkit/io/PartitionWriter.hpp +31 -0
  312. package/vendor/include/networkit/io/RBGraphReader.hpp +37 -0
  313. package/vendor/include/networkit/io/RBMatrixReader.hpp +49 -0
  314. package/vendor/include/networkit/io/RasterReader.hpp +40 -0
  315. package/vendor/include/networkit/io/SNAPEdgeListPartitionReader.hpp +28 -0
  316. package/vendor/include/networkit/io/SNAPGraphReader.hpp +53 -0
  317. package/vendor/include/networkit/io/SNAPGraphWriter.hpp +53 -0
  318. package/vendor/include/networkit/io/ThrillGraphBinaryReader.hpp +44 -0
  319. package/vendor/include/networkit/io/ThrillGraphBinaryWriter.hpp +27 -0
  320. package/vendor/include/networkit/layout/LayoutAlgorithm.hpp +39 -0
  321. package/vendor/include/networkit/linkprediction/AdamicAdarIndex.hpp +37 -0
  322. package/vendor/include/networkit/linkprediction/AdjustedRandIndex.hpp +36 -0
  323. package/vendor/include/networkit/linkprediction/AlgebraicDistanceIndex.hpp +70 -0
  324. package/vendor/include/networkit/linkprediction/CommonNeighborsIndex.hpp +39 -0
  325. package/vendor/include/networkit/linkprediction/EvaluationMetric.hpp +135 -0
  326. package/vendor/include/networkit/linkprediction/JaccardIndex.hpp +44 -0
  327. package/vendor/include/networkit/linkprediction/KatzIndex.hpp +84 -0
  328. package/vendor/include/networkit/linkprediction/LinkPredictor.hpp +98 -0
  329. package/vendor/include/networkit/linkprediction/LinkThresholder.hpp +56 -0
  330. package/vendor/include/networkit/linkprediction/MissingLinksFinder.hpp +60 -0
  331. package/vendor/include/networkit/linkprediction/NeighborhoodDistanceIndex.hpp +42 -0
  332. package/vendor/include/networkit/linkprediction/NeighborhoodUtility.hpp +54 -0
  333. package/vendor/include/networkit/linkprediction/NeighborsMeasureIndex.hpp +48 -0
  334. package/vendor/include/networkit/linkprediction/PrecisionRecallMetric.hpp +40 -0
  335. package/vendor/include/networkit/linkprediction/PredictionsSorter.hpp +66 -0
  336. package/vendor/include/networkit/linkprediction/PreferentialAttachmentIndex.hpp +37 -0
  337. package/vendor/include/networkit/linkprediction/ROCMetric.hpp +39 -0
  338. package/vendor/include/networkit/linkprediction/RandomLinkSampler.hpp +47 -0
  339. package/vendor/include/networkit/linkprediction/ResourceAllocationIndex.hpp +38 -0
  340. package/vendor/include/networkit/linkprediction/SameCommunityIndex.hpp +50 -0
  341. package/vendor/include/networkit/linkprediction/TotalNeighborsIndex.hpp +39 -0
  342. package/vendor/include/networkit/linkprediction/UDegreeIndex.hpp +35 -0
  343. package/vendor/include/networkit/linkprediction/VDegreeIndex.hpp +35 -0
  344. package/vendor/include/networkit/matching/BMatcher.hpp +52 -0
  345. package/vendor/include/networkit/matching/BMatching.hpp +115 -0
  346. package/vendor/include/networkit/matching/BSuitorMatcher.hpp +170 -0
  347. package/vendor/include/networkit/matching/DynamicBSuitorMatcher.hpp +78 -0
  348. package/vendor/include/networkit/matching/LocalMaxMatcher.hpp +35 -0
  349. package/vendor/include/networkit/matching/Matcher.hpp +55 -0
  350. package/vendor/include/networkit/matching/Matching.hpp +111 -0
  351. package/vendor/include/networkit/matching/PathGrowingMatcher.hpp +46 -0
  352. package/vendor/include/networkit/matching/SuitorMatcher.hpp +62 -0
  353. package/vendor/include/networkit/numerics/ConjugateGradient.hpp +163 -0
  354. package/vendor/include/networkit/numerics/GaussSeidelRelaxation.hpp +99 -0
  355. package/vendor/include/networkit/numerics/LAMG/LAMGSettings.hpp +70 -0
  356. package/vendor/include/networkit/numerics/LAMG/Lamg.hpp +460 -0
  357. package/vendor/include/networkit/numerics/LAMG/Level/EliminationStage.hpp +47 -0
  358. package/vendor/include/networkit/numerics/LAMG/Level/Level.hpp +56 -0
  359. package/vendor/include/networkit/numerics/LAMG/Level/LevelAggregation.hpp +52 -0
  360. package/vendor/include/networkit/numerics/LAMG/Level/LevelElimination.hpp +133 -0
  361. package/vendor/include/networkit/numerics/LAMG/Level/LevelFinest.hpp +28 -0
  362. package/vendor/include/networkit/numerics/LAMG/LevelHierarchy.hpp +165 -0
  363. package/vendor/include/networkit/numerics/LAMG/MultiLevelSetup.hpp +1090 -0
  364. package/vendor/include/networkit/numerics/LAMG/SolverLamg.hpp +316 -0
  365. package/vendor/include/networkit/numerics/LinearSolver.hpp +151 -0
  366. package/vendor/include/networkit/numerics/Preconditioner/DiagonalPreconditioner.hpp +61 -0
  367. package/vendor/include/networkit/numerics/Preconditioner/IdentityPreconditioner.hpp +36 -0
  368. package/vendor/include/networkit/numerics/Smoother.hpp +37 -0
  369. package/vendor/include/networkit/overlap/HashingOverlapper.hpp +28 -0
  370. package/vendor/include/networkit/overlap/Overlapper.hpp +27 -0
  371. package/vendor/include/networkit/planarity/LeftRightPlanarityCheck.hpp +113 -0
  372. package/vendor/include/networkit/randomization/Curveball.hpp +49 -0
  373. package/vendor/include/networkit/randomization/CurveballGlobalTradeGenerator.hpp +39 -0
  374. package/vendor/include/networkit/randomization/CurveballUniformTradeGenerator.hpp +39 -0
  375. package/vendor/include/networkit/randomization/DegreePreservingShuffle.hpp +82 -0
  376. package/vendor/include/networkit/randomization/EdgeSwitching.hpp +157 -0
  377. package/vendor/include/networkit/randomization/GlobalCurveball.hpp +69 -0
  378. package/vendor/include/networkit/randomization/GlobalTradeSequence.hpp +303 -0
  379. package/vendor/include/networkit/reachability/AllSimplePaths.hpp +122 -0
  380. package/vendor/include/networkit/reachability/ReachableNodes.hpp +83 -0
  381. package/vendor/include/networkit/scd/ApproximatePageRank.hpp +51 -0
  382. package/vendor/include/networkit/scd/CliqueDetect.hpp +55 -0
  383. package/vendor/include/networkit/scd/CombinedSCD.hpp +51 -0
  384. package/vendor/include/networkit/scd/GCE.hpp +42 -0
  385. package/vendor/include/networkit/scd/LFMLocal.hpp +54 -0
  386. package/vendor/include/networkit/scd/LocalT.hpp +40 -0
  387. package/vendor/include/networkit/scd/LocalTightnessExpansion.hpp +46 -0
  388. package/vendor/include/networkit/scd/PageRankNibble.hpp +55 -0
  389. package/vendor/include/networkit/scd/RandomBFS.hpp +33 -0
  390. package/vendor/include/networkit/scd/SCDGroundTruthComparison.hpp +121 -0
  391. package/vendor/include/networkit/scd/SelectiveCommunityDetector.hpp +76 -0
  392. package/vendor/include/networkit/scd/SetConductance.hpp +47 -0
  393. package/vendor/include/networkit/scd/TCE.hpp +41 -0
  394. package/vendor/include/networkit/scd/TwoPhaseL.hpp +40 -0
  395. package/vendor/include/networkit/scoring/EdgeScoring.hpp +44 -0
  396. package/vendor/include/networkit/scoring/ModularityScoring.hpp +79 -0
  397. package/vendor/include/networkit/simulation/EpidemicSimulationSEIR.hpp +59 -0
  398. package/vendor/include/networkit/sparsification/ChanceCorrectedTriangleScore.hpp +28 -0
  399. package/vendor/include/networkit/sparsification/ForestFireScore.hpp +34 -0
  400. package/vendor/include/networkit/sparsification/GlobalThresholdFilter.hpp +40 -0
  401. package/vendor/include/networkit/sparsification/LocalDegreeScore.hpp +30 -0
  402. package/vendor/include/networkit/sparsification/LocalFilterScore.hpp +124 -0
  403. package/vendor/include/networkit/sparsification/LocalSimilarityScore.hpp +63 -0
  404. package/vendor/include/networkit/sparsification/MultiscaleScore.hpp +38 -0
  405. package/vendor/include/networkit/sparsification/RandomEdgeScore.hpp +33 -0
  406. package/vendor/include/networkit/sparsification/RandomNodeEdgeScore.hpp +29 -0
  407. package/vendor/include/networkit/sparsification/SCANStructuralSimilarityScore.hpp +23 -0
  408. package/vendor/include/networkit/sparsification/SimmelianOverlapScore.hpp +35 -0
  409. package/vendor/include/networkit/sparsification/SimmelianScore.hpp +92 -0
  410. package/vendor/include/networkit/sparsification/Sparsifiers.hpp +166 -0
  411. package/vendor/include/networkit/structures/Cover.hpp +248 -0
  412. package/vendor/include/networkit/structures/LocalCommunity.hpp +363 -0
  413. package/vendor/include/networkit/structures/Partition.hpp +335 -0
  414. package/vendor/include/networkit/structures/UnionFind.hpp +66 -0
  415. package/vendor/include/networkit/viz/GraphLayoutAlgorithm.hpp +157 -0
  416. package/vendor/include/networkit/viz/MaxentStress.hpp +346 -0
  417. package/vendor/include/networkit/viz/Octree.hpp +428 -0
  418. package/vendor/include/networkit/viz/PivotMDS.hpp +63 -0
  419. package/vendor/include/networkit/viz/Point.hpp +415 -0
  420. package/vendor/include/networkit/viz/PostscriptWriter.hpp +78 -0
  421. package/vendor/include/tlx/algorithm/exclusive_scan.hpp +56 -0
  422. package/vendor/include/tlx/algorithm/is_sorted_cmp.hpp +56 -0
  423. package/vendor/include/tlx/algorithm/merge_advance.hpp +177 -0
  424. package/vendor/include/tlx/algorithm/merge_combine.hpp +76 -0
  425. package/vendor/include/tlx/algorithm/multisequence_partition.hpp +346 -0
  426. package/vendor/include/tlx/algorithm/multisequence_selection.hpp +351 -0
  427. package/vendor/include/tlx/algorithm/multiway_merge.hpp +1385 -0
  428. package/vendor/include/tlx/algorithm/multiway_merge_splitting.hpp +257 -0
  429. package/vendor/include/tlx/algorithm/parallel_multiway_merge.hpp +408 -0
  430. package/vendor/include/tlx/algorithm/random_bipartition_shuffle.hpp +116 -0
  431. package/vendor/include/tlx/algorithm.hpp +36 -0
  432. package/vendor/include/tlx/allocator_base.hpp +100 -0
  433. package/vendor/include/tlx/backtrace.hpp +54 -0
  434. package/vendor/include/tlx/cmdline_parser.hpp +498 -0
  435. package/vendor/include/tlx/container/btree.hpp +3977 -0
  436. package/vendor/include/tlx/container/btree_map.hpp +634 -0
  437. package/vendor/include/tlx/container/btree_multimap.hpp +627 -0
  438. package/vendor/include/tlx/container/btree_multiset.hpp +612 -0
  439. package/vendor/include/tlx/container/btree_set.hpp +612 -0
  440. package/vendor/include/tlx/container/d_ary_addressable_int_heap.hpp +416 -0
  441. package/vendor/include/tlx/container/d_ary_heap.hpp +311 -0
  442. package/vendor/include/tlx/container/loser_tree.hpp +1009 -0
  443. package/vendor/include/tlx/container/lru_cache.hpp +319 -0
  444. package/vendor/include/tlx/container/radix_heap.hpp +735 -0
  445. package/vendor/include/tlx/container/ring_buffer.hpp +428 -0
  446. package/vendor/include/tlx/container/simple_vector.hpp +304 -0
  447. package/vendor/include/tlx/container/splay_tree.hpp +399 -0
  448. package/vendor/include/tlx/container/string_view.hpp +805 -0
  449. package/vendor/include/tlx/container.hpp +40 -0
  450. package/vendor/include/tlx/counting_ptr.hpp +522 -0
  451. package/vendor/include/tlx/define/attribute_always_inline.hpp +34 -0
  452. package/vendor/include/tlx/define/attribute_fallthrough.hpp +36 -0
  453. package/vendor/include/tlx/define/attribute_format_printf.hpp +34 -0
  454. package/vendor/include/tlx/define/attribute_packed.hpp +34 -0
  455. package/vendor/include/tlx/define/attribute_warn_unused_result.hpp +34 -0
  456. package/vendor/include/tlx/define/constexpr.hpp +31 -0
  457. package/vendor/include/tlx/define/deprecated.hpp +39 -0
  458. package/vendor/include/tlx/define/endian.hpp +49 -0
  459. package/vendor/include/tlx/define/likely.hpp +33 -0
  460. package/vendor/include/tlx/define/visibility_hidden.hpp +34 -0
  461. package/vendor/include/tlx/define.hpp +36 -0
  462. package/vendor/include/tlx/delegate.hpp +524 -0
  463. package/vendor/include/tlx/die/core.hpp +311 -0
  464. package/vendor/include/tlx/die.hpp +106 -0
  465. package/vendor/include/tlx/digest/md5.hpp +81 -0
  466. package/vendor/include/tlx/digest/sha1.hpp +81 -0
  467. package/vendor/include/tlx/digest/sha256.hpp +81 -0
  468. package/vendor/include/tlx/digest/sha512.hpp +81 -0
  469. package/vendor/include/tlx/digest.hpp +30 -0
  470. package/vendor/include/tlx/logger/all.hpp +33 -0
  471. package/vendor/include/tlx/logger/array.hpp +43 -0
  472. package/vendor/include/tlx/logger/core.hpp +287 -0
  473. package/vendor/include/tlx/logger/deque.hpp +42 -0
  474. package/vendor/include/tlx/logger/map.hpp +65 -0
  475. package/vendor/include/tlx/logger/set.hpp +60 -0
  476. package/vendor/include/tlx/logger/tuple.hpp +66 -0
  477. package/vendor/include/tlx/logger/unordered_map.hpp +68 -0
  478. package/vendor/include/tlx/logger/unordered_set.hpp +64 -0
  479. package/vendor/include/tlx/logger/wrap_unprintable.hpp +75 -0
  480. package/vendor/include/tlx/logger.hpp +44 -0
  481. package/vendor/include/tlx/math/abs_diff.hpp +35 -0
  482. package/vendor/include/tlx/math/aggregate.hpp +231 -0
  483. package/vendor/include/tlx/math/aggregate_min_max.hpp +116 -0
  484. package/vendor/include/tlx/math/bswap.hpp +148 -0
  485. package/vendor/include/tlx/math/bswap_be.hpp +79 -0
  486. package/vendor/include/tlx/math/bswap_le.hpp +79 -0
  487. package/vendor/include/tlx/math/clz.hpp +174 -0
  488. package/vendor/include/tlx/math/ctz.hpp +174 -0
  489. package/vendor/include/tlx/math/div_ceil.hpp +36 -0
  490. package/vendor/include/tlx/math/ffs.hpp +123 -0
  491. package/vendor/include/tlx/math/integer_log2.hpp +189 -0
  492. package/vendor/include/tlx/math/is_power_of_two.hpp +74 -0
  493. package/vendor/include/tlx/math/polynomial_regression.hpp +243 -0
  494. package/vendor/include/tlx/math/popcount.hpp +173 -0
  495. package/vendor/include/tlx/math/power_to_the.hpp +44 -0
  496. package/vendor/include/tlx/math/rol.hpp +112 -0
  497. package/vendor/include/tlx/math/ror.hpp +112 -0
  498. package/vendor/include/tlx/math/round_to_power_of_two.hpp +121 -0
  499. package/vendor/include/tlx/math/round_up.hpp +36 -0
  500. package/vendor/include/tlx/math/sgn.hpp +38 -0
  501. package/vendor/include/tlx/math.hpp +46 -0
  502. package/vendor/include/tlx/meta/apply_tuple.hpp +55 -0
  503. package/vendor/include/tlx/meta/call_for_range.hpp +78 -0
  504. package/vendor/include/tlx/meta/call_foreach.hpp +60 -0
  505. package/vendor/include/tlx/meta/call_foreach_tuple.hpp +60 -0
  506. package/vendor/include/tlx/meta/call_foreach_tuple_with_index.hpp +61 -0
  507. package/vendor/include/tlx/meta/call_foreach_with_index.hpp +64 -0
  508. package/vendor/include/tlx/meta/enable_if.hpp +37 -0
  509. package/vendor/include/tlx/meta/fold_left.hpp +63 -0
  510. package/vendor/include/tlx/meta/fold_left_tuple.hpp +60 -0
  511. package/vendor/include/tlx/meta/fold_right.hpp +63 -0
  512. package/vendor/include/tlx/meta/fold_right_tuple.hpp +60 -0
  513. package/vendor/include/tlx/meta/function_chain.hpp +197 -0
  514. package/vendor/include/tlx/meta/function_stack.hpp +189 -0
  515. package/vendor/include/tlx/meta/has_member.hpp +80 -0
  516. package/vendor/include/tlx/meta/has_method.hpp +117 -0
  517. package/vendor/include/tlx/meta/index_sequence.hpp +66 -0
  518. package/vendor/include/tlx/meta/is_std_array.hpp +40 -0
  519. package/vendor/include/tlx/meta/is_std_pair.hpp +39 -0
  520. package/vendor/include/tlx/meta/is_std_tuple.hpp +39 -0
  521. package/vendor/include/tlx/meta/is_std_vector.hpp +39 -0
  522. package/vendor/include/tlx/meta/log2.hpp +101 -0
  523. package/vendor/include/tlx/meta/no_operation.hpp +55 -0
  524. package/vendor/include/tlx/meta/static_index.hpp +42 -0
  525. package/vendor/include/tlx/meta/vexpand.hpp +34 -0
  526. package/vendor/include/tlx/meta/vmap_for_range.hpp +84 -0
  527. package/vendor/include/tlx/meta/vmap_foreach.hpp +63 -0
  528. package/vendor/include/tlx/meta/vmap_foreach_tuple.hpp +59 -0
  529. package/vendor/include/tlx/meta/vmap_foreach_tuple_with_index.hpp +62 -0
  530. package/vendor/include/tlx/meta/vmap_foreach_with_index.hpp +70 -0
  531. package/vendor/include/tlx/meta.hpp +55 -0
  532. package/vendor/include/tlx/multi_timer.hpp +148 -0
  533. package/vendor/include/tlx/port/setenv.hpp +31 -0
  534. package/vendor/include/tlx/port.hpp +27 -0
  535. package/vendor/include/tlx/semaphore.hpp +119 -0
  536. package/vendor/include/tlx/simple_vector.hpp +20 -0
  537. package/vendor/include/tlx/siphash.hpp +282 -0
  538. package/vendor/include/tlx/sort/networks/best.hpp +611 -0
  539. package/vendor/include/tlx/sort/networks/bose_nelson.hpp +412 -0
  540. package/vendor/include/tlx/sort/networks/bose_nelson_parameter.hpp +507 -0
  541. package/vendor/include/tlx/sort/networks/cswap.hpp +60 -0
  542. package/vendor/include/tlx/sort/parallel_mergesort.hpp +398 -0
  543. package/vendor/include/tlx/sort/strings/insertion_sort.hpp +232 -0
  544. package/vendor/include/tlx/sort/strings/multikey_quicksort.hpp +185 -0
  545. package/vendor/include/tlx/sort/strings/parallel_sample_sort.hpp +1647 -0
  546. package/vendor/include/tlx/sort/strings/radix_sort.hpp +934 -0
  547. package/vendor/include/tlx/sort/strings/sample_sort_tools.hpp +756 -0
  548. package/vendor/include/tlx/sort/strings/string_ptr.hpp +426 -0
  549. package/vendor/include/tlx/sort/strings/string_set.hpp +800 -0
  550. package/vendor/include/tlx/sort/strings.hpp +329 -0
  551. package/vendor/include/tlx/sort/strings_parallel.hpp +325 -0
  552. package/vendor/include/tlx/sort.hpp +29 -0
  553. package/vendor/include/tlx/stack_allocator.hpp +226 -0
  554. package/vendor/include/tlx/string/appendline.hpp +35 -0
  555. package/vendor/include/tlx/string/base64.hpp +87 -0
  556. package/vendor/include/tlx/string/bitdump.hpp +139 -0
  557. package/vendor/include/tlx/string/compare_icase.hpp +42 -0
  558. package/vendor/include/tlx/string/contains.hpp +36 -0
  559. package/vendor/include/tlx/string/contains_word.hpp +42 -0
  560. package/vendor/include/tlx/string/ends_with.hpp +79 -0
  561. package/vendor/include/tlx/string/equal_icase.hpp +42 -0
  562. package/vendor/include/tlx/string/erase_all.hpp +70 -0
  563. package/vendor/include/tlx/string/escape_html.hpp +34 -0
  564. package/vendor/include/tlx/string/escape_uri.hpp +34 -0
  565. package/vendor/include/tlx/string/expand_environment_variables.hpp +49 -0
  566. package/vendor/include/tlx/string/extract_between.hpp +40 -0
  567. package/vendor/include/tlx/string/format_iec_units.hpp +32 -0
  568. package/vendor/include/tlx/string/format_si_iec_units.hpp +19 -0
  569. package/vendor/include/tlx/string/format_si_units.hpp +32 -0
  570. package/vendor/include/tlx/string/hash_djb2.hpp +87 -0
  571. package/vendor/include/tlx/string/hash_sdbm.hpp +86 -0
  572. package/vendor/include/tlx/string/hexdump.hpp +154 -0
  573. package/vendor/include/tlx/string/index_of.hpp +56 -0
  574. package/vendor/include/tlx/string/join.hpp +65 -0
  575. package/vendor/include/tlx/string/join_generic.hpp +89 -0
  576. package/vendor/include/tlx/string/join_quoted.hpp +46 -0
  577. package/vendor/include/tlx/string/less_icase.hpp +64 -0
  578. package/vendor/include/tlx/string/levenshtein.hpp +193 -0
  579. package/vendor/include/tlx/string/pad.hpp +39 -0
  580. package/vendor/include/tlx/string/parse_si_iec_units.hpp +46 -0
  581. package/vendor/include/tlx/string/parse_uri.hpp +66 -0
  582. package/vendor/include/tlx/string/parse_uri_form_data.hpp +136 -0
  583. package/vendor/include/tlx/string/replace.hpp +141 -0
  584. package/vendor/include/tlx/string/split.hpp +170 -0
  585. package/vendor/include/tlx/string/split_quoted.hpp +49 -0
  586. package/vendor/include/tlx/string/split_view.hpp +218 -0
  587. package/vendor/include/tlx/string/split_words.hpp +53 -0
  588. package/vendor/include/tlx/string/ssprintf.hpp +45 -0
  589. package/vendor/include/tlx/string/ssprintf_generic.hpp +95 -0
  590. package/vendor/include/tlx/string/starts_with.hpp +44 -0
  591. package/vendor/include/tlx/string/to_lower.hpp +47 -0
  592. package/vendor/include/tlx/string/to_upper.hpp +47 -0
  593. package/vendor/include/tlx/string/trim.hpp +298 -0
  594. package/vendor/include/tlx/string/union_words.hpp +33 -0
  595. package/vendor/include/tlx/string/word_wrap.hpp +35 -0
  596. package/vendor/include/tlx/string.hpp +68 -0
  597. package/vendor/include/tlx/thread_barrier_mutex.hpp +109 -0
  598. package/vendor/include/tlx/thread_barrier_spin.hpp +127 -0
  599. package/vendor/include/tlx/thread_pool.hpp +151 -0
  600. package/vendor/include/tlx/timestamp.hpp +23 -0
  601. package/vendor/include/tlx/unused.hpp +28 -0
  602. package/vendor/include/tlx/vector_free.hpp +30 -0
  603. package/vendor/include/tlx/version.hpp +49 -0
  604. package/vendor/include/ttmath/ttmath.h +2881 -0
  605. package/vendor/include/ttmath/ttmathbig.h +6111 -0
  606. package/vendor/include/ttmath/ttmathdec.h +419 -0
  607. package/vendor/include/ttmath/ttmathint.h +1923 -0
  608. package/vendor/include/ttmath/ttmathmisc.h +250 -0
  609. package/vendor/include/ttmath/ttmathobjects.h +812 -0
  610. package/vendor/include/ttmath/ttmathparser.h +2791 -0
  611. package/vendor/include/ttmath/ttmaththreads.h +252 -0
  612. package/vendor/include/ttmath/ttmathtypes.h +707 -0
  613. package/vendor/include/ttmath/ttmathuint.h +4190 -0
  614. package/vendor/include/ttmath/ttmathuint_noasm.h +1038 -0
  615. package/vendor/include/ttmath/ttmathuint_x86.h +1620 -0
  616. package/vendor/include/ttmath/ttmathuint_x86_64.h +1177 -0
  617. package/vendor/lib/cmake/tlx/tlx-config.cmake +51 -0
  618. package/vendor/lib/cmake/tlx/tlx-targets-release.cmake +19 -0
  619. package/vendor/lib/cmake/tlx/tlx-targets.cmake +106 -0
  620. package/vendor/lib/cmake/tlx/tlx-version.cmake +11 -0
  621. package/vendor/lib/libnetworkit.dylib +0 -0
  622. package/vendor/lib/libtlx.a +0 -0
  623. package/vendor/lib/pkgconfig/networkit.pc +11 -0
  624. package/vendor/lib/pkgconfig/tlx.pc +11 -0
@@ -0,0 +1,47 @@
1
+ /*
2
+ * NeighborhoodFunction.hpp
3
+ *
4
+ * Created on: 30.03.2016
5
+ * Author: Maximilian Vogel
6
+ */
7
+
8
+ #ifndef NETWORKIT_DISTANCE_NEIGHBORHOOD_FUNCTION_HPP_
9
+ #define NETWORKIT_DISTANCE_NEIGHBORHOOD_FUNCTION_HPP_
10
+
11
+ #include <networkit/base/Algorithm.hpp>
12
+ #include <networkit/graph/Graph.hpp>
13
+
14
+ namespace NetworKit {
15
+
16
+ /**
17
+ * @ingroup distance
18
+ */
19
+ class NeighborhoodFunction final : public Algorithm {
20
+
21
+ public:
22
+ /**
23
+ * Computes the neighborhood function exactly.
24
+ * The neighborhood function N of a graph G for a given distance t is defined
25
+ * as the number of node pairs (u,v) that can be reached within distance t.
26
+ *
27
+ * @param G the given graph
28
+ * @return the exact effective diameter of the graph
29
+ */
30
+ NeighborhoodFunction(const Graph &G);
31
+
32
+ void run() override;
33
+
34
+ /**
35
+ * Returns the neighborhood function of the graph.
36
+ * @return the neighborhood function of the graph
37
+ */
38
+ const std::vector<count> &getNeighborhoodFunction() const;
39
+
40
+ private:
41
+ const Graph *G;
42
+ std::vector<count> result;
43
+ };
44
+
45
+ } /* namespace NetworKit */
46
+
47
+ #endif // NETWORKIT_DISTANCE_NEIGHBORHOOD_FUNCTION_HPP_
@@ -0,0 +1,56 @@
1
+ /*
2
+ * NeighborhoodFunctionApproximation.hpp
3
+ *
4
+ * Created on: 30.03.2016
5
+ * Author: Maximilian Vogel
6
+ */
7
+
8
+ #ifndef NETWORKIT_DISTANCE_NEIGHBORHOOD_FUNCTION_APPROXIMATION_HPP_
9
+ #define NETWORKIT_DISTANCE_NEIGHBORHOOD_FUNCTION_APPROXIMATION_HPP_
10
+
11
+ #include <networkit/base/Algorithm.hpp>
12
+ #include <networkit/graph/Graph.hpp>
13
+
14
+ namespace NetworKit {
15
+
16
+ /**
17
+ * @ingroup distance
18
+ */
19
+ class NeighborhoodFunctionApproximation final : public Algorithm {
20
+
21
+ public:
22
+ /**
23
+ * Computes an approximation of the neighborhood function.
24
+ * The neighborhood function N of a graph G for a given distance t is defined
25
+ * as the number of node pairs (u,v) that can be reached within distance t.
26
+ * Implementation after the ANF algorithm presented in the paper "A Fast and Scalable Tool for
27
+ * Data Mining in Massive Graphs"[1]
28
+ *
29
+ * [1] by Palmer, Gibbons and Faloutsos which can be found here:
30
+ * http://www.cs.cmu.edu/~christos/PUBLICATIONS/kdd02-anf.pdf
31
+ *
32
+ * @param G the given graph
33
+ * @param k the number of parallel approximations to get a more robust result; default = 64
34
+ * @param r the amount of bits that are added to the length of the bitmask to improve the
35
+ * accuracy; default = 7
36
+ */
37
+ NeighborhoodFunctionApproximation(const Graph &G, count k = 64, count r = 7);
38
+
39
+ void run() override;
40
+
41
+ /**
42
+ * Returns the approximated neighborhood function of the graph.
43
+ * @return the approximated neighborhood function of the graph
44
+ */
45
+ const std::vector<count> &getNeighborhoodFunction() const;
46
+
47
+ private:
48
+ const Graph *G;
49
+ const count k;
50
+ const count r;
51
+ std::vector<count> result;
52
+ };
53
+
54
+ } /* namespace NetworKit */
55
+
56
+ #endif // NETWORKIT_DISTANCE_NEIGHBORHOOD_FUNCTION_APPROXIMATION_HPP_
@@ -0,0 +1,56 @@
1
+ /*
2
+ * NeighborhoodFunctionHeuristic.hpp
3
+ *
4
+ * Author: Maximilian Vogel
5
+ */
6
+
7
+ #ifndef NETWORKIT_DISTANCE_NEIGHBORHOOD_FUNCTION_HEURISTIC_HPP_
8
+ #define NETWORKIT_DISTANCE_NEIGHBORHOOD_FUNCTION_HEURISTIC_HPP_
9
+
10
+ #include <networkit/base/Algorithm.hpp>
11
+ #include <networkit/graph/Graph.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ /**
16
+ * @ingroup distance
17
+ */
18
+ class NeighborhoodFunctionHeuristic final : public Algorithm {
19
+
20
+ public:
21
+ enum SelectionStrategy { RANDOM, SPLIT };
22
+ /**
23
+ * Computes a heuristic of the neighborhood function.
24
+ *
25
+ * The algorithm runs nSamples breadth-first searches and scales the results up to the actual
26
+ * amount of nodes. Accepted strategies are "split" and "random".
27
+ *
28
+ * @param G the given graph
29
+ * @param nSamples the amount of samples, set to zero for heuristic of max(sqrt(m), 0.15*n)
30
+ * @param strategy the strategy to select the samples, accepts "random" or "split"
31
+ */
32
+ NeighborhoodFunctionHeuristic(const Graph &G, count nSamples = 0,
33
+ SelectionStrategy strategy = SPLIT);
34
+
35
+ void run() override;
36
+
37
+ /**
38
+ * Returns the approximated neighborhood function of the graph.
39
+ * @return the approximated neighborhood function of the graph
40
+ */
41
+ const std::vector<count> &getNeighborhoodFunction() const;
42
+
43
+ private:
44
+ const Graph *G;
45
+ const count nSamples;
46
+ const SelectionStrategy strategy;
47
+ std::vector<count> result;
48
+
49
+ /* selection schemes implemented as private functions */
50
+ std::vector<node> random(const Graph &G, count nSamples);
51
+ std::vector<node> split(const Graph &G, count nSamples);
52
+ };
53
+
54
+ } /* namespace NetworKit */
55
+
56
+ #endif // NETWORKIT_DISTANCE_NEIGHBORHOOD_FUNCTION_HEURISTIC_HPP_
@@ -0,0 +1,54 @@
1
+ /*
2
+ * NodeDistance.hpp
3
+ *
4
+ * Created on: 18.06.2013
5
+ * Author: cls
6
+ */
7
+
8
+ #ifndef NETWORKIT_DISTANCE_NODE_DISTANCE_HPP_
9
+ #define NETWORKIT_DISTANCE_NODE_DISTANCE_HPP_
10
+
11
+ #include <networkit/graph/Graph.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ /**
16
+ * @ingroup distance
17
+ * Abstract base class for node distance measures.
18
+ */
19
+ class NodeDistance {
20
+
21
+ protected:
22
+ const Graph *G;
23
+
24
+ public:
25
+ /**
26
+ * Constructs the NodeDistance class for the given Graph @a G.
27
+ *
28
+ * @param G The graph.
29
+ */
30
+ NodeDistance(const Graph &G) : G(&G) {}
31
+
32
+ /** Default destructor */
33
+ virtual ~NodeDistance() = default;
34
+
35
+ /**
36
+ * Perform preprocessing work. Needs to be called before distances are requested.
37
+ */
38
+ virtual void preprocess() = 0;
39
+
40
+ /**
41
+ * Return the distance between two nodes.
42
+ * The distance must be normed to return a distance between 0 and 1.
43
+ */
44
+ virtual double distance(node u, node v) = 0;
45
+
46
+ /**
47
+ * Returns the distances between all connected pairs of nodes.
48
+ * @return Vector containing the distances between all connected pairs of nodes.
49
+ */
50
+ virtual const std::vector<double> &getEdgeScores() const = 0;
51
+ };
52
+
53
+ } /* namespace NetworKit */
54
+ #endif // NETWORKIT_DISTANCE_NODE_DISTANCE_HPP_
@@ -0,0 +1,76 @@
1
+ #ifndef NETWORKIT_DISTANCE_PRUNED_LANDMARK_LABELING_HPP_
2
+ #define NETWORKIT_DISTANCE_PRUNED_LANDMARK_LABELING_HPP_
3
+
4
+ #include <utility>
5
+ #include <vector>
6
+
7
+ #include <networkit/base/Algorithm.hpp>
8
+ #include <networkit/graph/Graph.hpp>
9
+
10
+ namespace NetworKit {
11
+
12
+ class PrunedLandmarkLabeling : public Algorithm {
13
+
14
+ public:
15
+ /**
16
+ * Pruned Landmark Labeling algorithm based on the paper "Fast exact shortest-path distance
17
+ * queries on large networks by pruned landmark labeling" from Akiba et al., ACM SIGMOD 2013.
18
+ * The algorithm computes distance labels by performing pruned breadth-first searches from each
19
+ * vertex. Labels are used to quickly retrieve shortest-path distances between node pairs.
20
+ * @note this algorithm only works for unweighted graphs.
21
+ *
22
+ * @param G The input graph.
23
+ */
24
+ PrunedLandmarkLabeling(const Graph &G);
25
+
26
+ /**
27
+ * Computes distance labels. Run this function before calling 'query'.
28
+ */
29
+ void run() override;
30
+
31
+ /**
32
+ * Returns the shortest-path distance between the two nodes.
33
+ *
34
+ * @param u Source node.
35
+ * @param v Target node.
36
+ *
37
+ * @return The shortest-path distance from @a u to @a v.
38
+ */
39
+ count query(node u, node v) const;
40
+
41
+ protected:
42
+ count queryImpl(node u, node v, node upperBound = none) const;
43
+
44
+ static constexpr count infDist = std::numeric_limits<count>::max();
45
+
46
+ struct Label {
47
+ Label() : node_(none), distance_(infDist) {}
48
+ Label(node node_, count distance_) : node_(node_), distance_(distance_) {}
49
+ node node_;
50
+ count distance_;
51
+ };
52
+
53
+ const Graph *G;
54
+ std::vector<node> nodesSortedByDegreeDesc;
55
+ std::vector<bool> visited;
56
+ std::vector<std::vector<Label>> labelsOut, labelsIn;
57
+ std::vector<Label> labelsUCopy, labelsVCopy;
58
+
59
+ template <bool Reverse = false>
60
+ void prunedBFS(node root, node rankOfRootNode);
61
+
62
+ auto getSourceLabelsIterators(node u, bool reverse = false) const {
63
+ if (reverse)
64
+ return std::make_pair(labelsIn[u].begin(), labelsIn[u].end());
65
+ else
66
+ return std::make_pair(labelsOut[u].begin(), labelsOut[u].end());
67
+ }
68
+
69
+ auto getTargetLabelsIterators(node u) const {
70
+ return std::make_pair(labelsOut[u].begin(), labelsOut[u].end());
71
+ }
72
+ };
73
+
74
+ } // namespace NetworKit
75
+
76
+ #endif // NETWORKIT_DISTANCE_PRUNED_LANDMARK_LABELING_HPP_
@@ -0,0 +1,46 @@
1
+ /*
2
+ * ReverseBFS.hpp
3
+ *
4
+ * Created on: Jul 23, 2013
5
+ * Author: Henning
6
+ */
7
+
8
+ #ifndef NETWORKIT_DISTANCE_REVERSE_BFS_HPP_
9
+ #define NETWORKIT_DISTANCE_REVERSE_BFS_HPP_
10
+
11
+ #include <networkit/distance/SSSP.hpp>
12
+ #include <networkit/graph/Graph.hpp>
13
+
14
+ namespace NetworKit {
15
+
16
+ /**
17
+ * @ingroup graph
18
+ * The ReverseBFS class is used to do a reverse breadth-first search (following
19
+ * the incoming edges of a node) on a Graph from a given source node.
20
+ */
21
+ class ReverseBFS final : public SSSP {
22
+
23
+ public:
24
+ /**
25
+ * Constructs the ReverseBFS class for @a G and source node @a source.
26
+ *
27
+ * @param G The graph.
28
+ * @param source The source node of the breadth-first search.
29
+ * @param storePaths store paths and number of paths?
30
+ * @param storeStack maintain a stack of nodes in decreasing order of
31
+ * distance
32
+ */
33
+ ReverseBFS(const Graph &G, node source, bool storePaths = true,
34
+ bool storeNodesSortedByDistance = false, node target = none);
35
+
36
+ /**
37
+ * Reverse Breadth-first search from @a source.
38
+ * @return Vector of unweighted distances from node @a source, i.e. the
39
+ * length (number of edges) of the shortest path from @a source to any other
40
+ * node.
41
+ */
42
+ void run() override;
43
+ };
44
+
45
+ } /* namespace NetworKit */
46
+ #endif // NETWORKIT_DISTANCE_REVERSE_BFS_HPP_
@@ -0,0 +1,143 @@
1
+ /*
2
+ * SPSP.hpp
3
+ * Created on: 23.10.2020
4
+ * Author: Eugenio Angriman <angrimae@hu-berlin.de>
5
+ */
6
+
7
+ #ifndef NETWORKIT_DISTANCE_SPSP_HPP_
8
+ #define NETWORKIT_DISTANCE_SPSP_HPP_
9
+
10
+ #include <unordered_map>
11
+ #include <vector>
12
+
13
+ #include <networkit/base/Algorithm.hpp>
14
+ #include <networkit/graph/Graph.hpp>
15
+
16
+ namespace NetworKit {
17
+
18
+ /**
19
+ * @ingroup distance
20
+ * Class for some-pairs shortest path algorithm.
21
+ */
22
+ class SPSP final : public Algorithm {
23
+
24
+ public:
25
+ /**
26
+ * Creates the SPSP class for @a G.
27
+ *
28
+ * @param G The graph.
29
+ * @param sourcesFirst,sourcesLast Range of the source nodes.
30
+ */
31
+ template <class InputIt>
32
+ explicit SPSP(const Graph &G, InputIt sourcesFirst, InputIt sourcesLast) : G(&G) {
33
+ setSources(sourcesFirst, sourcesLast);
34
+ }
35
+
36
+ /**
37
+ * Creates the SPSP class for @a G.
38
+ *
39
+ * @param G The graph.
40
+ * @param sourcesFirst,sourcesLast Range of the source nodes.
41
+ * @param targetsFirst,targetLast Range of the target nodes.
42
+ */
43
+ template <class SourcesInputIt, class TargetsInputIt>
44
+ explicit SPSP(const Graph &G, SourcesInputIt sourcesFirst, SourcesInputIt sourcesLast,
45
+ TargetsInputIt targetsFirst, TargetsInputIt targetsLast)
46
+ : G(&G) {
47
+ setSources(sourcesFirst, sourcesLast);
48
+ setTargets(targetsFirst, targetsLast);
49
+ }
50
+
51
+ /**
52
+ * Sets the source nodes.
53
+ *
54
+ * @param sourcesFirst,sourcesLast Range of the new source nodes.
55
+ */
56
+ template <class InputIt>
57
+ void setSources(InputIt sourcesFirst, InputIt sourcesLast) {
58
+ initSourcesOrTargets(sources, sourcesFirst, sourcesLast, sourceIdx);
59
+ }
60
+
61
+ /**
62
+ * Sets the target nodes.
63
+ *
64
+ * @param sourcesFirst,sourcesLast Range of the new source nodes.
65
+ */
66
+ template <class InputIt>
67
+ void setTargets(InputIt targetsFirst, InputIt targetsLast) {
68
+ initSourcesOrTargets(targets, targetsFirst, targetsLast, targetIdx);
69
+ }
70
+
71
+ ~SPSP() override = default;
72
+
73
+ /**
74
+ * Computes the shortest paths from the source nodes to the target nodes using bidirectional
75
+ * graph explorations. If no targets nodes are provided, the algorithm computes the shortest
76
+ * paths from each source node to all the other nodes. The algorithm is parallel.
77
+ */
78
+ void run() override;
79
+
80
+ /**
81
+ * Returns a vector of weighted distances between all the source nodes to all the other nodes.
82
+ *
83
+ * @return The shortest-path distances from the source nodes to any other node in
84
+ * the graph.
85
+ */
86
+ const std::vector<std::vector<edgeweight>> &getDistances() const {
87
+ assureFinished();
88
+ return distances;
89
+ }
90
+
91
+ /**
92
+ * Returns the distance from the source @a u to node @a v or infinity if @a
93
+ * u cannot reach @a v.
94
+ *
95
+ * @param u A source node.
96
+ * @param v A node.
97
+ */
98
+ edgeweight getDistance(node u, node v) const {
99
+ assureFinished();
100
+ if (targets.empty())
101
+ return distances[sourceIdx.at(u)][v];
102
+ else
103
+ return distances[sourceIdx.at(u)][targetIdx.at(v)];
104
+ }
105
+
106
+ /**
107
+ * Returns the <node, index> map from source nodes to their index in the vector
108
+ * returned by SPSP::getDistances().
109
+ *
110
+ * @return Map from source nodes to their index in the vector returned by SPSP::getDistances().
111
+ */
112
+ const std::unordered_map<node, index> &getSourceIndexMap() const noexcept { return sourceIdx; }
113
+
114
+ /**
115
+ * Returns the <node, index> map from target nodes to their index in the vector
116
+ * returned by SPSP::getDistances().
117
+ *
118
+ * @return Map from target nodes to their index in the vector returned by SPSP::getDistances().
119
+ */
120
+ const std::unordered_map<node, index> &getTargetIndexMap() const noexcept { return targetIdx; }
121
+
122
+ private:
123
+ const Graph *G;
124
+ std::vector<node> sources, targets;
125
+ std::unordered_map<node, index> sourceIdx, targetIdx;
126
+ std::vector<std::vector<edgeweight>> distances;
127
+
128
+ template <class InputIt>
129
+ void initSourcesOrTargets(std::vector<node> &vec, InputIt first, InputIt last,
130
+ std::unordered_map<node, index> &indices) {
131
+ vec.assign(first, last);
132
+ indices.clear();
133
+ for (index i = 0; i < vec.size(); ++i)
134
+ indices.emplace(vec[i], i);
135
+ }
136
+
137
+ void runWithTargets();
138
+ void runWithoutTargets();
139
+ };
140
+
141
+ } // namespace NetworKit
142
+
143
+ #endif // NETWORKIT_DISTANCE_SPSP_HPP_
@@ -0,0 +1,216 @@
1
+ /*
2
+ * SSSP.hpp
3
+ *
4
+ * Created on: 15.04.2014
5
+ * Author: cls
6
+ */
7
+
8
+ #ifndef NETWORKIT_DISTANCE_SSSP_HPP_
9
+ #define NETWORKIT_DISTANCE_SSSP_HPP_
10
+
11
+ #include <set>
12
+
13
+ #include <networkit/auxiliary/Multiprecision.hpp>
14
+ #include <networkit/base/Algorithm.hpp>
15
+ #include <networkit/graph/Graph.hpp>
16
+
17
+ namespace NetworKit {
18
+
19
+ /**
20
+ * @ingroup distance
21
+ * Abstract base class for single-source shortest path algorithms.
22
+ */
23
+ class SSSP : public Algorithm {
24
+
25
+ public:
26
+ /**
27
+ * Creates the SSSP class for @a G and source @a s.
28
+ *
29
+ * @param G The graph.
30
+ * @param source The source node.
31
+ * @param storePaths Paths are reconstructable and the number of paths is
32
+ * stored.
33
+ * @param storeNodesSortedByDistance Store a vector of nodes ordered in
34
+ * increasing distance from the source.
35
+ * @param target The target node.
36
+ */
37
+ SSSP(const Graph &G, node source, bool storePaths = true,
38
+ bool storeNodesSortedByDistance = false, node target = none);
39
+
40
+ ~SSSP() override = default;
41
+
42
+ /** Computes the shortest paths from the source to all other nodes. */
43
+ void run() override = 0;
44
+
45
+ /**
46
+ * Returns a vector of weighted distances from the source node, i.e. the
47
+ * length of the shortest path from the source node to any other node.
48
+ *
49
+ * @return The weighted distances from the source node to any other node in
50
+ * the graph.
51
+ */
52
+ const std::vector<edgeweight> &getDistances();
53
+
54
+ /**
55
+ * Returns the distance from the source node to @a t.
56
+ * @param t Target node.
57
+ * @return The distance from source to target node @a t.
58
+ */
59
+ edgeweight distance(node t) const;
60
+
61
+ /**
62
+ * Returns the number of shortest paths between the source node and @a t.
63
+ * @param t Target node.
64
+ * @return The number of shortest paths between source and @a t.
65
+ */
66
+ bigfloat numberOfPaths(node t) const;
67
+
68
+ /**
69
+ * Returns the number of shortest paths between the source node and @a t
70
+ * as a double value. Workaround for Cython
71
+ * @param t Target node.
72
+ * @return The number of shortest paths between source and @a t.
73
+ */
74
+ double _numberOfPaths(node t) const;
75
+
76
+ /**
77
+ * Returns the predecessor nodes of @a t on all shortest paths from source
78
+ * to @a t.
79
+ * @param t Target node.
80
+ * @return The predecessors of @a t on all shortest paths from source to @a
81
+ * t.
82
+ */
83
+ const std::vector<node> &getPredecessors(node t) const;
84
+
85
+ /**
86
+ * Returns a shortest path from source to @a t and an empty path if source
87
+ * and @a t are not connected.
88
+ *
89
+ * @param t Target node.
90
+ * @param forward If @c true (default) the path is directed from source to
91
+ * @a t, otherwise the path is reversed.
92
+ * @return A shortest path from source to @a t or an empty path.
93
+ */
94
+ std::vector<node> getPath(node t, bool forward = true) const;
95
+
96
+ /**
97
+ * Returns all shortest paths from source to @a t and an empty set if source
98
+ * and @a t are not connected.
99
+ *
100
+ * @param t Target node.
101
+ * @param forward If @c true (default) the path is directed from source to
102
+ * @a t, otherwise the path is reversed.
103
+ * @return All shortest paths from source node to target node @a t.
104
+ */
105
+ std::set<std::vector<node>> getPaths(node t, bool forward = true) const;
106
+
107
+ /* Returns the number of shortest paths to node t.*/
108
+ bigfloat getNumberOfPaths(node t) const;
109
+
110
+ /**
111
+ * Returns a vector of nodes ordered in increasing distance from the source.
112
+ *
113
+ * For this functionality to be available, storeNodesSortedByDistance has
114
+ * to be set to true in the constructor. There are no guarantees regarding
115
+ * the ordering of two nodes with the same distance to the source.
116
+ *
117
+ * @return vector of nodes ordered in increasing distance from the source
118
+ */
119
+ const std::vector<node> &getNodesSortedByDistance() const;
120
+
121
+ /**
122
+ * Returns the number of nodes reached by the source.
123
+ *
124
+ * @return Number of nodes reached by the source.
125
+ */
126
+ count getReachableNodes() const {
127
+ assureFinished();
128
+ return reachedNodes;
129
+ }
130
+
131
+ /**
132
+ * Sets a new source.
133
+ *
134
+ * @param newSource The new source node.
135
+ */
136
+ void setSource(node newSource) {
137
+ if (!G->hasNode(newSource))
138
+ throw std::runtime_error("Error: node not in the graph.");
139
+ source = newSource;
140
+ }
141
+
142
+ /**
143
+ * Sets a new target.
144
+ */
145
+ void setTarget(node newTarget) {
146
+ if (!G->hasNode(newTarget))
147
+ throw std::runtime_error("Error: node not in the graph.");
148
+ target = newTarget;
149
+ }
150
+
151
+ /**
152
+ * Returns the sum of distances from the source node node to the reached
153
+ * nodes.
154
+ */
155
+ double getSumOfDistances() const {
156
+ assureFinished();
157
+ return sumDist;
158
+ }
159
+
160
+ protected:
161
+ const Graph *G;
162
+ node source;
163
+ node target;
164
+ double sumDist;
165
+ count reachedNodes;
166
+ std::vector<edgeweight> distances;
167
+ std::vector<std::vector<node>> previous; // predecessors on shortest path
168
+ std::vector<bigfloat> npaths;
169
+
170
+ std::vector<node> nodesSortedByDistance;
171
+
172
+ bool storePaths; //!< if true, paths are reconstructable and the number of
173
+ //!< paths is stored
174
+ bool storeNodesSortedByDistance; //!< if true, store a vector of nodes
175
+ //!< ordered in increasing distance from
176
+ //!< the source
177
+ };
178
+
179
+ inline edgeweight SSSP::distance(node t) const {
180
+ return distances[t];
181
+ }
182
+
183
+ inline bigfloat SSSP::numberOfPaths(node t) const {
184
+ if (!storePaths) {
185
+ throw std::runtime_error("number of paths have not been stored");
186
+ }
187
+ return npaths[t];
188
+ }
189
+
190
+ inline double SSSP::_numberOfPaths(node t) const {
191
+ if (!storePaths) {
192
+ throw std::runtime_error("number of paths have not been stored");
193
+ }
194
+ bigfloat limit = std::numeric_limits<double>::max();
195
+ if (npaths[t] > limit) {
196
+ throw std::overflow_error("number of paths do not fit into a double");
197
+ }
198
+ double res;
199
+ npaths[t].ToDouble(res);
200
+ return res;
201
+ }
202
+
203
+ inline const std::vector<node> &SSSP::getPredecessors(node t) const {
204
+ if (!storePaths) {
205
+ throw std::runtime_error("predecessors have not been stored");
206
+ }
207
+ return previous[t];
208
+ }
209
+
210
+ inline bigfloat SSSP::getNumberOfPaths(node t) const {
211
+ return npaths[t];
212
+ }
213
+
214
+ } /* namespace NetworKit */
215
+
216
+ #endif // NETWORKIT_DISTANCE_SSSP_HPP_