@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,98 @@
1
+ /*
2
+ * Centrality.hpp
3
+ *
4
+ * Created on: 19.02.2014
5
+ * Author: Christian Staudt
6
+ */
7
+
8
+ #ifndef NETWORKIT_CENTRALITY_CENTRALITY_HPP_
9
+ #define NETWORKIT_CENTRALITY_CENTRALITY_HPP_
10
+
11
+ #include <networkit/base/Algorithm.hpp>
12
+ #include <networkit/graph/Graph.hpp>
13
+
14
+ namespace NetworKit {
15
+
16
+ /**
17
+ * @ingroup centrality
18
+ * Abstract base class for centrality measures.
19
+ */
20
+ class Centrality : public Algorithm {
21
+ public:
22
+ /**
23
+ * Constructs the Centrality class for the given Graph @a G. If the centrality scores should be
24
+ * normalized, then set @a normalized to @c true.
25
+ *
26
+ * @param G The graph.
27
+ * @param normalized If set to @c true the scores are normalized in the interval [0,1].
28
+ * @param computeEdgeCentrality If true, compute also edge centralities (for algorithms
29
+ * where this is applicable)
30
+ */
31
+ Centrality(const Graph &G, bool normalized = false, bool computeEdgeCentrality = false);
32
+
33
+ /**
34
+ * Computes centrality scores on the graph passed in constructor.
35
+ */
36
+ void run() override = 0;
37
+
38
+ /**
39
+ * Get a vector containing the centrality score for each node in the graph.
40
+ *
41
+ * @return The centrality scores calculated by @ref run().
42
+ */
43
+ virtual const std::vector<double> &scores() const;
44
+
45
+ /**
46
+ * Get a vector containing the edge centrality score for each edge in the graph (where
47
+ * applicable).
48
+ * @return The edge betweenness scores calculated by @ref run().
49
+ */
50
+ virtual std::vector<double> edgeScores();
51
+
52
+ /**
53
+ * Get a vector of pairs sorted into descending order. Each pair contains a node and the
54
+ * corresponding score calculated by @ref run().
55
+ * @return A vector of pairs.
56
+ */
57
+ virtual std::vector<std::pair<node, double>> ranking();
58
+
59
+ /**
60
+ * Get the centrality score of node @a v calculated by @ref run().
61
+ *
62
+ * @param v A node.
63
+ * @return The betweenness score of node @a v.
64
+ */
65
+ virtual double score(node v);
66
+
67
+ /**
68
+ * Get the theoretical maximum of centrality score in the given graph.
69
+ *
70
+ * @return The maximum centrality score.
71
+ */
72
+ virtual double maximum();
73
+
74
+ /**
75
+ * Compute the centralization of a network with respect to some centrality measure.
76
+
77
+ * The centralization of any network is a measure of how central its most central
78
+ * node is in relation to how central all the other nodes are.
79
+ * Centralization measures then (a) calculate the sum in differences
80
+ * in centrality between the most central node in a network and all other nodes;
81
+ * and (b) divide this quantity by the theoretically largest such sum of
82
+ * differences in any network of the same size.
83
+
84
+ * @return centrality index
85
+ */
86
+ virtual double centralization();
87
+
88
+ protected:
89
+ const Graph &G;
90
+ std::vector<double> scoreData;
91
+ std::vector<double> edgeScoreData;
92
+ bool normalized; // true if scores should be normalized in the interval [0,1]
93
+ bool computeEdgeCentrality;
94
+ };
95
+
96
+ } /* namespace NetworKit */
97
+
98
+ #endif // NETWORKIT_CENTRALITY_CENTRALITY_HPP_
@@ -0,0 +1,107 @@
1
+ /*
2
+ * Closeness.hpp
3
+ *
4
+ * Created on: 03.10.2014
5
+ * Authors: nemes,
6
+ * Eugenio Angriman <angrimae@hu-berlin.de>
7
+ */
8
+
9
+ #ifndef NETWORKIT_CENTRALITY_CLOSENESS_HPP_
10
+ #define NETWORKIT_CENTRALITY_CLOSENESS_HPP_
11
+
12
+ #include <networkit/auxiliary/VectorComparator.hpp>
13
+ #include <networkit/centrality/Centrality.hpp>
14
+
15
+ #include <tlx/container/d_ary_addressable_int_heap.hpp>
16
+
17
+ namespace NetworKit {
18
+
19
+ enum ClosenessVariant {
20
+ STANDARD = 0,
21
+ GENERALIZED = 1,
22
+ standard = STANDARD, // this + following added for backwards compatibility
23
+ generalized = GENERALIZED
24
+ };
25
+
26
+ /**
27
+ * @ingroup centrality
28
+ */
29
+ class Closeness : public Centrality {
30
+
31
+ public:
32
+ /**
33
+ * Constructs the Closeness class for the given Graph @a G. If the closeness
34
+ * scores should be normalized, then set @a normalized to <code>true</code>.
35
+ * The run() method takes O(nm) time, where n is the number of nodes and m
36
+ * is the number of edges of the graph. NOTICE: the graph has to be
37
+ * connected.
38
+ *
39
+ * @param G The graph.
40
+ * @param normalized Set this parameter to <code>false</code> if scores
41
+ * should not be normalized into an interval of [0, 1]. Normalization only
42
+ * for unweighted graphs.
43
+ *
44
+ */
45
+ Closeness(const Graph &G, bool normalized,
46
+ ClosenessVariant variant = ClosenessVariant::STANDARD);
47
+
48
+ /**
49
+ * Old constructor, we keep it for backward compatibility. It computes the
50
+ * standard variant of the closenes.
51
+ *
52
+ * @param G The graph.
53
+ * @param normalized Set this parameter to <code>false</code> if scores
54
+ * should not be normalized into an interval of [0, 1]. Normalization only
55
+ * for unweighted graphs.
56
+ * @param checkConnectedness turn this off if you know the graph is
57
+ * connected.
58
+ *
59
+ */
60
+ Closeness(const Graph &G, bool normalized = true, bool checkConnectedness = true);
61
+
62
+ /**
63
+ * Computes closeness cetrality on the graph passed in constructor.
64
+ */
65
+ void run() override;
66
+
67
+ /*
68
+ * Returns the maximum possible Closeness a node can have in a graph with
69
+ * the same amount of nodes (=a star)
70
+ */
71
+ double maximum() override {
72
+ return normalized ? 1. : (1. / (static_cast<double>(G.upperNodeIdBound() - 1)));
73
+ }
74
+
75
+ private:
76
+ ClosenessVariant variant;
77
+ std::vector<std::vector<count>> uDist;
78
+ std::vector<std::vector<double>> dDist;
79
+ std::vector<std::vector<uint8_t>> visited;
80
+ std::vector<uint8_t> ts;
81
+
82
+ void checkConnectedComponents() const;
83
+ void bfs();
84
+ void dijkstra();
85
+ void incTS();
86
+ void updateScoreData(node u, count reached, double sum) {
87
+ if (sum > 0) {
88
+ if (variant == ClosenessVariant::STANDARD) {
89
+ scoreData[u] = 1.0 / sum;
90
+ } else {
91
+ scoreData[u] = static_cast<double>(reached - 1) / sum
92
+ / static_cast<double>(G.numberOfNodes() - 1);
93
+ }
94
+ } else {
95
+ scoreData[u] = 0.;
96
+ }
97
+ if (normalized)
98
+ scoreData[u] *=
99
+ (variant == ClosenessVariant::STANDARD ? G.numberOfNodes() : reached) - 1.;
100
+ }
101
+
102
+ std::vector<tlx::d_ary_addressable_int_heap<node, 2, Aux::LessInVector<double>>> heaps;
103
+ };
104
+
105
+ } /* namespace NetworKit */
106
+
107
+ #endif // NETWORKIT_CENTRALITY_CLOSENESS_HPP_
@@ -0,0 +1,113 @@
1
+ /*
2
+ * ComplexPaths.hpp
3
+ *
4
+ *
5
+ * Created on:16.06.2023
6
+ * Author: Klaus Ahrens
7
+ * <ahrens@informatik.hu-berlin.de>
8
+ *
9
+ * adapted and reimplemented from
10
+ *
11
+ * https://github.com/drguilbe/complexpaths.git
12
+ *
13
+ * see [ Guilbeault, D., Centola, D. Topological measures for
14
+ * identifying and predicting the spread of complex contagions.
15
+ * Nat Commun 12, 4430 (2021).
16
+ * https://doi.org/10.1038/s41467-021-24704-6 ]
17
+ *
18
+ */
19
+
20
+ #ifndef NETWORKIT_CENTRALITY_COMPLEX_PATHS_HPP_
21
+ #define NETWORKIT_CENTRALITY_COMPLEX_PATHS_HPP_
22
+
23
+ #include <random>
24
+ #include <vector>
25
+
26
+ #include <networkit/base/Algorithm.hpp>
27
+ #include <networkit/graph/Graph.hpp>
28
+ #include <networkit/graph/GraphW.hpp>
29
+
30
+ namespace NetworKit {
31
+
32
+ /**
33
+ * @ingroup centrality
34
+ * computes
35
+ * in Mode::singleNode :
36
+ * complex path graphs (with inner connection degree above threshold)
37
+ * from a start node in Mode::singleNode
38
+ * OR
39
+ * in Mode::allNodes :
40
+ * complex path lengths (maximal distance in complex path graphs for
41
+ * starting nodes u) for all nodes u
42
+ *
43
+ */
44
+
45
+ class ComplexPathAlgorithm : public Algorithm {
46
+ public:
47
+ /**
48
+ * operation modes
49
+ */
50
+ enum Mode { singleNode, allNodes };
51
+
52
+ /**
53
+ * Constructs the ComplexPathAlgorithm class for the given Graph @a G.
54
+ * depending on the @a mode the algorithm the algorithm
55
+ * in @a mode <code>Mode::singleNode</code> starting from @a start
56
+ * constructs a subgraph of @a G in which all inner nodes have
57
+ * more than @a threshold neighbors
58
+ * call <code>getComplexGraph</code> after run to get it
59
+ * in @a mode <code>Mode::allNodes</code> constructs these subgraphs for all nodes
60
+ * and calculates their longest paths from their start nodes
61
+ * these length can be absolute or normalized to [0..1] by calling
62
+ * normalize before or after <code>run</code>
63
+ * call <code>getPLci</code> after run to get these lengths
64
+ *
65
+ * @param G The graph.
66
+ * @param threshold number of neighbors needed
67
+ * @param mode as explained above
68
+ * @param start start node for Mode::singleNode
69
+ */
70
+ ComplexPathAlgorithm(const Graph &G, count threshold = 3, Mode mode = Mode::allNodes,
71
+ node start = none);
72
+
73
+ /**
74
+ * normalize path lengths
75
+ */
76
+ void normalize();
77
+
78
+ void run() override;
79
+
80
+ /**
81
+ * [normalized] results after running in <code>Mode::allNodes</code>
82
+ */
83
+ std::vector<double> getPLci();
84
+
85
+ /**
86
+ * resulting graph after running in <code>Mode::singleNode</code>
87
+ */
88
+ GraphW getComplexGraph();
89
+
90
+ /**
91
+ * nodes in the resulting graph after running in <code>Mode::singleNode</code>
92
+ * which are connected to start by at least threshold paths
93
+ */
94
+ std::vector<node> getAdopters();
95
+
96
+ private:
97
+ const Graph *inputGraph;
98
+ GraphW complexPathGraph;
99
+ std::vector<double> complexPathsLengths;
100
+ std::vector<node> adopters;
101
+ const Mode mode;
102
+ const node start;
103
+ const count threshold;
104
+ bool normPaths;
105
+
106
+ GraphW complexPathsGraph(node seed, count threshold, std::vector<node> *adopters);
107
+ std::vector<double> complexPathLength(count t);
108
+ std::vector<node> generateSeeds(node seed, const Graph &g, count threshold);
109
+ };
110
+
111
+ } /* namespace NetworKit */
112
+
113
+ #endif // NETWORKIT_CENTRALITY_COMPLEX_PATHS_HPP_
@@ -0,0 +1,161 @@
1
+ /*
2
+ * CoreDecomposition.hpp
3
+ *
4
+ * Created on: Oct 28, 2013
5
+ * Author: Lukas Barth, David Weiss, Christian Staudt
6
+ */
7
+
8
+ #ifndef NETWORKIT_CENTRALITY_CORE_DECOMPOSITION_HPP_
9
+ #define NETWORKIT_CENTRALITY_CORE_DECOMPOSITION_HPP_
10
+
11
+ #include <list>
12
+ #include <string>
13
+ #include <vector>
14
+
15
+ #include <networkit/centrality/Centrality.hpp>
16
+ #include <networkit/graph/Graph.hpp>
17
+ #include <networkit/structures/Cover.hpp>
18
+ #include <networkit/structures/Partition.hpp>
19
+
20
+ namespace NetworKit {
21
+
22
+ /**
23
+ * @ingroup centrality
24
+ * Computes k-core decomposition of a graph.
25
+ */
26
+ class CoreDecomposition : public Centrality {
27
+
28
+ public:
29
+ /**
30
+ * Create CoreDecomposition class for graph @a G. The graph may not contain self-loops.
31
+ *
32
+ * Contains the parallel algorithm by
33
+ * Dasari, N.S.; Desh, R.; Zubair, M., "ParK: An efficient algorithm for k-core decomposition on
34
+ * multicore processors," in Big Data (Big Data), * 2014 IEEE International Conference.
35
+ *
36
+ * TODO complexity?
37
+ * @param G The graph.
38
+ * @param normalized If set to @c true the scores are normalized in the interval [0,1].
39
+ * @param enforceBucketQueueAlgorithm If set to @c true, uses a bucket priority queue data
40
+ * structure. This it is generally slower than ParK but may be more flexible. TODO check
41
+ * @param storeNodeOrder If set to @c true, the order of the nodes in ascending order of the
42
+ * cores is stored and can later be returned using getNodeOrder(). Enforces the sequential
43
+ * bucket priority queue algorithm.
44
+ *
45
+ * The algorithm runs in parallel if the usage of a bucket priority queue is not enforced and
46
+ * if the node ids of the input graph are continuous (i.e., numberOfNodes() =
47
+ * upperNodeIdBound()).
48
+ */
49
+ CoreDecomposition(const Graph &G, bool normalized = false,
50
+ bool enforceBucketQueueAlgorithm = false, bool storeNodeOrder = false);
51
+
52
+ /**
53
+ * Perform k-core decomposition of graph passed in constructor.
54
+ */
55
+ void run() override;
56
+
57
+ /**
58
+ * Get the k-cores as a graph cover object.
59
+ *
60
+ * @return the k-cores as a Cover
61
+ */
62
+ Cover getCover() const;
63
+
64
+ /**
65
+ * Get the k-shells as a partition object
66
+ *
67
+ * @return the k-shells as a Partition
68
+ */
69
+ Partition getPartition() const;
70
+
71
+ /**
72
+ * Get maximum core number.
73
+ *
74
+ * @return The maximum core number
75
+ */
76
+ index maxCoreNumber() const;
77
+
78
+ /**
79
+ * Get the theoretical maximum of centrality score in the given graph.
80
+ *
81
+ * @return The theoretical maximum centrality score.
82
+ */
83
+ double maximum() override;
84
+
85
+ /**
86
+ * Get the node order.
87
+ *
88
+ * This is only possible when storeNodeOrder was set.
89
+ *
90
+ * @return The nodes sorted by increasing core number.
91
+ */
92
+ const std::vector<node> &getNodeOrder() const;
93
+
94
+ private:
95
+ index maxCore; // maximum core number of any node in the graph
96
+
97
+ bool enforceBucketQueueAlgorithm; // in case one wants to switch to the alternative algorithm
98
+
99
+ bool canRunInParallel; // signifies if a parallel algorithm can be used
100
+
101
+ bool storeNodeOrder; // signifies if the node order shall be stored
102
+
103
+ std::vector<node> nodeOrder; // Stores the node order, i.e., all nodes sorted by core number
104
+
105
+ /**
106
+ * Perform k-core decomposition of graph passed in constructor.
107
+ * ParK is an algorithm by Naga Shailaja Dasari, Ranjan Desh, and Zubair M.
108
+ * See http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7004366 for details.
109
+ */
110
+ void runWithParK();
111
+
112
+ /**
113
+ * Perform k-core decomposition of graph passed in constructor.
114
+ * The algorithm is based on a bucket priority queue data structure.
115
+ * It is generally slower than ParK but may be more flexible.
116
+ */
117
+ void runWithBucketQueues();
118
+
119
+ /**
120
+ * Determines nodes whose remaining degree equals @a level.
121
+ * @param[in] level Shell number (= level) currently processed.
122
+ * @param[in] degrees Remaining degree for each node.
123
+ * @param[inout] curr Nodes to be processed in current level.
124
+ */
125
+ void scan(index level, const std::vector<count> &degrees, std::vector<node> &curr);
126
+
127
+ /**
128
+ * Determines in parallel the nodes whose remaining degree equals @a level.
129
+ * @param[in] level Shell number (= level) currently processed.
130
+ * @param[in] degrees Remaining degree for each node.
131
+ * @param[inout] curr Nodes to be processed in current level.
132
+ */
133
+ void scanParallel(index level, const std::vector<count> &degrees, std::vector<node> &curr,
134
+ std::vector<char> &active);
135
+
136
+ /**
137
+ * Processes nodes (and their neighbors) identified by previous scan.
138
+ * @param[in] level Shell number (= level) currently processed.
139
+ * @param[inout] degrees Remaining degree for each node.
140
+ * @param[in] curr Nodes to be processed in this call.
141
+ * @param[inout] next Nodes to be processed next in current level (certain neighbors of nodes in
142
+ * curr).
143
+ */
144
+ void processSublevel(index level, std::vector<count> &degrees, const std::vector<node> &curr,
145
+ std::vector<node> &next);
146
+
147
+ /**
148
+ * Processes in parallel nodes (and their neighbors) identified by previous scan.
149
+ * @param[in] level Shell number (= level) currently processed.
150
+ * @param[inout] degrees Remaining degree for each node.
151
+ * @param[in] curr Nodes to be processed in this call.
152
+ * @param[inout] next Nodes to be processed next in current level (certain neighbors of nodes in
153
+ * curr).
154
+ */
155
+ void processSublevelParallel(index level, std::vector<count> &degrees,
156
+ const std::vector<node> &curr, std::vector<node> &next,
157
+ std::vector<char> &active);
158
+ };
159
+
160
+ } /* namespace NetworKit */
161
+ #endif // NETWORKIT_CENTRALITY_CORE_DECOMPOSITION_HPP_
@@ -0,0 +1,55 @@
1
+ /*
2
+ * DegreeCentrality.hpp
3
+ *
4
+ * Created on: 19.02.2014
5
+ * Author: cls
6
+ */
7
+
8
+ #ifndef NETWORKIT_CENTRALITY_DEGREE_CENTRALITY_HPP_
9
+ #define NETWORKIT_CENTRALITY_DEGREE_CENTRALITY_HPP_
10
+
11
+ #include <networkit/centrality/Centrality.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ /**
16
+ * @ingroup centrality
17
+ * Node centrality index which ranks nodes by their degree.
18
+ * Optional normalization by maximum degree.
19
+ */
20
+ class DegreeCentrality : public Centrality {
21
+ public:
22
+ /**
23
+ * Constructs the DegreeCentrality class for the given Graph @a G. If the centrality scores
24
+ * should be normalized, then set @a normalized to <code>true</code>. run() runs in O(n) time if
25
+ * ignoreSelfLoops is false or the graph has no self-loops; otherwise it runs in O(m).
26
+ *
27
+ * @param G The graph.
28
+ * @param normalized Set this parameter to <code>true</code> if scores should be normalized in
29
+ * the interval [0,1].
30
+ * @param outDeg If set to <code>true</code>, computes the centrality based on the out-degrees,
31
+ * otherwise based on the in-degrees.
32
+ * @param ignoreSelfLoops If set to <code>true</code>, self loops will not be taken into
33
+ * account.
34
+ */
35
+ DegreeCentrality(const Graph &G, bool normalized = false, bool outDeg = true,
36
+ bool ignoreSelfLoops = true);
37
+
38
+ /**
39
+ * Computes degree centraity on the graph passed in constructor.
40
+ */
41
+ void run() override;
42
+
43
+ /**
44
+ * @return the theoretical maximum degree centrality, which is $n$ (including the possibility of
45
+ * a self-loop)
46
+ */
47
+ double maximum() override;
48
+
49
+ private:
50
+ bool outDeg, ignoreSelfLoops;
51
+ };
52
+
53
+ } /* namespace NetworKit */
54
+
55
+ #endif // NETWORKIT_CENTRALITY_DEGREE_CENTRALITY_HPP_
@@ -0,0 +1,95 @@
1
+ /*
2
+ * DynApproxBetweenness.hpp
3
+ *
4
+ * Created on: 31.07.2014
5
+ * Author: ebergamini
6
+ */
7
+
8
+ #ifndef NETWORKIT_CENTRALITY_DYN_APPROX_BETWEENNESS_HPP_
9
+ #define NETWORKIT_CENTRALITY_DYN_APPROX_BETWEENNESS_HPP_
10
+
11
+ #include <networkit/base/DynAlgorithm.hpp>
12
+ #include <networkit/centrality/Centrality.hpp>
13
+ #include <networkit/components/StronglyConnectedComponents.hpp>
14
+ #include <networkit/distance/DynSSSP.hpp>
15
+ #include <networkit/dynamics/GraphEvent.hpp>
16
+ #include <networkit/graph/GraphW.hpp>
17
+
18
+ #include <algorithm>
19
+ #include <cmath>
20
+ #include <memory>
21
+ #include <omp.h>
22
+
23
+ namespace NetworKit {
24
+
25
+ /**
26
+ * @ingroup centrality
27
+ * Interface for dynamic approximated betweenness centrality algorithm.
28
+ */
29
+ class DynApproxBetweenness : public Centrality, public DynAlgorithm {
30
+
31
+ public:
32
+ /**
33
+ * Implementation from the algorithm from "Approximating Betweenness Centrality in Fully-dynamic
34
+ * Networks" from Internet Mathematics vol. 5 by Elisabetta Bergamini and Henning Meyerhenke
35
+ * approximates the betweenness of all vertices so that the scores are within an additive error
36
+ * @a epsilon with probability at least (1- @a delta). The values are normalized by default.
37
+ *
38
+ * @param G the graph
39
+ * @param storePredecessors keep track of the lists of predecessors?
40
+ * @param epsilon maximum additive error
41
+ * @param delta probability that the values are within the error guarantee
42
+ * @param universalConstant the universal constant to be used in
43
+ * computing the sample size. It is 0.5 by default.
44
+ */
45
+ DynApproxBetweenness(const Graph &G, double epsilon = 0.01, double delta = 0.1,
46
+ bool storePredecessors = true, double universalConstant = 0.5);
47
+
48
+ /**
49
+ * Runs the static approximated betweenness centrality algorithm on the initial graph.
50
+ */
51
+ void run() override;
52
+
53
+ /**
54
+ * Updates the betweenness centralities after an edge insertions on the graph.
55
+ *
56
+ * @param e The edge insertion or deletion.
57
+ */
58
+ void update(GraphEvent e) override;
59
+
60
+ /**
61
+ * Updates the betweenness centralities after a batch of edge insertions on the graph.
62
+ *
63
+ * @param batch The batch of edge insertions and/or deletions.
64
+ */
65
+ void updateBatch(const std::vector<GraphEvent> &batch) override;
66
+
67
+ /**
68
+ * Get number of path samples used for last calculation
69
+ */
70
+ count getNumberOfSamples() const noexcept;
71
+
72
+ private:
73
+ void sampleNewPaths(count start, count end);
74
+ double epsilon; //!< maximum error
75
+ double delta;
76
+ bool storePreds;
77
+ const double universalConstant;
78
+ count r;
79
+ std::vector<std::unique_ptr<DynSSSP>> sssp;
80
+ std::vector<std::vector<count>> npaths;
81
+
82
+ std::vector<node> u;
83
+ std::vector<node> v;
84
+ std::vector<std::vector<node>> sampledPaths;
85
+
86
+ static constexpr edgeweight infDist = std::numeric_limits<edgeweight>::max();
87
+
88
+ std::vector<node> sortComponentsTopologically(GraphW &sccDAG, StronglyConnectedComponents &scc);
89
+
90
+ count computeVDdirected();
91
+ };
92
+
93
+ } /* namespace NetworKit */
94
+
95
+ #endif // NETWORKIT_CENTRALITY_DYN_APPROX_BETWEENNESS_HPP_