@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,151 @@
1
+ /*
2
+ * TopHarmonicCloseness.hpp
3
+ *
4
+ * Created on: 25.02.2018
5
+ * Authors: nemes, Eugenio Angriman
6
+ */
7
+
8
+ #ifndef NETWORKIT_CENTRALITY_TOP_HARMONIC_CLOSENESS_HPP_
9
+ #define NETWORKIT_CENTRALITY_TOP_HARMONIC_CLOSENESS_HPP_
10
+
11
+ #include <memory>
12
+
13
+ #include <networkit/auxiliary/VectorComparator.hpp>
14
+ #include <networkit/base/Algorithm.hpp>
15
+ #include <networkit/components/WeaklyConnectedComponents.hpp>
16
+ #include <networkit/graph/Graph.hpp>
17
+
18
+ #include <tlx/container/d_ary_addressable_int_heap.hpp>
19
+
20
+ namespace NetworKit {
21
+
22
+ /**
23
+ * @ingroup centrality
24
+ */
25
+ class TopHarmonicCloseness final : public Algorithm {
26
+ public:
27
+ /**
28
+ * Finds the top k nodes with highest harmonic closeness centrality faster
29
+ * than computing it for all nodes. The implementation is based on
30
+ * "Computing Top-k Centrality Faster in Unweighted Graphs", Bergamini et
31
+ * al., ALENEX16. The algorithm also works with weighted graphs but only
32
+ * with the NBcut variation. We recommend to use useNBbound = false for
33
+ * (weighted) complex networks (or networks with small diameter) and
34
+ * useNBbound = true for street networks (or networks with large
35
+ * diameters). Notice that the worst case running time of the algorithm is
36
+ * O(nm), where n is the number of nodes and m is the number of edges.
37
+ * However, for most real-world networks the empirical running time is
38
+ * O(m).
39
+ *
40
+ * @param G The input graph. If useNBbound is set to true, edge weights will be ignored.
41
+ * @param k Number of nodes with highest harmonic closeness that have to be found.
42
+ * For example, k = 10, the top 10 nodes with highest harmonic closeness will be computed.
43
+ * @param useNBbound If true, the NBbound variation will be used, otherwise NBcut.
44
+ */
45
+ explicit TopHarmonicCloseness(const Graph &G, count k = 1, bool useNBbound = false);
46
+
47
+ ~TopHarmonicCloseness() override;
48
+
49
+ /**
50
+ * Computes top-k harmonic closeness on the graph passed in the constructor.
51
+ */
52
+ void run() override;
53
+
54
+ /**
55
+ * Returns a list with the k nodes with highest harmonic closeness.
56
+ * WARNING: closeness centrality of some nodes below the top-k could be equal
57
+ * to the k-th closeness, we call them trail. Set the parameter includeTrail
58
+ * to true to also include those nodes but consider that the resulting vector
59
+ * could be longer than k.
60
+ *
61
+ * @param includeTrail Whether or not to include trail nodes.
62
+ * @return The list of the top-k nodes.
63
+ */
64
+ std::vector<node> topkNodesList(bool includeTrail = false);
65
+
66
+ /**
67
+ * Returns a list with the scores of the k nodes with highest harmonic
68
+ * closeness.
69
+ * WARNING: closeness centrality of some nodes below the top-k could
70
+ * be equal to the k-th closeness, we call them trail. Set the parameter
71
+ * includeTrail to true to also include those centrality values but consider
72
+ * that the resulting vector could be longer than k.
73
+ *
74
+ * @param includeTrail Whether or not to include trail centrality value.
75
+ * @return The closeness centralities of the k most central nodes.
76
+ */
77
+ std::vector<edgeweight> topkScoresList(bool includeTrail = false);
78
+
79
+ /**
80
+ * @brief Restricts the top-k harmonic closeness computation to a subset of nodes.
81
+ * If the given list is empty, all nodes in the graph will be considered.
82
+ * Note: Actual existence of included nodes in the graph is not checked.
83
+ *
84
+ * @param nodeList Subset of nodes.
85
+ */
86
+ void restrictTopKComputationToNodes(const std::vector<node> &nodeList) {
87
+ nodeListPtr = &nodeList;
88
+ };
89
+
90
+ private:
91
+ const Graph *G;
92
+ const count k;
93
+ const bool useNBbound;
94
+
95
+ std::vector<double> hCloseness;
96
+ std::vector<count> reachableNodes;
97
+ std::vector<std::vector<uint8_t>> visitedGlobal;
98
+ std::vector<uint8_t> tsGlobal;
99
+
100
+ std::vector<node> topKNodes;
101
+ std::vector<double> topKScores;
102
+ const std::vector<node> *nodeListPtr;
103
+
104
+ // For NBbound
105
+ std::vector<count> reachU, reachL;
106
+ std::vector<std::vector<count>> numberOfNodesAtLevelGlobal;
107
+ std::vector<std::vector<node>> nodesAtCurrentLevelGlobal;
108
+ std::vector<std::vector<std::vector<node>>> nodesAtLevelGlobal;
109
+ std::vector<double> levelImprovement;
110
+ std::unique_ptr<WeaklyConnectedComponents> wccPtr;
111
+ void updateTimestamp() {
112
+ auto &visited = visitedGlobal[omp_get_thread_num()];
113
+ auto &ts = tsGlobal[omp_get_thread_num()];
114
+ if (ts++ == std::numeric_limits<uint8_t>::max()) {
115
+ ts = 1;
116
+ std::fill(visited.begin(), visited.end(), 0);
117
+ }
118
+ }
119
+
120
+ tlx::d_ary_addressable_int_heap<node, 2, Aux::LessInVector<double>> topKNodesPQ;
121
+ tlx::d_ary_addressable_int_heap<node, 2, Aux::GreaterInVector<double>> prioQ;
122
+ std::vector<node> trail;
123
+
124
+ // For weighted graphs
125
+ std::vector<tlx::d_ary_addressable_int_heap<node, 2, Aux::LessInVector<edgeweight>>>
126
+ dijkstraHeaps;
127
+ std::vector<std::vector<edgeweight>> distanceGlobal;
128
+ edgeweight minEdgeWeight;
129
+
130
+ omp_lock_t lock;
131
+
132
+ void init();
133
+ void runNBcut();
134
+ void runNBbound();
135
+ bool bfscutUnweighted(node source, double kthCloseness);
136
+ bool bfscutWeighted(node source, double kthCloseness);
137
+ void bfsbound(node source);
138
+ void computeReachableNodes();
139
+ void computeReachableNodesBounds();
140
+ void computeNeighborhoodBasedBound();
141
+ void updateTopkPQ(node u);
142
+
143
+ double initialBoundNBcutUnweighted(node u) const noexcept;
144
+ double initialBoundNBcutWeighted(node u) const noexcept;
145
+
146
+ template <class Type>
147
+ std::vector<Type> resizedCopy(const std::vector<Type> &vec) const noexcept;
148
+ };
149
+
150
+ } // namespace NetworKit
151
+ #endif // NETWORKIT_CENTRALITY_TOP_HARMONIC_CLOSENESS_HPP_
@@ -0,0 +1,83 @@
1
+ #ifndef NETWORKIT_CLIQUE_MAXIMAL_CLIQUES_HPP_
2
+ #define NETWORKIT_CLIQUE_MAXIMAL_CLIQUES_HPP_
3
+
4
+ #include <functional>
5
+
6
+ #include <networkit/base/Algorithm.hpp>
7
+ #include <networkit/graph/Graph.hpp>
8
+
9
+ namespace NetworKit {
10
+
11
+ /**
12
+ * Algorithm for listing all maximal cliques.
13
+ *
14
+ * The implementation is based on the "hybrid" algorithm described in
15
+ *
16
+ * Eppstein, D., & Strash, D. (2011).
17
+ * Listing All Maximal Cliques in Large Sparse Real-World Graphs.
18
+ * In P. M. Pardalos & S. Rebennack (Eds.),
19
+ * Experimental Algorithms (pp. 364 - 375). Springer Berlin Heidelberg.
20
+ * Retrieved from http://link.springer.com/chapter/10.1007/978-3-642-20662-7_31
21
+ *
22
+ * The running time of this algorithm should be in @f$O(d^2 \cdot n \cdot 3^{d/3})@f$
23
+ * where @f$d@f$ is the degeneracy of the graph, i.e., the maximum core number.
24
+ * The running time in practice depends on the structure of the graph. In
25
+ * particular for complex networks it is usually quite fast, even graphs with
26
+ * millions of edges can usually be processed in less than a minute.
27
+ */
28
+ class MaximalCliques final : public Algorithm {
29
+
30
+ public:
31
+ /**
32
+ * Construct the maximal cliques algorithm with the given graph.
33
+ *
34
+ * If the @a maximumOnly argument is set, the algorithm will only store
35
+ * the clique of maximum size. Further, this enables some optimizations
36
+ * to skip smaller cliques more efficiently leading to a reduced
37
+ * running time.
38
+ *
39
+ * @param G The graph to list the cliques for.
40
+ * @param maximumOnly If only a maximum clique shall be found.
41
+ */
42
+ MaximalCliques(const Graph &G, bool maximumOnly = false);
43
+
44
+ /**
45
+ * Construct the maximal cliques algorithm with the given graph and a callback.
46
+ *
47
+ * The callback is called once for each found clique with a reference to the clique.
48
+ * Note that the reference is to an internal object, the callback should not assume that
49
+ * this reference is still valid after it returned.
50
+ *
51
+ * @param G The graph to list cliques for
52
+ * @param callback The callback to call for each clique.
53
+ */
54
+ MaximalCliques(const Graph &G, std::function<void(const std::vector<node> &)> callback);
55
+
56
+ /**
57
+ * Execute the maximal clique listing algorithm.
58
+ */
59
+ void run() override;
60
+
61
+ /**
62
+ * Return all found cliques unless a callback was given.
63
+ *
64
+ * This method will throw if a callback was given and thus the cliques were not stored.
65
+ * If only the maximum clique was stored, it will return exactly one clique unless the graph
66
+ * is empty.
67
+ *
68
+ * @return a vector of cliques, each being represented as a vector of nodes.
69
+ */
70
+ const std::vector<std::vector<node>> &getCliques() const;
71
+
72
+ private:
73
+ const Graph *G;
74
+
75
+ std::vector<std::vector<node>> result;
76
+
77
+ std::function<void(const std::vector<node> &)> callback;
78
+ bool maximumOnly;
79
+ };
80
+
81
+ } // namespace NetworKit
82
+
83
+ #endif // NETWORKIT_CLIQUE_MAXIMAL_CLIQUES_HPP_
@@ -0,0 +1,59 @@
1
+ /*
2
+ * ClusteringProjector.hpp
3
+ *
4
+ * Created on: 07.01.2013
5
+ * Author: Christian Staudt
6
+ */
7
+
8
+ #ifndef NETWORKIT_COARSENING_CLUSTERING_PROJECTOR_HPP_
9
+ #define NETWORKIT_COARSENING_CLUSTERING_PROJECTOR_HPP_
10
+
11
+ #include <networkit/graph/Graph.hpp>
12
+ #include <networkit/structures/Partition.hpp>
13
+
14
+ namespace NetworKit {
15
+
16
+ /**
17
+ * @ingroup coarsening
18
+ */
19
+ class ClusteringProjector {
20
+
21
+ public:
22
+ /**
23
+ * Given
24
+ * @param[in] Gcoarse
25
+ * @param[in] Gfine
26
+ * @param[in] fineToCoarse
27
+ * @param[in] zetaCoarse a clustering of the coarse graph
28
+ *
29
+ * , project the clustering back to the fine graph to create a clustering of the fine graph.
30
+ * @param[out] a clustering of the fine graph
31
+ **/
32
+ virtual Partition projectBack(const Graph &Gcoarse, const Graph &Gfine,
33
+ const std::vector<node> &fineToCoarse,
34
+ const Partition &zetaCoarse);
35
+
36
+ /**
37
+ * Project a clustering \zeta^{i} of the coarse graph G^{i} back to
38
+ * the finest graph G^{0}, using the hierarchy of fine->coarse maps
39
+ */
40
+ virtual Partition projectBackToFinest(const Partition &zetaCoarse,
41
+ const std::vector<std::vector<node>> &maps,
42
+ const Graph &Gfinest);
43
+
44
+ /**
45
+ * Assuming that the coarse graph resulted from contracting and represents a clustering of the
46
+ * finest graph
47
+ *
48
+ * @param[in] Gcoarse coarse graph
49
+ * @param[in] Gfinest finest graph
50
+ * @param[in] maps hierarchy of maps M^{i->i+1} mapping nodes in finer graph to
51
+ * supernodes in coarser graph
52
+ */
53
+ virtual Partition
54
+ projectCoarseGraphToFinestClustering(const Graph &Gcoarse, const Graph &Gfinest,
55
+ const std::vector<std::vector<node>> &maps);
56
+ };
57
+
58
+ } /* namespace NetworKit */
59
+ #endif // NETWORKIT_COARSENING_CLUSTERING_PROJECTOR_HPP_
@@ -0,0 +1,156 @@
1
+ /*
2
+ * CoarsenedGraphView.hpp
3
+ *
4
+ * Memory-efficient layered graph view for coarsening operations
5
+ */
6
+
7
+ #ifndef NETWORKIT_COARSENING_COARSENED_GRAPH_VIEW_HPP_
8
+ #define NETWORKIT_COARSENING_COARSENED_GRAPH_VIEW_HPP_
9
+
10
+ #include <vector>
11
+ #include <networkit/Globals.hpp>
12
+ #include <networkit/graph/Graph.hpp>
13
+ #include <networkit/structures/Partition.hpp>
14
+
15
+ namespace NetworKit {
16
+
17
+ /**
18
+ * @ingroup coarsening
19
+ * Memory-efficient view of a coarsened graph that avoids creating new graph structures.
20
+ * This class provides a graph-like interface over the original CSR graph by maintaining
21
+ * only the node mapping information, computing edges on-demand.
22
+ */
23
+ class CoarsenedGraphView {
24
+ public:
25
+ /**
26
+ * Construct a coarsened graph view from the original graph and partition.
27
+ * @param originalGraph The original CSR graph
28
+ * @param partition Partition defining how nodes are grouped into supernodes
29
+ */
30
+ CoarsenedGraphView(const Graph &originalGraph, const Partition &partition);
31
+
32
+ /**
33
+ * Get the number of nodes (supernodes) in the coarsened view
34
+ */
35
+ count numberOfNodes() const { return numSupernodes; }
36
+
37
+ /**
38
+ * Get the number of edges in the coarsened view
39
+ */
40
+ count numberOfEdges() const;
41
+
42
+ /**
43
+ * Check if a supernode exists
44
+ */
45
+ bool hasNode(node supernode) const { return supernode < numSupernodes; }
46
+
47
+ /**
48
+ * Get the degree of a supernode (number of adjacent supernodes)
49
+ */
50
+ count degree(node supernode) const;
51
+
52
+ /**
53
+ * Get the weighted degree of a supernode
54
+ * @param countSelfLoopsTwice If true, count self-loops twice (for undirected graphs)
55
+ */
56
+ edgeweight weightedDegree(node supernode, bool countSelfLoopsTwice = false) const;
57
+
58
+ /**
59
+ * Check if there's an edge between two supernodes
60
+ */
61
+ bool hasEdge(node u, node v) const;
62
+
63
+ /**
64
+ * Get the weight of an edge between two supernodes
65
+ */
66
+ edgeweight weight(node u, node v) const;
67
+
68
+ /**
69
+ * Iterate over neighbors of a supernode
70
+ * @param supernode The supernode to iterate neighbors for
71
+ * @param handle Function to call for each neighbor: void(node neighbor, edgeweight weight)
72
+ */
73
+ template <typename Lambda>
74
+ void forNeighborsOf(node supernode, Lambda handle) const {
75
+ if (!hasNode(supernode))
76
+ return;
77
+
78
+ auto neighbors = getNeighbors(supernode);
79
+ for (const auto &entry : neighbors) {
80
+ handle(entry.first, entry.second);
81
+ }
82
+ }
83
+
84
+ /**
85
+ * Iterate over all edges in the coarsened view
86
+ * @param handle Function to call for each edge: void(node u, node v, edgeweight weight)
87
+ */
88
+ template <typename Lambda>
89
+ void forEdges(Lambda handle) const {
90
+ for (node u = 0; u < numberOfNodes(); ++u) {
91
+ forNeighborsOf(u, [&](node v, edgeweight w) {
92
+ if (u <= v) { // Only report each edge once for undirected graphs
93
+ handle(u, v, w);
94
+ }
95
+ });
96
+ }
97
+ }
98
+
99
+ /**
100
+ * Parallel iteration over nodes
101
+ */
102
+ template <typename Lambda>
103
+ void parallelForNodes(Lambda handle) const {
104
+ #pragma omp parallel for
105
+ for (omp_index u = 0; u < static_cast<omp_index>(numberOfNodes()); ++u) {
106
+ handle(static_cast<node>(u));
107
+ }
108
+ }
109
+
110
+ /**
111
+ * Get the mapping from original nodes to supernodes
112
+ */
113
+ const std::vector<node> &getNodeMapping() const { return nodeMapping; }
114
+
115
+ /**
116
+ * Get original nodes that belong to a supernode
117
+ */
118
+ const std::vector<node> &getOriginalNodes(node supernode) const;
119
+
120
+ /**
121
+ * Check if the graph is weighted (always true for coarsened views)
122
+ */
123
+ bool isWeighted() const { return true; }
124
+
125
+ /**
126
+ * Check if the graph is directed (always false for current implementation)
127
+ */
128
+ bool isDirected() const { return false; }
129
+
130
+ /**
131
+ * Get upper bound for node IDs
132
+ */
133
+ node upperNodeIdBound() const { return numSupernodes; }
134
+
135
+ private:
136
+ const Graph &originalGraph;
137
+ std::vector<node> nodeMapping; // original_node -> supernode
138
+ std::vector<std::vector<node>> supernodeToOriginal; // supernode -> [original_nodes]
139
+ count numSupernodes;
140
+
141
+ /**
142
+ * Get neighbors of a supernode (compute on demand, no caching)
143
+ */
144
+ std::vector<std::pair<node, edgeweight>> getNeighbors(node supernode) const {
145
+ return computeNeighbors(supernode);
146
+ }
147
+
148
+ /**
149
+ * Compute neighbors of a supernode
150
+ */
151
+ std::vector<std::pair<node, edgeweight>> computeNeighbors(node supernode) const;
152
+ };
153
+
154
+ } /* namespace NetworKit */
155
+
156
+ #endif // NETWORKIT_COARSENING_COARSENED_GRAPH_VIEW_HPP_
@@ -0,0 +1,57 @@
1
+ /*
2
+ * GraphCoarsening.hpp
3
+ *
4
+ * Created on: 30.10.2012
5
+ * Author: Christian Staudt (christian.staudt@kit.edu)
6
+ */
7
+
8
+ #ifndef NETWORKIT_COARSENING_GRAPH_COARSENING_HPP_
9
+ #define NETWORKIT_COARSENING_GRAPH_COARSENING_HPP_
10
+
11
+ #include <map>
12
+ #include <vector>
13
+
14
+ #include <networkit/base/Algorithm.hpp>
15
+ #include <networkit/graph/Graph.hpp>
16
+ #include <networkit/graph/GraphW.hpp>
17
+
18
+ namespace NetworKit {
19
+
20
+ /**
21
+ * @ingroup coarsening
22
+ * Abstract base class for graph coarsening/contraction algorithms.
23
+ */
24
+ class GraphCoarsening : public Algorithm {
25
+
26
+ public:
27
+ GraphCoarsening(const Graph &G);
28
+
29
+ ~GraphCoarsening() override = default;
30
+
31
+ void run() override = 0;
32
+
33
+ const GraphW &getCoarseGraph() const;
34
+
35
+ GraphW &getCoarseGraph();
36
+
37
+ /**
38
+ * Get mapping from fine to coarse node.
39
+ */
40
+ const std::vector<node> &getFineToCoarseNodeMapping() const;
41
+
42
+ std::vector<node> &getFineToCoarseNodeMapping();
43
+
44
+ /**
45
+ * Get mapping from coarse node to collection of fine nodes.
46
+ */
47
+ std::map<node, std::vector<node>> getCoarseToFineNodeMapping() const;
48
+
49
+ protected:
50
+ const Graph *G;
51
+ GraphW Gcoarsened;
52
+ std::vector<node> nodeMapping;
53
+ };
54
+
55
+ } // namespace NetworKit
56
+
57
+ #endif // NETWORKIT_COARSENING_GRAPH_COARSENING_HPP_
@@ -0,0 +1,43 @@
1
+ /*
2
+ * MatchingCoarsening.hpp
3
+ *
4
+ * Created on: 30.10.2012
5
+ * Author: Christian Staudt
6
+ */
7
+
8
+ #ifndef NETWORKIT_COARSENING_MATCHING_COARSENING_HPP_
9
+ #define NETWORKIT_COARSENING_MATCHING_COARSENING_HPP_
10
+
11
+ #include <networkit/coarsening/GraphCoarsening.hpp>
12
+ #include <networkit/graph/GraphW.hpp>
13
+ #include <networkit/matching/Matching.hpp>
14
+
15
+ namespace NetworKit {
16
+
17
+ /**
18
+ * @ingroup coarsening
19
+ * Coarsens graph according to a matching.
20
+ */
21
+ class MatchingCoarsening final : public GraphCoarsening {
22
+
23
+ public:
24
+ MatchingCoarsening(const Graph &G, const Matching &M, bool noSelfLoops = false);
25
+
26
+ /**
27
+ * Contracts graph according to a matching.
28
+ *
29
+ * @param[in] G fine graph
30
+ * @param[in] M matching
31
+ * @param[in] noSelfLoops if true, self-loops are not produced
32
+ *
33
+ * @return coarse graph
34
+ */
35
+ void run() override;
36
+
37
+ private:
38
+ const Matching &M;
39
+ bool noSelfLoops;
40
+ };
41
+
42
+ } /* namespace NetworKit */
43
+ #endif // NETWORKIT_COARSENING_MATCHING_COARSENING_HPP_
@@ -0,0 +1,33 @@
1
+ /*
2
+ * ParallelPartitionCoarsening.hpp
3
+ *
4
+ * Created on: 03.07.2014
5
+ * Author: cls
6
+ */
7
+
8
+ #ifndef NETWORKIT_COARSENING_PARALLEL_PARTITION_COARSENING_HPP_
9
+ #define NETWORKIT_COARSENING_PARALLEL_PARTITION_COARSENING_HPP_
10
+
11
+ #include <networkit/Globals.hpp>
12
+ #include <networkit/coarsening/GraphCoarsening.hpp>
13
+ #include <networkit/structures/Partition.hpp>
14
+
15
+ namespace NetworKit {
16
+
17
+ /**
18
+ * @ingroup coarsening
19
+ */
20
+ class ParallelPartitionCoarsening final : public GraphCoarsening {
21
+ public:
22
+ ParallelPartitionCoarsening(const Graph &G, const Partition &zeta, bool parallel = true);
23
+
24
+ void run() override;
25
+
26
+ private:
27
+ const Partition &zeta;
28
+ bool parallel;
29
+ };
30
+
31
+ } /* namespace NetworKit */
32
+
33
+ #endif // NETWORKIT_COARSENING_PARALLEL_PARTITION_COARSENING_HPP_
@@ -0,0 +1,62 @@
1
+ /*
2
+ * ParallelPartitionCoarseningView.hpp
3
+ *
4
+ * Memory-efficient partition coarsening using views
5
+ */
6
+
7
+ #ifndef NETWORKIT_COARSENING_PARALLEL_PARTITION_COARSENING_VIEW_HPP_
8
+ #define NETWORKIT_COARSENING_PARALLEL_PARTITION_COARSENING_VIEW_HPP_
9
+
10
+ #include <memory>
11
+ #include <networkit/Globals.hpp>
12
+ #include <networkit/coarsening/CoarsenedGraphView.hpp>
13
+ #include <networkit/structures/Partition.hpp>
14
+
15
+ namespace NetworKit {
16
+
17
+ /**
18
+ * @ingroup coarsening
19
+ * Memory-efficient partition coarsening that creates a CoarsenedGraphView
20
+ * instead of a new graph structure, significantly reducing memory usage.
21
+ */
22
+ class ParallelPartitionCoarseningView {
23
+ public:
24
+ /**
25
+ * Constructor
26
+ * @param G The input graph
27
+ * @param zeta The partition defining how nodes should be grouped
28
+ */
29
+ ParallelPartitionCoarseningView(const Graph &G, const Partition &zeta);
30
+
31
+ /**
32
+ * Run the coarsening algorithm
33
+ */
34
+ void run();
35
+
36
+ /**
37
+ * Get the coarsened graph view
38
+ * @return Shared pointer to the coarsened graph view
39
+ */
40
+ std::shared_ptr<CoarsenedGraphView> getCoarsenedGraphView() const { return coarsenedView; }
41
+
42
+ /**
43
+ * Get the mapping from fine to coarse nodes
44
+ * @return Vector mapping original node IDs to coarsened node IDs
45
+ */
46
+ const std::vector<node> &getFineToCoarseNodeMapping() const;
47
+
48
+ /**
49
+ * Check if the algorithm has been run
50
+ */
51
+ bool hasRun() const { return hasRunFlag; }
52
+
53
+ private:
54
+ const Graph *G;
55
+ const Partition &zeta;
56
+ std::shared_ptr<CoarsenedGraphView> coarsenedView;
57
+ bool hasRunFlag;
58
+ };
59
+
60
+ } /* namespace NetworKit */
61
+
62
+ #endif // NETWORKIT_COARSENING_PARALLEL_PARTITION_COARSENING_VIEW_HPP_
@@ -0,0 +1,31 @@
1
+ #ifndef NETWORKIT_COMMUNITY_ADJUSTED_RAND_MEASURE_HPP_
2
+ #define NETWORKIT_COMMUNITY_ADJUSTED_RAND_MEASURE_HPP_
3
+
4
+ #include <networkit/community/DissimilarityMeasure.hpp>
5
+
6
+ namespace NetworKit {
7
+
8
+ /**
9
+ * The adjusted rand dissimilarity measure as proposed by Huber and Arabie in "Comparing partitions"
10
+ * (http://link.springer.com/article/10.1007/BF01908075)
11
+ */
12
+ class AdjustedRandMeasure final : public DissimilarityMeasure {
13
+ public:
14
+ /**
15
+ * Get the adjust rand dissimilarity. Runs in O(n log(n)).
16
+ *
17
+ * Note that the dissimilarity can be larger than 1 if the partitions are more different than
18
+ * expected in the random model.
19
+ *
20
+ * @param G The graph on which the partitions shall be compared
21
+ * @param zeta The first partiton
22
+ * @param eta The second partition
23
+ * @return The adjusted rand dissimilarity.
24
+ */
25
+ double getDissimilarity(const Graph &G, const NetworKit::Partition &zeta,
26
+ const NetworKit::Partition &eta) override;
27
+ };
28
+
29
+ } // namespace NetworKit
30
+
31
+ #endif // NETWORKIT_COMMUNITY_ADJUSTED_RAND_MEASURE_HPP_