@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,363 @@
1
+ #ifndef NETWORKIT_STRUCTURES_LOCAL_COMMUNITY_HPP_
2
+ #define NETWORKIT_STRUCTURES_LOCAL_COMMUNITY_HPP_
3
+
4
+ #include <set>
5
+ #include <unordered_map>
6
+ #include <unordered_set>
7
+
8
+ #include <networkit/graph/Graph.hpp>
9
+
10
+ namespace NetworKit {
11
+
12
+ /**
13
+ * Class for maintaining some measures for a local community while expanding it.
14
+ *
15
+ * Depending on the template parameters, different values are maintained. By
16
+ * default, it stores the shell of the community (i.e., all external neighbors)
17
+ * and the volume and cut of the community. Further, for every node in the shell,
18
+ * the number of internal neighbors is maintained. Optionally, also the number of
19
+ * external neighbors can be maintained for every node in the shell (@a ShellMaintainsExtDeg).
20
+ * Additionally, also the boundary, i.e., all nodes in the community that have
21
+ * a neighbor in the shell are maintained (@a MaintainBoundary).
22
+ */
23
+ template <bool ShellMaintainsExtDeg, bool MaintainBoundary = false, bool AllowRemoval = false>
24
+ class LocalCommunity {
25
+ static_assert(!MaintainBoundary || ShellMaintainsExtDeg,
26
+ "boundary cannot be maintained without maintaining the external degree");
27
+
28
+ public:
29
+ template <typename ValueType, bool used>
30
+ struct OptionalValue {
31
+ ValueType &get() { throw std::runtime_error("Getting value that is missing"); }
32
+
33
+ const ValueType &get() const { throw std::runtime_error("Getting value that is missing"); }
34
+
35
+ ValueType &operator*() { throw std::runtime_error("Getting value that is missing"); }
36
+
37
+ const ValueType &operator*() const {
38
+ throw std::runtime_error("Getting value that is missing");
39
+ }
40
+
41
+ ValueType *operator->() { throw std::runtime_error("Getting value that is missing"); }
42
+
43
+ const ValueType *operator->() const {
44
+ throw std::runtime_error("Getting value that is missing");
45
+ }
46
+
47
+ void set(ValueType) { throw std::runtime_error("Setting value that is missing"); }
48
+
49
+ OptionalValue &operator+=(ValueType) {
50
+ throw std::runtime_error("Increasing value that is missing");
51
+ }
52
+
53
+ OptionalValue &operator-=(ValueType) {
54
+ throw std::runtime_error("Decreasing value that is missing");
55
+ }
56
+
57
+ OptionalValue(const ValueType &){};
58
+
59
+ OptionalValue(){};
60
+ };
61
+
62
+ template <typename ValueType>
63
+ struct OptionalValue<ValueType, true> {
64
+ ValueType &get() { return value; }
65
+
66
+ const ValueType &get() const { return value; }
67
+
68
+ ValueType &operator*() { return value; }
69
+
70
+ const ValueType &operator*() const { return value; }
71
+
72
+ ValueType *operator->() { return &value; }
73
+
74
+ const ValueType *operator->() const { return &value; }
75
+
76
+ void set(ValueType v) { value = v; }
77
+
78
+ template <typename SecondValue,
79
+ typename std::enable_if<std::is_scalar<SecondValue>::value, int>::type = 0>
80
+ OptionalValue &operator+=(SecondValue v) {
81
+ value += v;
82
+ return *this;
83
+ }
84
+
85
+ template <typename SecondValue,
86
+ typename std::enable_if<std::is_scalar<SecondValue>::value, int>::type = 0>
87
+ OptionalValue &operator-=(SecondValue v) {
88
+ value -= v;
89
+ return *this;
90
+ }
91
+
92
+ OptionalValue(const ValueType &v) : value(v){};
93
+
94
+ OptionalValue() : value(){};
95
+
96
+ ValueType value;
97
+ };
98
+
99
+ struct ShellInfo {
100
+ /**
101
+ * Number of neighbors in the community.
102
+ */
103
+ OptionalValue<double, true> intDeg;
104
+
105
+ /**
106
+ * Number of neighbors outside the community.
107
+ */
108
+ OptionalValue<double, ShellMaintainsExtDeg> extDeg;
109
+
110
+ /**
111
+ * Number of nodes in the boundary whose only outside neighbor is this node.
112
+ */
113
+ OptionalValue<count, MaintainBoundary> numExclusiveBoundaryMembers;
114
+
115
+ /**
116
+ * Calculate how much the boundary size would change if the node
117
+ * was added to the community.
118
+ */
119
+ int64_t boundaryChange() const {
120
+ int64_t boundary_diff = -1 * numExclusiveBoundaryMembers.get();
121
+
122
+ if (extDeg.get() > 0) {
123
+ boundary_diff += 1;
124
+ }
125
+
126
+ return boundary_diff;
127
+ }
128
+
129
+ ShellInfo() : intDeg(0), extDeg(0), numExclusiveBoundaryMembers(0) {}
130
+ };
131
+
132
+ struct CommunityInfo {
133
+ /**
134
+ * Number of neighbors in the community.
135
+ */
136
+ OptionalValue<double, AllowRemoval> intDeg;
137
+
138
+ /**
139
+ * Number of neighbors outside the community.
140
+ */
141
+ OptionalValue<double, ShellMaintainsExtDeg && AllowRemoval> extDeg;
142
+
143
+ /**
144
+ * The only neighbor outside the community if there is only one.
145
+ */
146
+ OptionalValue<node, MaintainBoundary && AllowRemoval> exclusiveOutsideNeighbor;
147
+
148
+ /**
149
+ * The number of neighbors that have no internal neighbors.
150
+ */
151
+ OptionalValue<count, MaintainBoundary && AllowRemoval> numFullyInternalNeighbors;
152
+
153
+ /**
154
+ * Calculate how much the boundary size would change if the node
155
+ * was removed from the community.
156
+ */
157
+ int64_t boundaryChange() const {
158
+ int64_t boundary_diff = numFullyInternalNeighbors.get();
159
+
160
+ if (extDeg.get() > 0) {
161
+ boundary_diff -= 1;
162
+ }
163
+
164
+ return boundary_diff;
165
+ }
166
+
167
+ CommunityInfo()
168
+ : intDeg(0), extDeg(0), exclusiveOutsideNeighbor(none), numFullyInternalNeighbors(0) {}
169
+ };
170
+
171
+ /**
172
+ * Initialize an empty community for the given graph.
173
+ *
174
+ * @param G The graph.
175
+ */
176
+ LocalCommunity(const Graph &G);
177
+
178
+ /**
179
+ * Add the given node to the community.
180
+ *
181
+ * This needs O(deg(u)) time in expectation. If the boundary
182
+ * is maintained, the complexity can be higher but this is amortized
183
+ * if nodes are only added to the community.
184
+ *
185
+ * @param u The node to add.
186
+ */
187
+ void addNode(node u);
188
+
189
+ /**
190
+ * Removes the given node form the community
191
+ *
192
+ * This needs O(deg(u)) time in expectation. If the boundary
193
+ * is maintained, the complexity can be higher but this is amortized
194
+ * if nodes are only added to the community.
195
+ *
196
+ * @param u The node to add.
197
+ */
198
+ void removeNode(node u);
199
+
200
+ /**
201
+ * Check if a given node @a u is in the community.
202
+ *
203
+ * @param u The node to check.
204
+ *
205
+ * @return If @a u is in the community.
206
+ */
207
+ bool contains(node u) const;
208
+
209
+ /**
210
+ * Return the community as a std::set<node>.
211
+ *
212
+ * @return The community as std::set<node>
213
+ */
214
+ std::set<node> toSet() const;
215
+
216
+ /**
217
+ * Execute a callback for every node in the shell.
218
+ *
219
+ * The complexity is linear in the size of the shell.
220
+ * The callback should accept a node and a ShellInfo
221
+ * object as parameters. Note that only the enabled
222
+ * properties of the ShellInfo object may be accessed.
223
+ *
224
+ * @param callback The callback to call.
225
+ */
226
+ template <typename F>
227
+ void forShellNodes(F callback) {
228
+ for (const auto &it : shell) {
229
+
230
+ #ifdef NETWORKIT_SANITY_CHECKS
231
+ #ifndef NDEBUG
232
+ auto intExtDeg = calculateIntExtDeg(it.first);
233
+ assert(*it.second.intDeg == intExtDeg.first);
234
+ if (ShellMaintainsExtDeg) {
235
+ assert(*it.second.extDeg == intExtDeg.second);
236
+ }
237
+
238
+ if (MaintainBoundary) {
239
+ int64_t boundary_diff_debug = 0;
240
+ bool v_in_boundary = false;
241
+ G->forNeighborsOf(it.first, [&](node x) {
242
+ auto it = currentBoundary->find(x);
243
+ if (it != currentBoundary->end()) {
244
+ if (it->second == 1) {
245
+ boundary_diff_debug -= 1;
246
+ }
247
+ } else if (!v_in_boundary) {
248
+ boundary_diff_debug += 1;
249
+ v_in_boundary = true;
250
+ }
251
+ });
252
+
253
+ assert(it.second.boundaryChange() == boundary_diff_debug);
254
+ }
255
+ #endif // NDEBUG
256
+ #endif // NETWORKIT_SANITY_CHECKS
257
+
258
+ callback(it.first, it.second);
259
+ }
260
+ }
261
+
262
+ /**
263
+ * Execute a callback for every node in the community.
264
+ *
265
+ * The complexity is linear in the size of the community.
266
+ * The callback should accept a node and a CommunityInfo
267
+ * object as parameters. Note that only the enabled
268
+ * properties of the CommunityInfo object may be accessed.
269
+ *
270
+ * Note that unless AllowRemoval is set, the CommunityInfo object is empty.
271
+ *
272
+ * @param callback The callback to call.
273
+ */
274
+ template <typename F>
275
+ void forCommunityNodes(F callback) {
276
+ for (auto it = community.cbegin(); it != community.cend();) {
277
+ // advance the iterator so the current element may be deleted
278
+ const auto cit = it++;
279
+ #ifdef NETWORKIT_SANITY_CHECKS
280
+ #ifndef NDEBUG
281
+ if (AllowRemoval) {
282
+ auto intExtDeg = calculateIntExtDeg(cit->first);
283
+ assert(*cit->second.intDeg == intExtDeg.first);
284
+ if (ShellMaintainsExtDeg) {
285
+ assert(*cit->second.extDeg == intExtDeg.second);
286
+ }
287
+
288
+ if (MaintainBoundary) {
289
+ int64_t boundary_diff_debug = 0;
290
+ bool v_in_boundary = false;
291
+ G->forNeighborsOf(cit->first, [&](node x) {
292
+ if (community.find(x) == community.end()) {
293
+ if (!v_in_boundary) {
294
+ boundary_diff_debug -= 1;
295
+ v_in_boundary = true;
296
+ }
297
+ } else if (currentBoundary->find(x) == currentBoundary->end()) {
298
+ boundary_diff_debug += 1;
299
+ }
300
+ });
301
+
302
+ assert(cit->second.boundaryChange() == boundary_diff_debug);
303
+ }
304
+ }
305
+ #endif // NDEBUG
306
+ #endif // NETWORKIT_SANITY_CHECKS
307
+
308
+ callback(cit->first, cit->second);
309
+ }
310
+ }
311
+
312
+ /**
313
+ * Get the size of the community.
314
+ *
315
+ * @return The size of the community.
316
+ */
317
+ size_t size() const { return community.size(); }
318
+
319
+ /**
320
+ * Get the internal edge weight.
321
+ * This is the sum of the weights of all internal edges, i.e.,
322
+ * the weight of every internal edge is counted once.
323
+ *
324
+ * @return The internal edge weight of the community.
325
+ */
326
+ double internalEdgeWeight() const { return intWeight; }
327
+
328
+ /**
329
+ * Get the cut of the community.
330
+ *
331
+ * @return The cut of the community.
332
+ */
333
+ double cut() const { return extWeight; }
334
+
335
+ /**
336
+ * Get the size of the boundary of the community.
337
+ *
338
+ * @return The size of the boundary.
339
+ */
340
+ count boundarySize() const { return currentBoundary->size(); }
341
+
342
+ private:
343
+ const Graph *G;
344
+ std::unordered_map<node, CommunityInfo> community;
345
+ std::unordered_map<node, ShellInfo> shell;
346
+ double intWeight;
347
+ double extWeight;
348
+ OptionalValue<std::unordered_map<node, count>, MaintainBoundary> currentBoundary;
349
+
350
+ // The boundary is defined as all nodes of C that have a neighbor not in C
351
+ std::unordered_set<node> calculateBoundary();
352
+
353
+ /**
354
+ * internal and external weighted degree of a node with respect to the community
355
+ */
356
+ std::pair<double, double> calculateIntExtDeg(node v);
357
+
358
+ std::pair<double, double> calculateVolumeCut();
359
+ };
360
+
361
+ } // namespace NetworKit
362
+
363
+ #endif // NETWORKIT_STRUCTURES_LOCAL_COMMUNITY_HPP_
@@ -0,0 +1,335 @@
1
+ /*
2
+ * Partition.hpp
3
+ *
4
+ * Created on: 03.10.2013
5
+ * Author: cls
6
+ */
7
+
8
+ #ifndef NETWORKIT_STRUCTURES_PARTITION_HPP_
9
+ #define NETWORKIT_STRUCTURES_PARTITION_HPP_
10
+
11
+ #include <cassert>
12
+ #include <map>
13
+ #include <set>
14
+ #include <string>
15
+ #include <utility>
16
+ #include <vector>
17
+
18
+ #include <networkit/Globals.hpp>
19
+
20
+ namespace NetworKit {
21
+
22
+ /**
23
+ * @ingroup structures
24
+ * Implements a partition of a set, i.e. a subdivision of the
25
+ * set into disjoint subsets.
26
+ */
27
+ class Partition final {
28
+
29
+ public:
30
+ Partition();
31
+
32
+ /**
33
+ * Create a new partition data structure for @a z elements.
34
+ *
35
+ * @param[in] z maximum index
36
+ */
37
+ Partition(index z);
38
+
39
+ /**
40
+ * Create a new partition data structure for @a z elements. Initialize each
41
+ * entry to the default value. WARNING: this circumvents the standard
42
+ * interface and may leave the object in an inconsistent state. Use only in
43
+ * exceptional cases.
44
+ *
45
+ * @param[in] z maximum index
46
+ * @param[in] defaultValue
47
+ */
48
+ Partition(index z, index defaultValue);
49
+
50
+ Partition(const std::vector<index> &data);
51
+
52
+ /* Updates the maximum index of the partition to @a newZ and sets all its
53
+ * values to @a defaultValue.
54
+ *
55
+ * @param[in] newZ New maximum index of the partition. @param[in]
56
+ * defaultValue Default value of all the elements in the partition.
57
+ */
58
+ void reset(index newZ, index defaultValue) {
59
+ data.clear();
60
+ data.resize(newZ, defaultValue);
61
+ z = newZ;
62
+ omega = 0;
63
+ }
64
+
65
+ /**
66
+ * Index operator.
67
+ *
68
+ * @param[in] e an element
69
+ */
70
+ inline index &operator[](index e) { return this->data[e]; }
71
+
72
+ /**
73
+ * Index operator for const instances of this class.
74
+ *
75
+ * @param[in] e an element
76
+ */
77
+ inline const index &operator[](index e) const { return this->data[e]; }
78
+
79
+ /**
80
+ * Get the set (id) in which the element @a e is contained.
81
+ *
82
+ * @param e Index of element.
83
+ * @return The index of the set in which @a e is contained.
84
+ */
85
+ inline index subsetOf(index e) const {
86
+ assert(e < this->numberOfElements());
87
+ return this->data[e];
88
+ }
89
+
90
+ /**
91
+ * Extend the data structure and create a slot for one more element.
92
+ * Initializes the entry to none and returns the index of the entry.
93
+ */
94
+ inline index extend() {
95
+ data.push_back(none);
96
+ z++;
97
+ assert(z == data.size()); //(data.size() - 1)
98
+ return z - 1;
99
+ }
100
+
101
+ /**
102
+ * Removes the entry for the given element
103
+ * by setting it to none.
104
+ */
105
+ inline void remove(index e) {
106
+ assert(e < z);
107
+ data[e] = none;
108
+ }
109
+
110
+ /**
111
+ * Add a (previously unassigned) element @a e to the set @a s.
112
+ *
113
+ * @param s The index of the subset.
114
+ * @param e The element to add.
115
+ */
116
+ inline void addToSubset(index s, index e) {
117
+ assert(data[e] == none); // guarantee that element was unassigned
118
+ assert(s <= omega); // do not create new subset ids
119
+ data[e] = s;
120
+ }
121
+
122
+ /**
123
+ * Move the (previously assigned) element @a e to the set @a s.
124
+ *
125
+ * @param s The index of the subset.
126
+ * @param e The element to move.
127
+ */
128
+ inline void moveToSubset(index s, index e) {
129
+ assert(this->contains(e));
130
+ assert(s <= omega); // do not create new subset ids
131
+ data[e] = s;
132
+ }
133
+
134
+ /**
135
+ * Creates a singleton set containing the element @a e.
136
+ *
137
+ * @param e The index of the element.
138
+ */
139
+ inline void toSingleton(index e) { data[e] = newSubsetId(); }
140
+
141
+ /**
142
+ * Assigns every element to a singleton set.
143
+ * Set id is equal to element id.
144
+ */
145
+ void allToSingletons();
146
+
147
+ /**
148
+ * Assigns every element to the same subset.
149
+ * Set id is equal to zero.
150
+ */
151
+ void allToOnePartition();
152
+
153
+ /**
154
+ * Assigns the elements from both sets to a new set and returns the id of it.
155
+ *
156
+ * @param s Set to merge.
157
+ * @param t Set to merge.
158
+ * @return Id of newly created set.
159
+ */
160
+ index mergeSubsets(index s, index t);
161
+
162
+ /**
163
+ * Sets an upper bound for the subset ids that CAN be assigned.
164
+ *
165
+ * @param[in] upper highest assigned subset ID + 1
166
+ */
167
+ inline void setUpperBound(index upper) { this->omega = upper - 1; }
168
+
169
+ /**
170
+ * Return an upper bound for the subset ids that have been assigned.
171
+ * (This is the maximum id + 1.)
172
+ *
173
+ * @return The upper bound.
174
+ */
175
+ inline index upperBound() const { return omega + 1; }
176
+
177
+ /**
178
+ * Get a lower bound for the subset ids that have been assigned.
179
+ *
180
+ * @return The lower bound.
181
+ */
182
+ inline index lowerBound() const { return 0; }
183
+
184
+ /**
185
+ * Change subset IDs to be consecutive, starting at 0.
186
+ *
187
+ * @param useTurbo Default: false. If set to true, a vector instead of a map to assign new ids
188
+ * which results in a shorter running time but possibly a large space overhead.
189
+ */
190
+ void compact(bool useTurbo = false);
191
+
192
+ /**
193
+ * Check if partition assigns a valid subset to the element @a e.
194
+ *
195
+ * @param e The element.
196
+ * @return @c true if the assigned subset is valid, @c false otherwise.
197
+ */
198
+ inline bool contains(index e) const {
199
+ // e is in the element index range and the entry is not empty
200
+ return (e < z) && (data[e] != none);
201
+ }
202
+
203
+ /**
204
+ * Check if two elements @a e1 and @a e2 belong to the same subset.
205
+ *
206
+ * @param e1 Element.
207
+ * @param e2 Element.
208
+ * @return @c true if @a e1 and @a e2 belong to same subset, @c false otherwise.
209
+ */
210
+ inline bool inSameSubset(index e1, index e2) const {
211
+ assert(data[e1] != none);
212
+ assert(data[e2] != none);
213
+ return data[e1] == data[e2];
214
+ }
215
+
216
+ /**
217
+ * Get a list of subset sizes. Indices do not necessarily correspond to subset ids.
218
+ *
219
+ * @return A vector of subset sizes.
220
+ */
221
+ std::vector<count> subsetSizes() const;
222
+
223
+ /**
224
+ * Get a map from subset id to size of the subset.
225
+ *
226
+ * @return A map from subset id to size of the subset.
227
+ */
228
+ std::map<index, count> subsetSizeMap() const;
229
+
230
+ /**
231
+ * Get the members of the subset @a s.
232
+ *
233
+ * @param s The subset.
234
+ * @return A set containing the members of @a s.
235
+ */
236
+ std::set<index> getMembers(index s) const;
237
+
238
+ /**
239
+ * @return number of elements in the partition.
240
+ */
241
+ inline count numberOfElements() const {
242
+ return z; // z is the maximum element id
243
+ }
244
+
245
+ /**
246
+ * Get the current number of sets in this partition.
247
+ *
248
+ * @return The current number of sets.
249
+ */
250
+ count numberOfSubsets() const;
251
+
252
+ /**
253
+ * Get the actual vector representing the partition data structure.
254
+ *
255
+ * @return vector containing information about partitions.
256
+ */
257
+ const std::vector<index> &getVector() const;
258
+
259
+ /**
260
+ * @return the subsets of the partition as a set of sets.
261
+ */
262
+ std::set<std::set<index>> getSubsets() const;
263
+
264
+ /**
265
+ * Get the ids of nonempty subsets.
266
+ *
267
+ * @return A set of ids of nonempty subsets.
268
+ */
269
+ std::set<index> getSubsetIds() const;
270
+
271
+ /**
272
+ * Set a human-readable identifier @a name for the instance.
273
+ *
274
+ * @param name The name.
275
+ */
276
+ inline void setName(std::string name) { this->name = std::move(name); }
277
+
278
+ /**
279
+ * Get the human-readable identifier.
280
+ *
281
+ * @return The name of this partition.
282
+ */
283
+ inline std::string getName() const { return this->name; }
284
+
285
+ /**
286
+ * Iterate over all entries (node, cluster id) and execute callback function @a func (lambda
287
+ * closure).
288
+ *
289
+ * @param func Takes parameters <code>(node, index)</code>
290
+ */
291
+ template <typename Callback>
292
+ void forEntries(Callback func) const;
293
+
294
+ /**
295
+ * Iterate over all entries (node, cluster id) in parallel and execute callback function @a
296
+ * handle (lambda closure).
297
+ *
298
+ * @param handle Takes parameters <code>(node, index)</code>
299
+ */
300
+ template <typename Callback>
301
+ void parallelForEntries(Callback handle) const;
302
+
303
+ private:
304
+ index z; //!< maximum element index that can be mapped
305
+ index omega; //!< maximum subset index ever assigned
306
+ std::vector<index> data; //!< data container, indexed by element index, containing subset index
307
+ std::string name;
308
+
309
+ /**
310
+ * Allocates and returns a new subset id.
311
+ */
312
+ inline index newSubsetId() {
313
+ index s = ++omega;
314
+ return s;
315
+ }
316
+ };
317
+
318
+ template <typename Callback>
319
+ inline void Partition::forEntries(Callback handle) const {
320
+ for (index e = 0; e < this->z; e++) {
321
+ handle(e, data[e]);
322
+ }
323
+ }
324
+
325
+ template <typename Callback>
326
+ inline void Partition::parallelForEntries(Callback handle) const {
327
+ #pragma omp parallel for
328
+ for (omp_index e = 0; e < static_cast<omp_index>(this->z); e++) {
329
+ handle(e, this->data[e]);
330
+ }
331
+ }
332
+
333
+ } /* namespace NetworKit */
334
+
335
+ #endif // NETWORKIT_STRUCTURES_PARTITION_HPP_