@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,62 @@
1
+ /*
2
+ * KatzCentrality.hpp
3
+ *
4
+ * Created on: 09.01.2015
5
+ * Author: Henning
6
+ */
7
+
8
+ #ifndef NETWORKIT_CENTRALITY_KATZ_CENTRALITY_HPP_
9
+ #define NETWORKIT_CENTRALITY_KATZ_CENTRALITY_HPP_
10
+
11
+ #include <networkit/centrality/Centrality.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ enum EdgeDirection : char {
16
+ IN_EDGES = 0,
17
+ OUT_EDGES = 1,
18
+ InEdges = IN_EDGES, // this + following added for backwards compatibility
19
+ OutEdges = OUT_EDGES
20
+ };
21
+
22
+ /**
23
+ * @ingroup centrality
24
+ * Computes the Katz centrality of the graph.
25
+ * NOTE: There is an inconsistency in the definition in Newman's book (Ch. 7) regarding
26
+ * directed graphs; we follow the verbal description, which requires to sum over the incoming
27
+ * edges (as opposed to outgoing ones).
28
+ */
29
+ class KatzCentrality : public Centrality {
30
+ std::vector<double> values;
31
+
32
+ protected:
33
+ const double alpha; // damping
34
+ const double beta; // constant centrality amount
35
+ const double tol; // error tolerance
36
+ static double defaultAlpha(const Graph &G);
37
+
38
+ public:
39
+ /**
40
+ * Constructs a KatzCentrality object for the given Graph @a G. @a tol defines the tolerance for
41
+ * convergence. Each iteration of the algorithm requires O(m) time. The number of iterations
42
+ * depends on how long it takes to reach the convergence.
43
+ *
44
+ * @param[in] G The graph.
45
+ * @param[in] alpha Damping of the matrix vector product result, must be non negative.
46
+ * Leave this parameter to 0 to use the default value 1 / (max_degree + 1).
47
+ * @param[in] beta Constant value added to the centrality of each vertex
48
+ * @param[in] tol The tolerance for convergence.
49
+ */
50
+ KatzCentrality(const Graph &G, double alpha = 0, double beta = 0.1, double tol = 1e-8);
51
+
52
+ /**
53
+ * Computes katz centrality on the graph passed in constructor.
54
+ */
55
+ void run() override;
56
+
57
+ // Whether to count in-edges or out-edges
58
+ EdgeDirection edgeDirection = EdgeDirection::IN_EDGES;
59
+ };
60
+
61
+ } /* namespace NetworKit */
62
+ #endif // NETWORKIT_CENTRALITY_KATZ_CENTRALITY_HPP_
@@ -0,0 +1,44 @@
1
+ /*
2
+ * LaplacianCentrality.hpp
3
+ *
4
+ * Created on: 08.03.2018
5
+ * Author: Kolja Esders
6
+ */
7
+
8
+ #ifndef NETWORKIT_CENTRALITY_LAPLACIAN_CENTRALITY_HPP_
9
+ #define NETWORKIT_CENTRALITY_LAPLACIAN_CENTRALITY_HPP_
10
+
11
+ #include <networkit/centrality/Centrality.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ /**
16
+ * @ingroup centrality
17
+ * Computes the Laplacian centrality of the graph.
18
+ *
19
+ * The implementation is a simplification of the original algorithm proposed by Qi et al. in
20
+ * "Laplacian centrality: A new centrality measure for weighted networks".
21
+ *
22
+ * See https://dl.acm.org/citation.cfm?id=2181343.2181780 for details.
23
+ */
24
+ class LaplacianCentrality : public Centrality {
25
+ public:
26
+ /**
27
+ * Constructs a LaplacianCentrality object for the given Graph @a G.
28
+ *
29
+ * @param G The graph.
30
+ * @param normalized Whether scores should be normalized by the energy of the full graph.
31
+ */
32
+ LaplacianCentrality(const Graph &G, bool normalized = false);
33
+
34
+ /**
35
+ * Computes the Laplacian centrality on the graph passed in the constructor.
36
+ *
37
+ * See https://dl.acm.org/citation.cfm?id=2181343.2181780 for more details about
38
+ * Laplacian centrality.
39
+ */
40
+ void run() override;
41
+ };
42
+
43
+ } /* namespace NetworKit */
44
+ #endif // NETWORKIT_CENTRALITY_LAPLACIAN_CENTRALITY_HPP_
@@ -0,0 +1,60 @@
1
+ /*
2
+ * LocalClusteringCoefficient.hpp
3
+ *
4
+ * Created on: 31.03.2015
5
+ * Author: maxv
6
+ */
7
+
8
+ #ifndef NETWORKIT_CENTRALITY_LOCAL_CLUSTERING_COEFFICIENT_HPP_
9
+ #define NETWORKIT_CENTRALITY_LOCAL_CLUSTERING_COEFFICIENT_HPP_
10
+
11
+ #include <networkit/centrality/Centrality.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ /**
16
+ * @ingroup centrality
17
+ */
18
+ class LocalClusteringCoefficient : public Centrality {
19
+ public:
20
+ /**
21
+ * Constructs the LocalClusteringCoefficient class for the given Graph @a G. If the local
22
+ * clustering coefficient scores should be normalized, then set @a normalized to
23
+ * <code>true</code>. The graph may not contain self-loops.
24
+ *
25
+ * There are two algorithms available. The trivial (parallel) algorithm needs only a small
26
+ * amount of additional memory. The turbo mode adds a (sequential, but fast) pre-processing step
27
+ * using ideas from [0]. This reduces the running time significantly for most graphs. However,
28
+ * the turbo mode needs O(m) additional memory. In practice this should be a bit less than half
29
+ * of the memory that is needed for the graph itself. The turbo mode is particularly effective
30
+ * for graphs with nodes of very high degree and a very skewed degree distribution.
31
+ *
32
+ * [0] Triangle Listing Algorithms: Back from the Diversion
33
+ * Mark Ortmann and Ulrik Brandes * 2014 Proceedings of the Sixteenth Workshop on Algorithm
34
+ * Engineering and Experiments (ALENEX). 2014, 1-8
35
+ *
36
+ * @param G The graph.
37
+ * @param turbo If the turbo mode shall be activated.
38
+ * TODO running time
39
+ */
40
+ LocalClusteringCoefficient(const Graph &G, bool turbo = false);
41
+
42
+ /**
43
+ * Computes the local clustering coefficient on the graph passed in constructor.
44
+ */
45
+ void run() override;
46
+
47
+ /**
48
+ * Get the theoretical maximum of centrality score in the given graph.
49
+ *
50
+ * @return The maximum centrality score.
51
+ */
52
+ double maximum() override;
53
+
54
+ protected:
55
+ bool turbo;
56
+ };
57
+
58
+ } /* namespace NetworKit */
59
+
60
+ #endif // NETWORKIT_CENTRALITY_LOCAL_CLUSTERING_COEFFICIENT_HPP_
@@ -0,0 +1,43 @@
1
+ #ifndef NETWORKIT_CENTRALITY_LOCAL_PARTITION_COVERAGE_HPP_
2
+ #define NETWORKIT_CENTRALITY_LOCAL_PARTITION_COVERAGE_HPP_
3
+
4
+ #include <networkit/centrality/Centrality.hpp>
5
+ #include <networkit/structures/Partition.hpp>
6
+
7
+ namespace NetworKit {
8
+
9
+ /**
10
+ * The local partition coverage is the amount of neighbors of a node u that are in the same
11
+ * partition as u.
12
+ */
13
+ class LocalPartitionCoverage : public Centrality {
14
+ public:
15
+ /**
16
+ * Construct the local partition coverage instance. The running time of the run() method is
17
+ * O(m), where m is the number of edges in the graph.
18
+ *
19
+ * @param G The graph to use
20
+ * @param P The partition for which the coverage shall be calculated.
21
+ */
22
+ LocalPartitionCoverage(const Graph &G, const Partition &P);
23
+
24
+ /**
25
+ * Computes local partition coverage on the graph passed in constructor.
26
+ * This method runs in parallel.
27
+ */
28
+ void run() override;
29
+
30
+ /**
31
+ * Get the maximum value (1.0)
32
+ *
33
+ * @return 1.0
34
+ */
35
+ double maximum() override;
36
+
37
+ protected:
38
+ const Partition &P;
39
+ };
40
+
41
+ } // namespace NetworKit
42
+
43
+ #endif // NETWORKIT_CENTRALITY_LOCAL_PARTITION_COVERAGE_HPP_
@@ -0,0 +1,42 @@
1
+ /*
2
+ * LocalSquareClusteringCoefficient.hpp
3
+ *
4
+ * Created on: 07.04.2022
5
+ * Author: tillahoffmann
6
+ */
7
+
8
+ #ifndef NETWORKIT_CENTRALITY_LOCAL_SQUARE_CLUSTERING_COEFFICIENT_HPP_
9
+ #define NETWORKIT_CENTRALITY_LOCAL_SQUARE_CLUSTERING_COEFFICIENT_HPP_
10
+
11
+ #include <networkit/centrality/Centrality.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ /**
16
+ * @ingroup centrality
17
+ */
18
+ class LocalSquareClusteringCoefficient : public Centrality {
19
+ public:
20
+ /**
21
+ * Constructs the LocalSquareClusteringCoefficient class for the given Graph @a G.
22
+ *
23
+ * @param G The graph.
24
+ */
25
+ LocalSquareClusteringCoefficient(const Graph &G);
26
+
27
+ /**
28
+ * Computes the local clustering coefficient on the graph passed in constructor.
29
+ */
30
+ void run() override;
31
+
32
+ /**
33
+ * Get the theoretical maximum of centrality score in the given graph.
34
+ *
35
+ * @return The maximum centrality score.
36
+ */
37
+ double maximum() override;
38
+ };
39
+
40
+ } /* namespace NetworKit */
41
+
42
+ #endif // NETWORKIT_CENTRALITY_LOCAL_SQUARE_CLUSTERING_COEFFICIENT_HPP_
@@ -0,0 +1,101 @@
1
+ /*
2
+ * PageRank.h
3
+ *
4
+ * Created on: 19.03.2014
5
+ * Author: Henning
6
+ */
7
+
8
+ #ifndef NETWORKIT_CENTRALITY_PAGE_RANK_HPP_
9
+ #define NETWORKIT_CENTRALITY_PAGE_RANK_HPP_
10
+
11
+ #include <atomic>
12
+ #include <limits>
13
+ #include <memory>
14
+
15
+ #include <networkit/centrality/Centrality.hpp>
16
+
17
+ namespace NetworKit {
18
+
19
+ /**
20
+ * @ingroup centrality
21
+ * Compute PageRank as node centrality measure. In the default mode this computation is in line
22
+ * with the original paper "The PageRank citation ranking: Bringing order to the web." by L. Brin et
23
+ * al (1999). In later publications ("PageRank revisited." by M. Brinkmeyer et al. (2005) amongst
24
+ * others) sink-node handling was added for directed graphs in order to comply with the theoretical
25
+ * assumptions by the underlying Markov chain model. This can be activated by setting the matching
26
+ * parameter to true. By default this is disabled, since it is an addition to the original
27
+ * definition.
28
+ *
29
+ * Page-Rank values can also be normalized by post-processed according to "Comparing Apples and
30
+ * Oranges: Normalized PageRank for Evolving Graphs" by Berberich et al. (2007). This decouples
31
+ * the PageRank values from the size of the input graph. To enable this, set the matching parameter
32
+ * to true. Note that sink-node handling is automatically activated if normalization is used.
33
+ *
34
+ * NOTE: There is an inconsistency in the definition in Newman's book (Ch. 7) regarding
35
+ * directed graphs; we follow the verbal description, which requires to sum over the incoming
36
+ * edges (as opposed to outgoing ones).
37
+ */
38
+ class PageRank final : public Centrality {
39
+
40
+ public:
41
+ enum Norm {
42
+ L1_NORM,
43
+ L2_NORM,
44
+ L1Norm = L1_NORM, // this + following added for backwards compatibility
45
+ L2Norm = L2_NORM
46
+ };
47
+
48
+ enum SinkHandling { NO_SINK_HANDLING, DISTRIBUTE_SINKS };
49
+
50
+ /**
51
+ * Constructs the PageRank class for the Graph @a G
52
+ *
53
+ * @param[in] G Graph to be processed.
54
+ * @param[in] damp Damping factor of the PageRank algorithm.
55
+ * @param[in] tol Error tolerance for PageRank iteration.
56
+ * @param[in] distributeSinks Set to distribute PageRank values for sink nodes. (default =
57
+ * false)
58
+ * @param[in] normalized Set to normalize Page-Rank values in order to decouple it from the
59
+ * network size. (default = false)
60
+ */
61
+ PageRank(const Graph &G, double damp = 0.85, double tol = 1e-8, bool normalized = false,
62
+ SinkHandling distributeSinks = SinkHandling::NO_SINK_HANDLING);
63
+
64
+ /**
65
+ * Computes page rank on the graph passed in constructor.
66
+ */
67
+ void run() override;
68
+
69
+ /**
70
+ * Returns the maximum PageRank score
71
+ */
72
+ double maximum() override;
73
+
74
+ /**
75
+ * Return the number of iterations performed by the algorithm.
76
+ *
77
+ * @return Number of iterations performed by the algorithm.
78
+ */
79
+ count numberOfIterations() const {
80
+ assureFinished();
81
+ return iterations;
82
+ }
83
+
84
+ // Maximum number of iterations allowed
85
+ count maxIterations = std::numeric_limits<count>::max();
86
+
87
+ // Norm used as stopping criterion
88
+ Norm norm = Norm::L2_NORM;
89
+
90
+ private:
91
+ double damp;
92
+ double tol;
93
+ count iterations;
94
+ bool normalized;
95
+ SinkHandling distributeSinks;
96
+ std::atomic<double> max;
97
+ };
98
+
99
+ } /* namespace NetworKit */
100
+
101
+ #endif // NETWORKIT_CENTRALITY_PAGE_RANK_HPP_
@@ -0,0 +1,48 @@
1
+ #ifndef NETWORKIT_CENTRALITY_PERMANENCE_CENTRALITY_HPP_
2
+ #define NETWORKIT_CENTRALITY_PERMANENCE_CENTRALITY_HPP_
3
+
4
+ #include <networkit/centrality/Centrality.hpp>
5
+ #include <networkit/structures/Partition.hpp>
6
+
7
+ namespace NetworKit {
8
+
9
+ /**
10
+ * @ingroup centrality
11
+ * Permanence centrality measures how well a vertex belongs to its community.
12
+ */
13
+ class PermanenceCentrality : public Algorithm {
14
+ public:
15
+ /**
16
+ * Constructs the PermanenceCentrality class for the given Graph @a G and Partition @a P.
17
+ *
18
+ * @param G The input graph.
19
+ * @param P Partition for graph G.
20
+ */
21
+ PermanenceCentrality(const Graph &G, const Partition &P);
22
+ void run() override;
23
+
24
+ /**
25
+ * Returns the permanence centrality of node @a u.
26
+ *
27
+ * @param u Node in the input graph.
28
+ */
29
+ double getPermanence(node u);
30
+
31
+ /**
32
+ * Returns the intra-clustering coefficient of node @a u.
33
+ *
34
+ * @param u Node in the input graph.
35
+ */
36
+ double getIntraClustering(node u);
37
+
38
+ private:
39
+ const Graph &G;
40
+ const Partition &P;
41
+ std::vector<index> inBegin;
42
+ std::vector<node> inEdges;
43
+ std::vector<bool> marker;
44
+ };
45
+
46
+ } // namespace NetworKit
47
+
48
+ #endif // NETWORKIT_CENTRALITY_PERMANENCE_CENTRALITY_HPP_
@@ -0,0 +1,45 @@
1
+ /*
2
+ * Sfigality.hpp
3
+ *
4
+ * Created on: 20.01.2016
5
+ * Author:Christian Staudt
6
+ */
7
+
8
+ #ifndef NETWORKIT_CENTRALITY_SFIGALITY_HPP_
9
+ #define NETWORKIT_CENTRALITY_SFIGALITY_HPP_
10
+
11
+ #include <networkit/centrality/Centrality.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ /**
16
+ * @ingroup centrality
17
+ * The sfigality of a node is the ratio of neighboring nodes that have
18
+ * a higher degree than the node itself.
19
+ */
20
+ class Sfigality : public Centrality {
21
+ public:
22
+ /**
23
+ * Constructs the Sfigality class for the given Graph @a G. Sfigality is a new type of
24
+ * node centrality measures that is high if neighboring nodes have a higher degree, e.g. in
25
+ social networks, if your friends have more friends than you. Formally:
26
+ *
27
+ * $$\\sigma(u) = \\frac{| \\{ v: \\{u,v\\} \\in E, deg(u) < deg(v) \\} |}{ deg(u) }$$
28
+ *
29
+ * @param G The graph.
30
+
31
+ */
32
+ Sfigality(const Graph &G);
33
+
34
+ void run() override;
35
+
36
+ /**
37
+ * Returns the node that has the most neighbours with a higher degree than itself (max
38
+ * Sfigality).
39
+ */
40
+ double maximum() override;
41
+ };
42
+
43
+ } /* namespace NetworKit */
44
+
45
+ #endif // NETWORKIT_CENTRALITY_SFIGALITY_HPP_
@@ -0,0 +1,86 @@
1
+ /*
2
+ * SpanningEdgeCentrality.hpp
3
+ *
4
+ * Created on: 29.07.2015
5
+ * Author: henningm
6
+ */
7
+
8
+ #ifndef NETWORKIT_CENTRALITY_SPANNING_EDGE_CENTRALITY_HPP_
9
+ #define NETWORKIT_CENTRALITY_SPANNING_EDGE_CENTRALITY_HPP_
10
+
11
+ #include <networkit/algebraic/CSRMatrix.hpp>
12
+ #include <networkit/centrality/Centrality.hpp>
13
+ #include <networkit/numerics/LAMG/Lamg.hpp>
14
+
15
+ namespace NetworKit {
16
+
17
+ /**
18
+ * @ingroup centrality
19
+ *
20
+ * SpanningEdgeCentrality edge centrality.
21
+ *
22
+ */
23
+ class SpanningEdgeCentrality : public Centrality {
24
+ protected:
25
+ double tol;
26
+ Lamg<CSRMatrix> lamg;
27
+ uint64_t setupTime;
28
+
29
+ public:
30
+ /**
31
+ * Constructs the SpanningEdgeCentrality class for the given Graph @a G.
32
+ * @param G The graph.
33
+ * @param tol constant used for the approximation: with probability at least 1-1/n, the
34
+ * approximated scores are within a factor 1+tol from the exact scores
35
+ */
36
+ SpanningEdgeCentrality(const Graph &G, double tol = 0.1);
37
+
38
+ /**
39
+ * Destructor.
40
+ */
41
+ ~SpanningEdgeCentrality() override = default;
42
+
43
+ /**
44
+ * Compute spanning edge centrality scores exactly for all edges. This solves a linear system
45
+ * for each edge, so the empirical running time is O(m^2), where m is the number of edges in the
46
+ * graph.
47
+ */
48
+ void run() override;
49
+
50
+ /**
51
+ * Compute approximation by JL projection. This solves k linear systems, where k is
52
+ * log(n)/(tol^2). The empirical running time is O(km), where n is the number of nodes and m is
53
+ * the number of edges.
54
+ */
55
+ void runApproximation();
56
+
57
+ /**
58
+ * Compute approximation by JL projection in parallel. This solves k linear systems in parallel,
59
+ * where k is log(n)/(tol^2).
60
+ */
61
+ void runParallelApproximation();
62
+
63
+ /**
64
+ * This method is deprecated and will not be supported in future releases.
65
+ * Use runApproximation() instead.
66
+ * @param directory
67
+ * @return Elapsed time in milliseconds.
68
+ */
69
+ uint64_t TLX_DEPRECATED(runApproximationAndWriteVectors(std::string_view graphPath));
70
+
71
+ /**
72
+ * @return The elapsed time to setup the solver in milliseconds.
73
+ */
74
+ uint64_t getSetupTime() const;
75
+ /**
76
+ * Compute value for one edge only. This requires a single linear system, so the empricial
77
+ * running time is O(m).
78
+ * @param[in] u Endpoint of edge.
79
+ * @param[in] v Endpoint of edge.
80
+ */
81
+ double runForEdge(node u, node v);
82
+ };
83
+
84
+ } /* namespace NetworKit */
85
+
86
+ #endif // NETWORKIT_CENTRALITY_SPANNING_EDGE_CENTRALITY_HPP_
@@ -0,0 +1,136 @@
1
+ /*
2
+ * TopCloseness.hpp
3
+ *
4
+ * Created on: 03.10.2014
5
+ * Author: ebergamini, michele borassi
6
+ */
7
+
8
+ #ifndef NETWORKIT_CENTRALITY_TOP_CLOSENESS_HPP_
9
+ #define NETWORKIT_CENTRALITY_TOP_CLOSENESS_HPP_
10
+
11
+ #include <memory>
12
+
13
+ #include <networkit/base/Algorithm.hpp>
14
+ #include <networkit/components/StronglyConnectedComponents.hpp>
15
+ #include <networkit/graph/Graph.hpp>
16
+
17
+ namespace NetworKit {
18
+
19
+ /**
20
+ * @ingroup centrality
21
+ */
22
+ class TopCloseness final : public Algorithm {
23
+ public:
24
+ /**
25
+ * Finds the top k nodes with highest closeness centrality faster than
26
+ * computing it for all nodes, based on "Computing Top-k Closeness Centrality
27
+ * Faster in Unweighted Graphs", Bergamini et al., ALENEX16. The algorithms is
28
+ * based on two independent heuristics, described in the referenced paper. We
29
+ * recommend to use first_heu = true and second_heu = false for complex
30
+ * networks and first_heu = true and second_heu = true for street networks or
31
+ * networks with large diameters. Notice that the worst case running time of
32
+ * the algorithm is O(nm), where n is the number of nodes and m is the number
33
+ * of edges. However, for most networks the empirical running time is O(m).
34
+ *
35
+ * @param G An unweighted graph.
36
+ * @param k Number of nodes with highest closeness that have to be found. For
37
+ * example, if k = 10, the top 10 nodes with highest closeness will be
38
+ * computed.
39
+ * @param first_heu If true, the neighborhood-based lower bound is computed
40
+ * and nodes are sorted according to it. If false, nodes are simply sorted by
41
+ * degree.
42
+ * @param sec_heu If true, the BFSbound is re-computed at each iteration. If
43
+ * false, BFScut is used.
44
+ */
45
+ TopCloseness(const Graph &G, count k = 1, bool first_heu = true, bool sec_heu = true);
46
+
47
+ /**
48
+ * Computes top-k closeness on the graph passed in the constructor.
49
+ */
50
+ void run() override;
51
+
52
+ /**
53
+ * Returns a list with the k nodes with highest closeness.
54
+ * WARNING: closeness centrality of some nodes below the top-k could be equal
55
+ * to the k-th closeness, we call them trail. Set the parameter includeTrail
56
+ * to true to also include those nodes but consider that the resulting vector
57
+ * could be longer than k.
58
+ *
59
+ * @param includeTrail Whether or not to include trail nodes.
60
+ */
61
+ std::vector<node> topkNodesList(bool includeTrail = false);
62
+
63
+ /**
64
+ * Returns a list with the scores of the k nodes with highest closeness
65
+ * WARNING: closeness centrality of some nodes below the top-k could be equal
66
+ * to the k-th closeness, we call them trail. Set the parameter includeTrail
67
+ * to true to also include those centrality values but consider that the
68
+ * resulting vector could be longer than k.
69
+ *
70
+ * @param includeTrail Whether or not to include trail centrality value.
71
+ */
72
+ std::vector<edgeweight> topkScoresList(bool includeTrail = false);
73
+
74
+ /**
75
+ * @brief Restricts the top-k closeness computation to a subset of nodes.
76
+ * If the given list is empty, all nodes in the graph will be considered.
77
+ * Note: Actual existence of included nodes in the graph is not checked.
78
+ *
79
+ * @param nodeList Subset of nodes.
80
+ */
81
+ void restrictTopKComputationToNodes(const std::vector<node> &nodeList) {
82
+ nodeListPtr = &nodeList;
83
+ };
84
+
85
+ private:
86
+ const Graph &G;
87
+ count n;
88
+ count k;
89
+ bool first_heu, sec_heu;
90
+ std::vector<node> topk;
91
+ const std::vector<node> *nodeListPtr;
92
+ count visEdges;
93
+ count n_op;
94
+ count trail;
95
+ double maxFarness = -1.0;
96
+ count nMaxFarness;
97
+ std::vector<std::vector<count>> nodesPerLevs, sumLevels;
98
+ std::vector<edgeweight> topkScores;
99
+ std::vector<double> farness;
100
+ std::shared_ptr<std::vector<count>> reachLPtr, reachUPtr;
101
+
102
+ std::unique_ptr<StronglyConnectedComponents> sccsPtr;
103
+
104
+ void init();
105
+ double BFScut(node v, double x, std::vector<bool> &visited, std::vector<count> &distances,
106
+ std::vector<node> &pred, count &visEdges);
107
+ void computelBound1(std::vector<double> &S);
108
+ void BFSbound(node x, std::vector<double> &S, count &visEdges,
109
+ const std::vector<bool> &toAnalyze);
110
+ void computeReachable();
111
+ };
112
+
113
+ inline std::vector<node> TopCloseness::topkNodesList(bool includeTrail) {
114
+ assureFinished();
115
+ if (!includeTrail) {
116
+ auto begin = topk.begin();
117
+ std::vector<node> topkNoTrail(begin, begin + k);
118
+ return topkNoTrail;
119
+ }
120
+
121
+ return topk;
122
+ }
123
+
124
+ inline std::vector<edgeweight> TopCloseness::topkScoresList(bool includeTrail) {
125
+ assureFinished();
126
+ if (!includeTrail) {
127
+ auto begin = topkScores.begin();
128
+ std::vector<double> topkScoresNoTrail(begin, begin + k);
129
+ return topkScoresNoTrail;
130
+ }
131
+
132
+ return topkScores;
133
+ }
134
+
135
+ } /* namespace NetworKit */
136
+ #endif // NETWORKIT_CENTRALITY_TOP_CLOSENESS_HPP_