@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,31 @@
1
+ #ifndef NETWORKIT_BASE_DYN_ALGORITHM_HPP_
2
+ #define NETWORKIT_BASE_DYN_ALGORITHM_HPP_
3
+
4
+ #include <stdexcept>
5
+ #include <string>
6
+ #include <networkit/dynamics/GraphEvent.hpp>
7
+
8
+ namespace NetworKit {
9
+
10
+ class DynAlgorithm {
11
+
12
+ public:
13
+ /**
14
+ * Virtual default destructor
15
+ */
16
+ virtual ~DynAlgorithm() = default;
17
+
18
+ /**
19
+ * The generic update method for updating data structure after an update.
20
+ */
21
+ virtual void update(GraphEvent e) = 0;
22
+
23
+ /**
24
+ * The generic update method for updating data structure after a batch of updates.
25
+ */
26
+ virtual void updateBatch(const std::vector<GraphEvent> &batch) = 0;
27
+ };
28
+
29
+ } // namespace NetworKit
30
+
31
+ #endif // NETWORKIT_BASE_DYN_ALGORITHM_HPP_
@@ -0,0 +1,62 @@
1
+ /*
2
+ * ApproxBetweenness.hpp
3
+ *
4
+ * Created on: 09.04.2014
5
+ * Author: cls
6
+ */
7
+
8
+ #ifndef NETWORKIT_CENTRALITY_APPROX_BETWEENNESS_HPP_
9
+ #define NETWORKIT_CENTRALITY_APPROX_BETWEENNESS_HPP_
10
+
11
+ #include <networkit/centrality/Centrality.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ /**
16
+ * @ingroup centrality
17
+ * Approximation of betweenness centrality according to algorithm described in
18
+ * Matteo Riondato and Evgenios M. Kornaropoulos: Fast Approximation of Betweenness Centrality
19
+ * through Sampling
20
+ */
21
+ class ApproxBetweenness final : public Centrality {
22
+
23
+ public:
24
+ /**
25
+ * The algorithm approximates the betweenness of all vertices so that the scores are
26
+ * within an additive error @a epsilon with probability at least (1- @a delta).
27
+ * The values are normalized by default. The run() method takes O(m) time per sample, where m
28
+ * is the number of edges of the graph. The number of samples is proportional to
29
+ * universalConstant/epsilon^2. Although this algorithm has a theoretical guarantee, the
30
+ * algorithm implemented in Estimate Betweenness usually performs better in practice Therefore,
31
+ * we recommend to use EstimateBetweenness if no theoretical guarantee is needed.
32
+ *
33
+ * @param G the graph
34
+ * @param epsilon maximum additive error
35
+ * @param delta probability that the values are within the error guarantee
36
+ * @param universalConstant the universal constant to be used in
37
+ * computing the sample size. It is 1 by default. Some references suggest
38
+ * using 0.5, but there is no guarantee in this case.
39
+ */
40
+ ApproxBetweenness(const Graph &G, double epsilon = 0.01, double delta = 0.1,
41
+ double universalConstant = 1.0);
42
+
43
+ /**
44
+ * Computes betweenness approximation on the graph passed in constructor.
45
+ */
46
+ void run() override;
47
+
48
+ /**
49
+ * @return number of samples taken in last run
50
+ */
51
+ count numberOfSamples() const;
52
+
53
+ private:
54
+ const double epsilon;
55
+ const double delta;
56
+ count r; // number of samples taken in last run
57
+ double universalConstant;
58
+ };
59
+
60
+ } /* namespace NetworKit */
61
+
62
+ #endif // NETWORKIT_CENTRALITY_APPROX_BETWEENNESS_HPP_
@@ -0,0 +1,136 @@
1
+ /*
2
+ * ApproxCloseness.hpp
3
+ *
4
+ * Created on: Dec 8, 2015
5
+ * Author: Sarah Lutteropp (uwcwa@student.kit.edu) and Michael Wegner
6
+ * (michael.wegner@student.kit.edu)
7
+ */
8
+
9
+ #ifndef NETWORKIT_CENTRALITY_APPROX_CLOSENESS_HPP_
10
+ #define NETWORKIT_CENTRALITY_APPROX_CLOSENESS_HPP_
11
+
12
+ #include <limits>
13
+ #include <networkit/centrality/Centrality.hpp>
14
+
15
+ namespace NetworKit {
16
+
17
+ /**
18
+ * @ingroup centrality
19
+ * Approximation of closeness centrality according to algorithm described in
20
+ * Cohen et al., Computing Classic Closeness Centrality, at Scale
21
+ */
22
+ class ApproxCloseness : public Centrality {
23
+
24
+ public:
25
+ enum ClosenessType { INBOUND, OUTBOUND, SUM };
26
+
27
+ using CLOSENESS_TYPE = ClosenessType; // enum alias for backwards compatibility
28
+
29
+ /**
30
+ * Constructs an instance of the ApproxCloseness class for @a graph using @a nSamples during the
31
+ * run() method. The @a epsilon parameter (standard = 0.1) is used to control the switch between
32
+ * sampling and pivoting. Using @a epsilon = 0, the algorithm only uses sampling. (see Cohen,
33
+ * Edith, et al. "Computing classic closeness centrality, at scale." Proceedings of the second
34
+ * ACM conference on Online social networks. ACM, 2014.). The running time is proportional to
35
+ * nSamples * m, where m is the number of edges. Notice: the input graph has to be connected.
36
+ * @param graph input graph
37
+ * @param nSamples user defined number of samples
38
+ * @param epsilon Value in [0, infty) controlling the switch between sampling and
39
+ * pivoting. When using 0, only sampling is used. Standard is 0.1.
40
+ * @param normalized normalize centrality values in interval [0,1]
41
+ * @param type use in- or outbound centrality or the sum of both (see paper) for
42
+ * computing closeness on directed graph. If G is undirected, this can be ignored.
43
+ */
44
+ ApproxCloseness(const Graph &G, count nSamples, double epsilon = 0.1, bool normalized = false,
45
+ CLOSENESS_TYPE type = OUTBOUND);
46
+
47
+ /**
48
+ * Computes closeness approximation on the graph passed in constructor.
49
+ */
50
+ void run() override;
51
+
52
+ /**
53
+ * Returns the maximum possible Closeness a node can have in a graph with the same amount of
54
+ * nodes (=a star)
55
+ */
56
+ double maximum() override;
57
+
58
+ /**
59
+ * @return The square error when closeness centrality has been computed for an undirected graph.
60
+ */
61
+ std::vector<double> getSquareErrorEstimates();
62
+
63
+ private:
64
+ count nSamples;
65
+ double epsilon;
66
+
67
+ /** \sum_{i \in L(j) \cap C} d_{ji} for every j \in V */
68
+ std::vector<double> LCSum;
69
+
70
+ /** |L(j) \cap C| for every j \in V */
71
+ std::vector<count> LCNum;
72
+
73
+ /** \sum_{i \in L(j) \cap C} d_{ji}^2 for every j \in V */
74
+ std::vector<double> LCSumSQ;
75
+
76
+ /** \sum_{i \in HC(j)} d_{ji} for every j \in V */
77
+ std::vector<double> HCSum;
78
+
79
+ /** \frac{1}{|HC(j)|} * \sum_{i \in HC(j)} (d_{ij} - d_{c(j)j})^2 for every j \in V */
80
+ std::vector<double> HCSumSQErr;
81
+
82
+ /** \sum_{i \in H(j)} d_{c(j)i} for every j \in V */
83
+ std::vector<double> HSum;
84
+
85
+ /** |H(j)| for every j \in V */
86
+ std::vector<count> HNum;
87
+
88
+ /** Reachability estimation **/
89
+ std::vector<double> R;
90
+
91
+ std::vector<double> SQErrEst;
92
+
93
+ // divided by two s.t. infDist + infDist produces no overflow
94
+ const edgeweight infDist = std::floor(std::numeric_limits<edgeweight>::max() / 2.0);
95
+
96
+ ClosenessType type = ApproxCloseness::ClosenessType::OUTBOUND;
97
+
98
+ void estimateClosenessForUndirectedGraph();
99
+ void estimateClosenessForDirectedGraph(bool outbound);
100
+ inline void computeClosenessForDirectedWeightedGraph(bool outbound);
101
+ inline void computeClosenessForDirectedUnweightedGraph(bool outbound);
102
+
103
+ /**
104
+ * Runs a multi-source Dijkstra from all @a samples and sets the closest pivot and the distance
105
+ * from it for every node in G.
106
+ * @param samples The sampled nodes that are the pivot nodes.
107
+ * @param pivot[out] Stores the closest pivot (sample) from every node.
108
+ * @param delta[out] Stores the distance d(u,pivot(u)) for every node u.
109
+ */
110
+ void computeClosestPivot(const std::vector<node> &samples, std::vector<node> &pivot,
111
+ std::vector<edgeweight> &delta);
112
+
113
+ /**
114
+ * Runs the algorithm of Cohen et al. for a single pivot.
115
+ * @param i
116
+ * @param pivot
117
+ * @param delta
118
+ * @param samples
119
+ */
120
+ void runOnPivot(index i, const std::vector<node> &pivot, const std::vector<edgeweight> &delta,
121
+ const std::vector<node> &samples);
122
+
123
+ /**
124
+ * Orders the nodes of G in increasing distance from @a pivot. The distances from @a pivot are
125
+ * stored in @a pivotDist
126
+ * @param pivot
127
+ * @param order[out]
128
+ * @param pivotDist[out]
129
+ */
130
+ void orderNodesByIncreasingDistance(node pivot, std::vector<node> &order,
131
+ std::vector<edgeweight> &pivotDist);
132
+ };
133
+
134
+ } /* namespace NetworKit */
135
+
136
+ #endif // NETWORKIT_CENTRALITY_APPROX_CLOSENESS_HPP_
@@ -0,0 +1,156 @@
1
+ /*
2
+ * ApproxElectricalCloseness.hpp
3
+ *
4
+ * Created on: 17.10.2019
5
+ * Authors: Eugenio Angriman <angrimae@hu-berlin.de>
6
+ * Alexander van der Grinten <avdgrinten@hu-berlin.de>
7
+ */
8
+
9
+ #ifndef NETWORKIT_CENTRALITY_APPROX_ELECTRICAL_CLOSENESS_HPP_
10
+ #define NETWORKIT_CENTRALITY_APPROX_ELECTRICAL_CLOSENESS_HPP_
11
+
12
+ #include <cmath>
13
+ #include <memory>
14
+ #include <random>
15
+ #include <unordered_map>
16
+ #include <vector>
17
+
18
+ #include <networkit/centrality/Centrality.hpp>
19
+ #include <networkit/components/BiconnectedComponents.hpp>
20
+ #include <networkit/distance/Diameter.hpp>
21
+ #include <networkit/graph/Graph.hpp>
22
+
23
+ namespace NetworKit {
24
+
25
+ /**
26
+ * @ingroup centrality
27
+ */
28
+ class ApproxElectricalCloseness final : public Centrality {
29
+
30
+ public:
31
+ /**
32
+ * Approximates the electrical closeness of all the vertices of the graph by approximating the
33
+ * diagonal of the laplacian's pseudoinverse of @a G. Every element of the diagonal is
34
+ * guaranteed to have a maximum absolute error of @a epsilon. Based on "Approximation of the
35
+ * Diagonal of a Laplacian’s Pseudoinverse for Complex Network Analysis", Angriman et al., ESA
36
+ * 2020. The algorithm does two steps: solves a linear system and samples uniform spanning trees
37
+ * (USTs). The parameter @a kappa balances the tolerance of solver for the linear system and the
38
+ * number of USTs to be sampled. A high value of @a kappa raises the tolerance (solver converges
39
+ * faster) but more USTs need to be sampled, vice versa for a low value of @a kappa.
40
+ *
41
+ * @param G The input graph.
42
+ * @param epsilon Maximum absolute error of the elements in the diagonal.
43
+ * @param kappa Balances the tolerance of the solver for the linear system and the number of
44
+ * USTs to be sampled.
45
+ */
46
+ ApproxElectricalCloseness(const Graph &G, double epsilon = 0.1, double kappa = 0.3);
47
+
48
+ ~ApproxElectricalCloseness() override = default;
49
+
50
+ /**
51
+ * Run the algorithm.
52
+ */
53
+ void run() override;
54
+
55
+ /**
56
+ * Return an epsilon-approximation of the diagonal of the laplacian's pseudoinverse.
57
+ *
58
+ * @return Approximation of the diagonal of the laplacian's pseudoinverse.
59
+ */
60
+ const std::vector<double> &getDiagonal() const {
61
+ assureFinished();
62
+ return diagonal;
63
+ }
64
+
65
+ /**
66
+ * Compute and return the nearly-exact values of the diagonal of the laplacian's pseudoinverse.
67
+ * The values are computed by solving Lx = e_u - 1 / n for every vertex u of the graph with a
68
+ * LAMG solver.
69
+ *
70
+ * @param tol Tolerance for the LAMG solver.
71
+ *
72
+ * @return Nearly-exact values of the diagonal of the laplacian's pseudoinverse.
73
+ */
74
+ std::vector<double> computeExactDiagonal(double tol = 1e-9) const;
75
+
76
+ private:
77
+ const double epsilon, delta, kappa;
78
+ node root = 0;
79
+ count rootEcc;
80
+
81
+ // #of BFSs used to estimate a vertex with low eccentricity.
82
+ static constexpr uint32_t sweeps = 10;
83
+
84
+ enum class NodeStatus : unsigned char {
85
+ NOT_IN_COMPONENT,
86
+ IN_SPANNING_TREE,
87
+ NOT_VISITED,
88
+ VISITED
89
+ };
90
+
91
+ // Used to mark the status of each node, one vector per thread
92
+ std::vector<std::vector<NodeStatus>> statusGlobal;
93
+
94
+ std::unique_ptr<BiconnectedComponents> bccPtr;
95
+
96
+ // Nodes in each biconnected components sorted by their degree.
97
+ std::vector<std::vector<node>> sequences;
98
+
99
+ // Pointers to the parent of the UST, one vector per thread
100
+ std::vector<std::vector<node>> parentGlobal;
101
+
102
+ // Index of the parent component of the current component (after the topological order has been
103
+ // determined)
104
+ std::vector<index> biParent;
105
+ // Node within the biconnected component that points to the node in the parent component
106
+ std::vector<node> biAnchor;
107
+
108
+ // Topological order of the biconnected components
109
+ std::vector<index> topOrder;
110
+
111
+ // Non-normalized approx effective resistance, one per thread.
112
+ // Values could be negative, so we use signed integers.
113
+ std::vector<std::vector<int64_t>> approxEffResistanceGlobal;
114
+
115
+ // Pseudo-inverse diagonal
116
+ std::vector<double> diagonal;
117
+
118
+ // Timestamps for DFS
119
+ std::vector<std::vector<count>> tVisitGlobal, tFinishGlobal;
120
+
121
+ // Random number generators
122
+ std::vector<std::mt19937_64> generators;
123
+ std::vector<std::uniform_int_distribution<index>> degDist;
124
+
125
+ // Parent pointers of the bfs tree
126
+ std::vector<node> bfsParent;
127
+
128
+ // Nodes sequences: Wilson's algorithm runs faster if we start the random walks following a
129
+ // specific sequence of nodes. In this function we compute those sequences.
130
+ void computeNodeSequence();
131
+
132
+ // Adjacency list for trees: additional data structure to speed-up the DFS
133
+ std::vector<std::vector<node>> ustChildPtrGlobal;
134
+ std::vector<std::vector<node>> ustSiblingPtrGlobal;
135
+
136
+ void computeBFSTree();
137
+ void sampleUST();
138
+ void dfsUST();
139
+ void aggregateUST();
140
+
141
+ node approxMinEccNode();
142
+
143
+ count computeNumberOfUSTs() const;
144
+
145
+ #ifdef NETWORKIT_SANITY_CHECKS
146
+ // Debugging methods
147
+ void checkBFSTree() const;
148
+ void checkUST() const;
149
+ void checkTwoNodesSequence(const std::vector<node> &sequence) const;
150
+ void checkTimeStamps() const;
151
+ #endif // NETWORKIT_SANITY_CHECKS
152
+ };
153
+
154
+ } // namespace NetworKit
155
+
156
+ #endif // NETWORKIT_CENTRALITY_APPROX_ELECTRICAL_CLOSENESS_HPP_
@@ -0,0 +1,124 @@
1
+ /*
2
+ * ApproxGroupBetweenness.hpp
3
+ *
4
+ * Created on: 13.03.2018
5
+ * Author: Marvin Pogoda
6
+ */
7
+ #ifndef NETWORKIT_CENTRALITY_APPROX_GROUP_BETWEENNESS_HPP_
8
+ #define NETWORKIT_CENTRALITY_APPROX_GROUP_BETWEENNESS_HPP_
9
+
10
+ #include <omp.h>
11
+ #include <ranges>
12
+
13
+ #include <networkit/base/Algorithm.hpp>
14
+ #include <networkit/distance/BFS.hpp>
15
+ #include <networkit/graph/Graph.hpp>
16
+
17
+ namespace NetworKit {
18
+
19
+ class ApproxGroupBetweenness final : public Algorithm {
20
+
21
+ public:
22
+ /** Constructs the ApproxGroupBetweenness class for a given undirected graph
23
+ * @a G.
24
+ * @param groupSize Size of the set of nodes.
25
+ * @aram epsilon Determines the accuracy of the approximation.
26
+ */
27
+ ApproxGroupBetweenness(const Graph &G, count groupSize, double epsilon);
28
+
29
+ /**
30
+ * Approximately computes a set of nodes with maximum groupbetweenness. Based
31
+ * on the algorithm of Mahmoody,Tsourakakis and Upfal.
32
+ */
33
+ void run() override;
34
+
35
+ /**
36
+ * Returns a vector of nodes containing the set of nodes with approximated
37
+ * maximum group betweenness.
38
+ */
39
+ std::vector<node> groupMaxBetweenness() const;
40
+
41
+ /**
42
+ * Returns the score of the given set.
43
+ */
44
+ double scoreOfGroup(const std::vector<node> &S, bool normalized = false) const;
45
+
46
+ protected:
47
+ const Graph &G;
48
+ count n;
49
+ std::vector<node> maxGroup;
50
+ const count groupSize;
51
+ const double epsilon;
52
+ };
53
+
54
+ inline std::vector<node> ApproxGroupBetweenness::groupMaxBetweenness() const {
55
+ assureFinished();
56
+ return maxGroup;
57
+ }
58
+
59
+ inline double ApproxGroupBetweenness::scoreOfGroup(const std::vector<node> &S,
60
+ const bool normalized) const {
61
+ if (S.empty())
62
+ throw std::runtime_error("Error: input group is empty");
63
+
64
+ count z = G.upperNodeIdBound();
65
+ std::vector<bool> inGroup(z);
66
+ for (node u : S) {
67
+ if (!G.hasNode(u))
68
+ throw std::runtime_error("Error, input group contains nodes not in the graph");
69
+ if (inGroup[u])
70
+ WARN("Input group contains duplicate nodes!");
71
+ inGroup[u] = true;
72
+ }
73
+
74
+ std::vector<double> scorePerThread(omp_get_max_threads());
75
+ std::vector<std::vector<double>> deps(omp_get_max_threads(), std::vector<double>(n));
76
+ std::vector<BFS> bfss(omp_get_max_threads(), BFS(G, 0, true, true));
77
+
78
+ auto computeDeps = [&](node source) {
79
+ auto &dep = deps[omp_get_thread_num()];
80
+ std::ranges::fill(dep, 0);
81
+
82
+ BFS &bfs = bfss[omp_get_thread_num()];
83
+ bfs.setSource(source);
84
+ bfs.run();
85
+
86
+ double weight;
87
+ auto sortedNodes = bfs.getNodesSortedByDistance();
88
+ for (auto it = sortedNodes.rbegin(); it != sortedNodes.rend(); ++it) {
89
+ node target = *it;
90
+ for (node pred : bfs.getPredecessors(target)) {
91
+ (bfs.numberOfPaths(pred) / bfs.numberOfPaths(target)).ToDouble(weight);
92
+ if (inGroup[pred]) {
93
+ if (pred != source) {
94
+ scorePerThread[omp_get_thread_num()] +=
95
+ dep[pred] + weight * (1 + dep[target]);
96
+ }
97
+ } else {
98
+ dep[pred] += weight * (1 + dep[target]);
99
+ }
100
+ }
101
+ }
102
+ };
103
+
104
+ G.balancedParallelForNodes(computeDeps);
105
+
106
+ double result = 0;
107
+ for (double curScore : scorePerThread)
108
+ result += curScore;
109
+
110
+ if (normalized) {
111
+ double nPairs = static_cast<double>((z - S.size()) * (z - S.size() - 1));
112
+ if (nPairs <= 0)
113
+ return 0;
114
+ if (!G.isDirected())
115
+ nPairs /= 2;
116
+ result /= nPairs;
117
+ }
118
+
119
+ return result;
120
+ }
121
+
122
+ } /* namespace NetworKit */
123
+
124
+ #endif // NETWORKIT_CENTRALITY_APPROX_GROUP_BETWEENNESS_HPP_
@@ -0,0 +1,84 @@
1
+ /*
2
+ * ApproxSpanningEdge.hpp
3
+ *
4
+ * Created on: 29.09.2019
5
+ * Authors: Eugenio Angriman <angrimae@hu-berlin.de>
6
+ *
7
+ */
8
+
9
+ #ifndef NETWORKIT_CENTRALITY_APPROX_SPANNING_EDGE_HPP_
10
+ #define NETWORKIT_CENTRALITY_APPROX_SPANNING_EDGE_HPP_
11
+
12
+ #include <vector>
13
+
14
+ #include <networkit/base/Algorithm.hpp>
15
+ #include <networkit/graph/Graph.hpp>
16
+
17
+ namespace NetworKit {
18
+
19
+ /**
20
+ * @ingroup centrality
21
+ */
22
+ class ApproxSpanningEdge final : public Algorithm {
23
+
24
+ enum class NodeStatus : unsigned char {
25
+ NOT_IN_COMPONENT,
26
+ IN_SPANNING_TREE,
27
+ IN_RANDOM_WALK,
28
+ NOT_VISITED
29
+ };
30
+
31
+ public:
32
+ /**
33
+ * Computes an epsilon-approximation of the spanning edge centrality of every edge of the input
34
+ * graph with probability (1 - 1/n), based on "Efficient Algorithms for Spanning Tree
35
+ * Centrality", Hayashi et al., IJCAI, 2016. This implementation also supports multi-threading.
36
+ *
37
+ * @param G An undirected graph.
38
+ * @param eps Maximum additive error.
39
+ */
40
+ ApproxSpanningEdge(const Graph &G, double eps = 0.1);
41
+
42
+ ~ApproxSpanningEdge() override = default;
43
+
44
+ /**
45
+ * Executes the algorithm.
46
+ */
47
+ void run() override;
48
+
49
+ /**
50
+ * Return the spanning edge approximation for each edge of the graph.
51
+ *
52
+ * @return Spanning edge approximation for each edge of the input graph.
53
+ */
54
+ std::vector<double> scores() const;
55
+
56
+ private:
57
+ const Graph &G;
58
+ double eps;
59
+ double delta;
60
+ count nSamples;
61
+
62
+ // For each thread, marks which nodes have been visited by the random walk.
63
+ std::vector<std::vector<NodeStatus>> visitedNodes;
64
+
65
+ // For each thread, counts how many times each edge appears in a random
66
+ // spanning tree.
67
+ std::vector<std::vector<count>> edgeScores;
68
+
69
+ // Sequence of biconnected components.
70
+ std::vector<std::vector<node>> sequences;
71
+
72
+ // Parent pointers.
73
+ std::vector<std::vector<node>> parents;
74
+
75
+ // Ids of edge connecting the nodes to their parents.
76
+ std::vector<std::vector<edgeid>> parentsEdgeIds;
77
+
78
+ // Samples a spanning tree uniformly at random.
79
+ void sampleUST();
80
+ };
81
+
82
+ } // namespace NetworKit
83
+
84
+ #endif // NETWORKIT_CENTRALITY_APPROX_SPANNING_EDGE_HPP_
@@ -0,0 +1,47 @@
1
+ /*
2
+ * Betweenness.hpp
3
+ *
4
+ * Created on: 19.02.2014
5
+ * Author: cls, ebergamini
6
+ */
7
+
8
+ #ifndef NETWORKIT_CENTRALITY_BETWEENNESS_HPP_
9
+ #define NETWORKIT_CENTRALITY_BETWEENNESS_HPP_
10
+
11
+ #include <networkit/centrality/Centrality.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ /**
16
+ * @ingroup centrality
17
+ */
18
+ class Betweenness final : public Centrality {
19
+ public:
20
+ /**
21
+ * Constructs the Betweenness class for the given Graph @a G. If the betweenness scores should
22
+ * be normalized, then set @a normalized to <code>true</code>. The run() method takes O(nm)
23
+ * time, where n is the number of nodes and m is the number of edges of the graph.
24
+ *
25
+ * @param G The graph.
26
+ * @param normalized Set this parameter to <code>true</code> if scores should be normalized in
27
+ * the interval [0,1].
28
+ * @param computeEdgeCentrality Set this parameter to <code>true</code> if edge betweenness
29
+ * should be computed as well.
30
+ */
31
+ Betweenness(const Graph &G, bool normalized = false, bool computeEdgeCentrality = false);
32
+
33
+ /**
34
+ * Computes betweenness scores on the graph passed in constructor.
35
+ */
36
+ void run() override;
37
+
38
+ /*
39
+ * Returns the maximum possible Betweenness a node can have in a graph with the same amount of
40
+ * nodes (=a star)
41
+ */
42
+ double maximum() override;
43
+ };
44
+
45
+ } /* namespace NetworKit */
46
+
47
+ #endif // NETWORKIT_CENTRALITY_BETWEENNESS_HPP_