@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,50 @@
1
+ /*
2
+ * EdgeScore.hpp
3
+ *
4
+ * Created on: 18.08.2015
5
+ * Author: Gerd Lindner
6
+ */
7
+
8
+ #ifndef NETWORKIT_EDGESCORES_EDGE_SCORE_HPP_
9
+ #define NETWORKIT_EDGESCORES_EDGE_SCORE_HPP_
10
+
11
+ #include <vector>
12
+
13
+ #include <networkit/base/Algorithm.hpp>
14
+ #include <networkit/graph/Graph.hpp>
15
+
16
+ namespace NetworKit {
17
+ /**
18
+ * Abstract base class for an edge score.
19
+ */
20
+ template <typename T>
21
+ class EdgeScore : public Algorithm {
22
+
23
+ public:
24
+ EdgeScore(const Graph &G);
25
+
26
+ /** Compute the edge score. */
27
+ void run() override;
28
+
29
+ /** Get a vector containing the score for each edge in the graph.
30
+ *
31
+ * @return the edge scores calculated by @ref run().
32
+ */
33
+ virtual const std::vector<T> &scores() const;
34
+
35
+ /** Get the edge score of the edge with the given edge id.
36
+ */
37
+ virtual T score(edgeid eid);
38
+
39
+ /** Get the edge score of the given edge.
40
+ */
41
+ virtual T score(node u, node v);
42
+
43
+ protected:
44
+ const Graph *G;
45
+ std::vector<T> scoreData;
46
+ };
47
+
48
+ } // namespace NetworKit
49
+
50
+ #endif // NETWORKIT_EDGESCORES_EDGE_SCORE_HPP_
@@ -0,0 +1,33 @@
1
+ /*
2
+ * EdgeScoreAsWeight.hpp
3
+ *
4
+ * Created on: 18.11.2014
5
+ * Author: Michael Hamann
6
+ */
7
+
8
+ #ifndef NETWORKIT_EDGESCORES_EDGE_SCORE_AS_WEIGHT_HPP_
9
+ #define NETWORKIT_EDGESCORES_EDGE_SCORE_AS_WEIGHT_HPP_
10
+
11
+ #include <networkit/graph/Graph.hpp>
12
+ #include <networkit/graph/GraphW.hpp>
13
+
14
+ namespace NetworKit {
15
+
16
+ class EdgeScoreAsWeight final {
17
+
18
+ public:
19
+ EdgeScoreAsWeight(const GraphW &G, const std::vector<double> &score, bool squared = false,
20
+ edgeweight offset = 1, edgeweight factor = 1);
21
+ GraphW calculate();
22
+
23
+ private:
24
+ const GraphW *G;
25
+ const std::vector<double> *score;
26
+ bool squared;
27
+ edgeweight offset;
28
+ edgeweight factor;
29
+ };
30
+
31
+ } // namespace NetworKit
32
+
33
+ #endif // NETWORKIT_EDGESCORES_EDGE_SCORE_AS_WEIGHT_HPP_
@@ -0,0 +1,33 @@
1
+ /*
2
+ * EdgeScoreBlender.hpp
3
+ *
4
+ * Created on: 18.11.2014
5
+ * Author: Michael Hamann
6
+ */
7
+
8
+ #ifndef NETWORKIT_EDGESCORES_EDGE_SCORE_BLENDER_HPP_
9
+ #define NETWORKIT_EDGESCORES_EDGE_SCORE_BLENDER_HPP_
10
+
11
+ #include <networkit/edgescores/EdgeScore.hpp>
12
+ #include <networkit/graph/Graph.hpp>
13
+
14
+ namespace NetworKit {
15
+
16
+ class EdgeScoreBlender final : public EdgeScore<double> {
17
+
18
+ public:
19
+ EdgeScoreBlender(const Graph &G, const std::vector<double> &attribute0,
20
+ const std::vector<double> &attribute1, const std::vector<bool> &selection);
21
+
22
+ double score(edgeid eid) override;
23
+ double score(node u, node v) override;
24
+ void run() override;
25
+
26
+ private:
27
+ const std::vector<double> *attribute0, *attribute1;
28
+ const std::vector<bool> *selection;
29
+ };
30
+
31
+ } // namespace NetworKit
32
+
33
+ #endif // NETWORKIT_EDGESCORES_EDGE_SCORE_BLENDER_HPP_
@@ -0,0 +1,32 @@
1
+ /*
2
+ * EdgeScoreLinearizer.hpp
3
+ *
4
+ * Created on: 18.11.2014
5
+ * Author: Michael Hamann
6
+ */
7
+
8
+ #ifndef NETWORKIT_EDGESCORES_EDGE_SCORE_LINEARIZER_HPP_
9
+ #define NETWORKIT_EDGESCORES_EDGE_SCORE_LINEARIZER_HPP_
10
+
11
+ #include <networkit/edgescores/EdgeScore.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ class EdgeScoreLinearizer final : public EdgeScore<double> {
16
+
17
+ private:
18
+ const std::vector<double> *attribute;
19
+ bool inverse;
20
+
21
+ public:
22
+ EdgeScoreLinearizer(const Graph &graph, const std::vector<double> &attribute,
23
+ bool inverse = false);
24
+
25
+ double score(edgeid eid) override;
26
+ double score(node u, node v) override;
27
+ void run() override;
28
+ };
29
+
30
+ } // namespace NetworKit
31
+
32
+ #endif // NETWORKIT_EDGESCORES_EDGE_SCORE_LINEARIZER_HPP_
@@ -0,0 +1,35 @@
1
+ /*
2
+ * EdgeScoreNormalizer.hpp
3
+ *
4
+ * Created on: 18.11.2014
5
+ * Author: Michael Hamann
6
+ */
7
+
8
+ #ifndef NETWORKIT_EDGESCORES_EDGE_SCORE_NORMALIZER_HPP_
9
+ #define NETWORKIT_EDGESCORES_EDGE_SCORE_NORMALIZER_HPP_
10
+
11
+ #include <networkit/edgescores/EdgeScore.hpp>
12
+ #include <networkit/graph/Graph.hpp>
13
+
14
+ namespace NetworKit {
15
+
16
+ template <typename A>
17
+ class EdgeScoreNormalizer final : public EdgeScore<double> {
18
+
19
+ public:
20
+ EdgeScoreNormalizer(const Graph &G, const std::vector<A> &score, bool invert = false,
21
+ double lower = 0, double upper = 1.0);
22
+
23
+ double score(edgeid eid) override;
24
+ double score(node u, node v) override;
25
+ void run() override;
26
+
27
+ private:
28
+ const std::vector<A> *input;
29
+ bool invert;
30
+ double lower, upper;
31
+ };
32
+
33
+ } // namespace NetworKit
34
+
35
+ #endif // NETWORKIT_EDGESCORES_EDGE_SCORE_NORMALIZER_HPP_
@@ -0,0 +1,29 @@
1
+ /*
2
+ * GeometricMeanScore.hpp
3
+ *
4
+ * Created on: 18.11.2014
5
+ * Author: Michael Hamann
6
+ */
7
+
8
+ #ifndef NETWORKIT_EDGESCORES_GEOMETRIC_MEAN_SCORE_HPP_
9
+ #define NETWORKIT_EDGESCORES_GEOMETRIC_MEAN_SCORE_HPP_
10
+
11
+ #include <networkit/edgescores/EdgeScore.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ class GeometricMeanScore final : public EdgeScore<double> {
16
+
17
+ private:
18
+ const std::vector<double> *attribute;
19
+
20
+ public:
21
+ GeometricMeanScore(const Graph &G, const std::vector<double> &attribute);
22
+ double score(edgeid eid) override;
23
+ double score(node u, node v) override;
24
+ void run() override;
25
+ };
26
+
27
+ } // namespace NetworKit
28
+
29
+ #endif // NETWORKIT_EDGESCORES_GEOMETRIC_MEAN_SCORE_HPP_
@@ -0,0 +1,23 @@
1
+ #ifndef NETWORKIT_EDGESCORES_PREFIX_JACCARD_SCORE_HPP_
2
+ #define NETWORKIT_EDGESCORES_PREFIX_JACCARD_SCORE_HPP_
3
+
4
+ #include <networkit/edgescores/EdgeScore.hpp>
5
+
6
+ namespace NetworKit {
7
+
8
+ template <typename AttributeT>
9
+ class PrefixJaccardScore final : public EdgeScore<double> {
10
+
11
+ public:
12
+ PrefixJaccardScore(const Graph &G, const std::vector<AttributeT> &attribute);
13
+ double score(edgeid eid) override;
14
+ double score(node u, node v) override;
15
+ void run() override;
16
+
17
+ private:
18
+ const std::vector<AttributeT> *inAttribute;
19
+ };
20
+
21
+ } // namespace NetworKit
22
+
23
+ #endif // NETWORKIT_EDGESCORES_PREFIX_JACCARD_SCORE_HPP_
@@ -0,0 +1,39 @@
1
+ /*
2
+ * TriangleEdgeScore.hpp
3
+ *
4
+ * Created on: 22.05.2014
5
+ * Author: Gerd Lindner, Michael Hamann
6
+ */
7
+
8
+ #ifndef NETWORKIT_EDGESCORES_TRIANGLE_EDGE_SCORE_HPP_
9
+ #define NETWORKIT_EDGESCORES_TRIANGLE_EDGE_SCORE_HPP_
10
+
11
+ #include <networkit/edgescores/EdgeScore.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ /**
16
+ * A parallel triangle counting implementation based on ideas in [0].
17
+ *
18
+ * This implementation avoids less work but needs therefore also less checks and
19
+ * is (apart from a fast initialization) parallel without any locks. In experiments
20
+ * this implementation seems to be fast both in non-parallel as well as in parallel
21
+ * settings. With only one thread its performance is similar to the sequential
22
+ * ChibaNishizekiTriangleEdgeScore in NetworKit.
23
+ *
24
+ * [0] Triangle Listing Algorithms: Back from the Diversion
25
+ * Mark Ortmann and Ulrik Brandes * 2014 Proceedings of the Sixteenth Workshop on Algorithm
26
+ * Engineering and Experiments (ALENEX). 2014, 1-8
27
+ */
28
+ class TriangleEdgeScore final : public EdgeScore<count> {
29
+
30
+ public:
31
+ TriangleEdgeScore(const Graph &G);
32
+ count score(edgeid eid) override;
33
+ count score(node u, node v) override;
34
+ void run() override;
35
+ };
36
+
37
+ } /* namespace NetworKit */
38
+
39
+ #endif // NETWORKIT_EDGESCORES_TRIANGLE_EDGE_SCORE_HPP_
@@ -0,0 +1,83 @@
1
+ /*
2
+ * Node2Vec.hpp
3
+ *
4
+ *
5
+ * Created on: 29.09.2020
6
+ * Author: Klaus Ahrens
7
+ * <ahrens@informatik.hu-berlin.de>
8
+ *
9
+ * adapted and reimplemented from node2vec
10
+ * part of snap [https://github.com/snap-stanford/snap]
11
+ * Copyright (c) 2007-2019, Jure Leskovec (under BSD license)
12
+ *
13
+ * see [https://arxiv.org/pdf/1607.00653v1.pdf]
14
+ */
15
+
16
+ #ifndef NETWORKIT_EMBEDDING_NODE2_VEC_HPP_
17
+ #define NETWORKIT_EMBEDDING_NODE2_VEC_HPP_
18
+
19
+ #include <networkit/base/Algorithm.hpp>
20
+ #include <networkit/graph/Graph.hpp>
21
+
22
+ namespace NetworKit {
23
+
24
+ /**
25
+ * @ingroup embedding
26
+ *
27
+ * Feature extraction by node2vec algorithm.
28
+ */
29
+ class Node2Vec final : public Algorithm {
30
+
31
+ public:
32
+ /**
33
+ * Node2Vec learns embeddings for nodes in a graph by optimizing a neighborhood preserving
34
+ * objective. In order to achieve this, biased random walks are initiated for every node and the
35
+ * result is of probabilistic nature. Several input parameters control the specific behavior of
36
+ * the random walks. Amongst others Node2Vec is able to produce embeddings for visualization
37
+ * (D=2 or D=3) and machine learning (D=128 [default]). Both directed and undirected graphs
38
+ * withouth isolated nodes are supported.
39
+ *
40
+ * This implementation is an adaption of the original code from snap:
41
+ * https://github.com/snap-stanford/snap
42
+ *
43
+ * @param G The graph.
44
+ * @param P Walk Return parameter (stay local).
45
+ * @param Q Walk In-Out parameter (drift away).
46
+ * @param L Walk length.
47
+ * @param N Walk count.
48
+ * @param D Dimension of embedding vectors.
49
+ */
50
+ Node2Vec(const Graph &G, double P = 1, double Q = 1, count L = 80, count N = 10, count D = 128);
51
+
52
+ ~Node2Vec() override = default;
53
+
54
+ /**
55
+ This method computes all node embeddings.
56
+ */
57
+ void run() override;
58
+
59
+ /**
60
+ This method returns a vector that contains feature vectors for all nodes
61
+ */
62
+ const std::vector<std::vector<float>> &getFeatures() const;
63
+
64
+ private:
65
+ // The graph
66
+ const Graph *G;
67
+ // Walk parameter P
68
+ double P;
69
+ // Walk parameter Q
70
+ double Q;
71
+ // Walk length L
72
+ count L;
73
+ // Walk count N
74
+ count N;
75
+ // Feature Dimension D
76
+ count D;
77
+
78
+ std::vector<std::vector<float>> features;
79
+ };
80
+
81
+ } /* namespace NetworKit */
82
+
83
+ #endif // NETWORKIT_EMBEDDING_NODE2_VEC_HPP_
@@ -0,0 +1,112 @@
1
+ /*
2
+ * EdmondsKarp.hpp
3
+ *
4
+ * Created on: 11.06.2014
5
+ * Author: Michael Wegner (michael.wegner@student.kit.edu), Michael Hamann
6
+ * <michael.hamann@kit.edu>
7
+ */
8
+
9
+ #ifndef NETWORKIT_FLOW_EDMONDS_KARP_HPP_
10
+ #define NETWORKIT_FLOW_EDMONDS_KARP_HPP_
11
+
12
+ #include <vector>
13
+
14
+ #include <networkit/base/Algorithm.hpp>
15
+ #include <networkit/graph/Graph.hpp>
16
+
17
+ namespace NetworKit {
18
+
19
+ /**
20
+ * @ingroup flow
21
+ * The EdmondsKarp class implements the maximum flow algorithm by Edmonds and Karp.
22
+ */
23
+ class EdmondsKarp final : public Algorithm {
24
+ const Graph *graph;
25
+
26
+ node source, sink;
27
+
28
+ std::vector<edgeweight> flow;
29
+ edgeweight flowValue;
30
+
31
+ public:
32
+ /**
33
+ * Constructs an instance of the EdmondsKarp algorithm for the given graph, source and sink
34
+ * @param graph The graph.
35
+ * @param source The source node.
36
+ * @param sink The sink node.
37
+ */
38
+ EdmondsKarp(const Graph &graph, node source, node sink);
39
+
40
+ /**
41
+ * Computes the maximum flow, executes the EdmondsKarp algorithm.
42
+ */
43
+ void run() override;
44
+
45
+ /**
46
+ * Returns the value of the maximum flow from source to sink.
47
+ *
48
+ * @return The maximum flow value
49
+ */
50
+ edgeweight getMaxFlow() const;
51
+
52
+ /**
53
+ * Returns the set of the nodes on the source side of the flow/minimum cut.
54
+ *
55
+ * @return The set of nodes that form the (smallest) source side of the flow/minimum cut.
56
+ */
57
+ std::vector<node> getSourceSet() const;
58
+
59
+ /**
60
+ * Get the flow value between two nodes @a u and @a v.
61
+ * @warning The running time of this function is linear in the degree of u.
62
+ *
63
+ * @param u The first node
64
+ * @param v The second node
65
+ * @return The flow between node u and v.
66
+ */
67
+ edgeweight getFlow(node u, node v) const;
68
+
69
+ /**
70
+ * Get the flow value of an edge.
71
+ *
72
+ * @param eid The id of the edge
73
+ * @return The flow on the edge identified by eid
74
+ */
75
+ edgeweight getFlow(edgeid eid) const {
76
+ assureFinished();
77
+ return flow[eid];
78
+ };
79
+
80
+ /**
81
+ * Return a copy of the flow values of all edges.
82
+ * @note Instead of copying all values you can also use the inline function "getFlow(edgeid)" in
83
+ * order to access the values efficiently.
84
+ *
85
+ * @return The flow values of all edges
86
+ */
87
+ const std::vector<edgeweight> &getFlowVector() const;
88
+
89
+ private:
90
+ void runUndirected();
91
+ void runDirected();
92
+
93
+ /**
94
+ * Performs an undirected breadth-first search on the graph from the source node to find
95
+ * an augmenting path to the sink node respecting the flow values
96
+ * @param pred Used to store the path from the source to the sink.
97
+ * @return The gain in terms of flow.
98
+ */
99
+ edgeweight BFS(std::vector<node> &pred) const;
100
+
101
+ /**
102
+ * Performs a directed breadth-first search on the graph from the source node to find
103
+ * an augmenting path to the sink node respecting the flow values
104
+ * @param pred Used to store the path from the source to the sink.
105
+ * @return The gain in terms of flow.
106
+ */
107
+ edgeweight directedBFS(const std::vector<count> &reverseEdges, std::vector<node> &pred) const;
108
+ };
109
+
110
+ } /* namespace NetworKit */
111
+
112
+ #endif // NETWORKIT_FLOW_EDMONDS_KARP_HPP_
@@ -0,0 +1,87 @@
1
+ /*
2
+ * BarabasiAlbertGenerator.hpp
3
+ *
4
+ * Created on: May 28, 2013
5
+ * Author: forigem
6
+ */
7
+
8
+ #ifndef NETWORKIT_GENERATORS_BARABASI_ALBERT_GENERATOR_HPP_
9
+ #define NETWORKIT_GENERATORS_BARABASI_ALBERT_GENERATOR_HPP_
10
+
11
+ #include <networkit/generators/StaticGraphGenerator.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ /**
16
+ * @ingroup generators
17
+ * Generates a scale-free graph using the Barabasi-Albert preferential attachment model.
18
+ */
19
+ class BarabasiAlbertGenerator final : public StaticGraphGenerator {
20
+ GraphW initGraph;
21
+ count k{0}; //!< Attachments made per node
22
+ count nMax{0}; //!< The maximal number of nodes attached
23
+ count n0{0}; //!< The number of initial connected nodes
24
+ bool sequential; //!< Specifies whether to compute sequentially using batagelj's method or in
25
+ //!< parallel (if the number of threads allow for it).
26
+
27
+ GraphW generateParallel();
28
+ GraphW generateBatagelj();
29
+
30
+ public:
31
+ BarabasiAlbertGenerator() = default;
32
+
33
+ /**
34
+ * This generator uses the preferential attachment model as introduced by Barabasi and
35
+ * Albert[1], implemented in the much faster method from Batagelj and Brandes[2] per default
36
+ * where the running time is O(n+m). Furthermore there is a parallel version from Sanders and
37
+ * Schulz[3] implemented. This implementation can be selected by setting sequential=false.
38
+ * Empirically, the parallel version shows better runtimes (when executed multi-threaded).
39
+ *
40
+ * [1] Barabasi, Albert: [Emergence of Scaling in Random Networks]
41
+ * (http://arxiv.org/pdf/cond-mat/9910332.pdf)
42
+ * [2] ALG 5 of Batagelj, Brandes: [Efficient Generation of Large Random Networks]
43
+ * (https://kops.uni-konstanz.de/bitstream/handle/123456789/5799/random.pdf?sequence=1)
44
+ * [3] Peter Sanders, Christian Schulz: [Scalable generation of scale-free graphs]
45
+ * (https://www.sciencedirect.com/science/article/pii/S0020019016300102)
46
+ *
47
+ * The generator will emit a simple graph, where all
48
+ * new nodes are initially connected to k random neighbors.
49
+ *
50
+ * @param k Number of attachments per node
51
+ * @param nMax Number of nodes in the graph
52
+ * @param n0 Number of connected nodes to begin with
53
+ * @param sequential Specifies whether to use Batagelj and Brandes's method (sequential) or a
54
+ * parallel variant. Default: true.
55
+ */
56
+ BarabasiAlbertGenerator(count k, count nMax, count n0 = 0, bool sequential = true);
57
+
58
+ /**
59
+ * This generator uses the preferential attachment model as introduced by Barabasi and
60
+ * Albert[1], implemented in the much faster method from Batagelj and Brandes[2] per default
61
+ * where the running time is O(n+m). Furthermore there is a parallel version from Sanders and
62
+ * Schulz[3] implemented. This implementation can be selected by setting sequential=false.
63
+ * Empirically, the parallel version shows better runtimes (when executed multi-threaded).
64
+ *
65
+ * [1] Barabasi, Albert: [Emergence of Scaling in Random Networks]
66
+ * (http://arxiv.org/pdf/cond-mat/9910332.pdf)
67
+ * [2] ALG 5 of Batagelj, Brandes: [Efficient Generation of Large Random Networks]
68
+ * (https://kops.uni-konstanz.de/bitstream/handle/123456789/5799/random.pdf?sequence=1)
69
+ * [3] Peter Sanders, Christian Schulz: [Scalable generation of scale-free graphs]
70
+ * (https://www.sciencedirect.com/science/article/pii/S0020019016300102)
71
+ *
72
+ * The generator will emit a simple graph, where all
73
+ * new nodes are initially connected to k random neighbors.
74
+ *
75
+ * @param k Number of attachments per node
76
+ * @param nMax Number of nodes in the graph
77
+ * @param initGraph The initial graph to start from
78
+ * @param sequential Specifies whether to use Batagelj and Brandes's method (sequential) or a
79
+ * parallel variant. Default: true.
80
+ */
81
+ BarabasiAlbertGenerator(count k, count nMax, const Graph &initGraph, bool sequential = true);
82
+
83
+ GraphW generate() override;
84
+ };
85
+
86
+ } /* namespace NetworKit */
87
+ #endif // NETWORKIT_GENERATORS_BARABASI_ALBERT_GENERATOR_HPP_
@@ -0,0 +1,46 @@
1
+ /*
2
+ * ChungLu.hpp
3
+ *
4
+ * Created on: Dec 23, 2013
5
+ * Author: Henning
6
+ */
7
+
8
+ #ifndef NETWORKIT_GENERATORS_CHUNG_LU_GENERATOR_HPP_
9
+ #define NETWORKIT_GENERATORS_CHUNG_LU_GENERATOR_HPP_
10
+
11
+ #include <networkit/generators/StaticDegreeSequenceGenerator.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ /**
16
+ * @ingroup generators
17
+ * Given an arbitrary degree sequence, the Chung-Lu generative model
18
+ * will produce a random graph with the same expected degree sequence.
19
+ *
20
+ * see Chung, Lu: The average distances in random graphs with given expected degrees
21
+ * and Chung, Lu: Connected Components in Random Graphs with Given Expected Degree Sequences.
22
+ * Aiello, Chung, Lu: A Random Graph Model for Massive Graphs describes a different generative model
23
+ * which is basically asymptotically equivalent but produces multi-graphs.
24
+ *
25
+ * This follows the implementation of Joel Miller and Aric Hagberg's
26
+ * "Efficient Generation of Networks with Given Expected Degrees" (2011)
27
+ * http://aric.hagberg.org/papers/miller-2011-efficient.pdf .
28
+ * It gives a complexity of O(n+m) as opposed to quadratic.
29
+ *
30
+ */
31
+
32
+ class ChungLuGenerator final : public StaticDegreeSequenceGenerator {
33
+ count sum_deg;
34
+ count n;
35
+
36
+ public:
37
+ ChungLuGenerator(const std::vector<count> &degreeSequence);
38
+
39
+ /**
40
+ * Generates graph with expected degree sequence seq.
41
+ */
42
+ GraphW generate() override;
43
+ };
44
+
45
+ } /* namespace NetworKit */
46
+ #endif // NETWORKIT_GENERATORS_CHUNG_LU_GENERATOR_HPP_
@@ -0,0 +1,63 @@
1
+ /*
2
+ * ChungLuGeneratorAlamEtAl.hpp
3
+ *
4
+ * Created on: Dec 23, 2013
5
+ * Author: Henning
6
+ * Contributors: Hoske/Weisbarth/Hering
7
+ */
8
+
9
+ #ifndef NETWORKIT_GENERATORS_CHUNG_LU_GENERATOR_ALAM_ET_AL_HPP_
10
+ #define NETWORKIT_GENERATORS_CHUNG_LU_GENERATOR_ALAM_ET_AL_HPP_
11
+
12
+ #include <networkit/generators/StaticDegreeSequenceGenerator.hpp>
13
+ #include <networkit/generators/StaticGraphGenerator.hpp>
14
+
15
+ namespace NetworKit {
16
+
17
+ /**
18
+ * @ingroup generators
19
+ * The Chung-Lu generative model produces a random graph for a given expected degree sequence.
20
+ * For reference, see the original model proposed by Chung and Lu in [1] and [2].
21
+ * This implementation follows a newer parallelizable algorithm [3] by M. Alam, M. Khan et al.:
22
+ * The time complexity is O(m/p + delta + p), where m is the number of edges, p are the number of
23
+ * threads, and delta is the number of distinct node degrees from the input sequence. Furthermore
24
+ * the space complexity is O(delta) for each of the p threads.
25
+ *
26
+ * [1] F. Chung, L. Lu: [The Average Distance in a Random Graph with Given Expected
27
+ * Degree](https://www.researchgate.net/publication/11004006_The_Average_Distance_in_a_Random_Graph_with_Given_Expected_Degree)
28
+ *
29
+ * [2] F. Chung, L. Lu: [Connected Components in Random Graphs with Given Expected Degree
30
+ * Sequences](https://link.springer.com/article/10.1007/PL00012580)
31
+ *
32
+ * [3] M. Alam, M. Khan, et al.: [An Efficient and Scalable Algorithmic Method for Generating
33
+ * Large-Scale Random Graphs](https://ieeexplore.ieee.org/document/7877110)
34
+ */
35
+
36
+ class ChungLuGeneratorAlamEtAl final : StaticGraphGenerator {
37
+ struct VertexGroup {
38
+ count degrees;
39
+ count vertexCount;
40
+ count startIndex;
41
+ };
42
+ std::vector<VertexGroup> groups;
43
+ count sum_deg;
44
+ count n;
45
+ bool parallel;
46
+
47
+ template <typename F>
48
+ void edgeSkipping(std::mt19937_64 &generator, F &&addEdge, index i, index j, double p,
49
+ index end);
50
+ GraphW generateSequential();
51
+ GraphW generateParallel();
52
+
53
+ public:
54
+ ChungLuGeneratorAlamEtAl(const std::vector<count> &degreeSequence, bool parallel = false);
55
+
56
+ /**
57
+ * Generates graph with expected degree sequence seq.
58
+ */
59
+ GraphW generate() override;
60
+ };
61
+
62
+ } /* namespace NetworKit */
63
+ #endif // NETWORKIT_GENERATORS_CHUNG_LU_GENERATOR_ALAM_ET_AL_HPP_