@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,236 @@
1
+ /*
2
+ * HyperbolicGenerator.hpp
3
+ *
4
+ * Created on: 20.05.2014
5
+ * Author: Moritz v. Looz
6
+ */
7
+
8
+ #ifndef NETWORKIT_GENERATORS_HYPERBOLIC_GENERATOR_HPP_
9
+ #define NETWORKIT_GENERATORS_HYPERBOLIC_GENERATOR_HPP_
10
+
11
+ #include <cmath>
12
+ #include <vector>
13
+
14
+ #include <networkit/auxiliary/Timer.hpp>
15
+ #include <networkit/generators/StaticGraphGenerator.hpp>
16
+ #include <networkit/generators/quadtree/Quadtree.hpp>
17
+ #include <networkit/geometric/HyperbolicSpace.hpp>
18
+
19
+ namespace NetworKit {
20
+
21
+ /**
22
+ * @ingroup generators
23
+ */
24
+ class HyperbolicGenerator final : public StaticGraphGenerator {
25
+ friend class DynamicHyperbolicGenerator;
26
+
27
+ public:
28
+ /**
29
+ * @param[in] n Number of nodes
30
+ * @param[in] k Target average degree
31
+ * @param[in] exp Target exponent of power-law distribution
32
+ * @param[in] T Temperature
33
+ */
34
+ HyperbolicGenerator(count n = 10000, double avgDegree = 6, double exp = 3, double T = 0);
35
+
36
+ /**
37
+ * @param[in] angles Pointer to angles of node positions
38
+ * @param[in] radii Pointer to radii of node positions
39
+ * @param[in] r radius of poincare disk to place nodes in
40
+ * @param[in] thresholdDistance Edges are added for nodes closer to each other than this
41
+ * threshold
42
+ * @return Graph to be generated according to parameters
43
+ */
44
+ GraphW generate(const vector<double> &angles, const vector<double> &radii, double R,
45
+ double T = 0);
46
+
47
+ GraphW generateCold(const vector<double> &angles, const vector<double> &radii, double R);
48
+
49
+ /**
50
+ * @return Graph to be generated according to parameters specified in constructor.
51
+ */
52
+ GraphW generate() override;
53
+
54
+ /**
55
+ * Set the capacity of a quadtree leaf.
56
+ *
57
+ * @param capacity Tuning parameter, default value is 1000
58
+ */
59
+ void setLeafCapacity(count capacity) { this->capacity = capacity; }
60
+
61
+ /**
62
+ * When using a theoretically optimal split, the quadtree will be flatter, but running time
63
+ * usually longer.
64
+ * @param split Whether to use the theoretically optimal split. Defaults to false
65
+ */
66
+ void setTheoreticalSplit(bool split) { this->theoreticalSplit = split; }
67
+
68
+ void setBalance(double balance) { this->balance = balance; }
69
+
70
+ vector<double> getElapsedMilliseconds() const {
71
+ vector<double> result(threadtimers.size());
72
+ for (index i = 0; i < result.size(); i++) {
73
+ result[i] = threadtimers[i].elapsedMilliseconds();
74
+ }
75
+ return result;
76
+ }
77
+
78
+ private:
79
+ /**
80
+ * Set tuning parameters to their default values
81
+ */
82
+ void initialize();
83
+
84
+ GraphW generate(count n, double R, double alpha, double T = 0);
85
+
86
+ static vector<vector<double>>
87
+ getBandAngles(const vector<vector<Point2DWithIndex<double>>> &bands) {
88
+ vector<vector<double>> bandAngles(bands.size());
89
+ #pragma omp parallel for
90
+ for (omp_index i = 0; i < static_cast<omp_index>(bands.size()); i++) {
91
+ const count currentBandSize = bands[i].size();
92
+ bandAngles[i].resize(currentBandSize);
93
+ for (index j = 0; j < currentBandSize; j++) {
94
+ bandAngles[i][j] = bands[i][j].getX();
95
+ }
96
+ }
97
+ return bandAngles;
98
+ }
99
+
100
+ static vector<double> getBandRadii(int n, double R, double seriesRatio = 0.9) {
101
+ /*
102
+ * We assume band differences form a geometric series.
103
+ * Thus, there is a constant ratio(r) between band length differences
104
+ * i.e (c2-c1)/(c1-c0) = (c3-c2)/(c2-c1) = r
105
+ */
106
+ vector<double> bandRadius;
107
+ bandRadius.push_back(0);
108
+ double a = R * (1 - seriesRatio) / (1 - std::pow(seriesRatio, std::log(n)));
109
+ const double logn = std::log(n);
110
+
111
+ for (int i = 1; i < logn; i++) {
112
+ double c_i = a * ((1 - std::pow(seriesRatio, i)) / (1 - seriesRatio));
113
+ bandRadius.push_back(c_i);
114
+ }
115
+ bandRadius.push_back(R);
116
+ return bandRadius;
117
+ }
118
+
119
+ static std::tuple<double, double> getMinMaxTheta(double angle, double radius, double cLow,
120
+ double thresholdDistance) {
121
+ /**
122
+ Calculates the angles that are enclosing the intersection of the hyperbolic disk that is
123
+ around point v and the bands. Calculation is as follows:
124
+ 1. For the most inner band, return [0, 2pi]
125
+ 2. For other bands, consider the point P which lies on the tangent from origin to the
126
+ disk of point v. Its radial coordinates would be(cHigh, point[1]+deltaTheta). We're
127
+ looking for the deltaTheta. We know the distance from point v to P is R. Thus, we can
128
+ solve the hyperbolic distance of (v, P) for deltaTheta. Then, thetaMax is simply
129
+ point[1] + deltaTheta and thetaMin is point[1] - deltaTheta.
130
+ */
131
+
132
+ // Most innerband is defined by cLow = 0
133
+ double minTheta, maxTheta;
134
+ if (cLow == 0)
135
+ return std::make_tuple(0.0, 2 * PI);
136
+
137
+ double a = (std::cosh(radius) * std::cosh(cLow) - std::cosh(thresholdDistance))
138
+ / (std::sinh(radius) * std::sinh(cLow));
139
+ // handle floating point error
140
+ if (a < -1)
141
+ a = -1;
142
+ else if (a > 1)
143
+ a = 1;
144
+ a = std::acos(a);
145
+ maxTheta = angle + a;
146
+ minTheta = angle - a;
147
+ return std::make_tuple(minTheta, maxTheta);
148
+ }
149
+
150
+ static vector<Point2DWithIndex<double>>
151
+ getPointsWithinAngles(double minTheta, double maxTheta,
152
+ const vector<Point2DWithIndex<double>> &band,
153
+ vector<double> &bandAngles) {
154
+ /**
155
+ Returns the list of points, w, that lies within minTheta and maxTheta
156
+ in the supplied band(That area is called as slab)
157
+ */
158
+ assert(band.size() == bandAngles.size());
159
+
160
+ vector<Point2DWithIndex<double>> slab;
161
+
162
+ std::vector<double>::iterator low;
163
+ std::vector<double>::iterator high;
164
+
165
+ if (minTheta == -2 * PI)
166
+ minTheta = 0;
167
+ // Case 1: We do not have overlap 2pi, simply put all the points between min and max to the
168
+ // list
169
+ if (maxTheta <= 2 * PI && minTheta >= 0) {
170
+ low = std::lower_bound(bandAngles.begin(), bandAngles.end(), minTheta);
171
+ high = std::upper_bound(bandAngles.begin(), bandAngles.end(), maxTheta);
172
+ auto first = band.begin() + (low - bandAngles.begin());
173
+ auto last = band.begin() + (high - bandAngles.begin());
174
+ // Q: Does this operation increases the complexity ? It is linear in times of high - low
175
+ // Does not increase the complexity, since we have to check these points anyway
176
+ slab.insert(slab.end(), first, last);
177
+ }
178
+ // Case 2: We have 'forward' overlap at 2pi, that is maxTheta > 2pi
179
+ else if (maxTheta > 2 * PI) {
180
+ // 1. Get points from minTheta to 2pi
181
+ low = std::lower_bound(bandAngles.begin(), bandAngles.end(), minTheta);
182
+ high = std::upper_bound(bandAngles.begin(), bandAngles.end(), 2 * PI);
183
+ auto first = band.begin() + (low - bandAngles.begin());
184
+ auto last = band.begin() + (high - bandAngles.begin());
185
+ slab.insert(slab.end(), first, last);
186
+
187
+ // 2. Get points from 0 to maxTheta%2pi
188
+ low = std::lower_bound(bandAngles.begin(), bandAngles.end(), 0);
189
+ maxTheta = fmod(maxTheta, (2 * PI));
190
+ high = std::upper_bound(bandAngles.begin(), bandAngles.end(), maxTheta);
191
+ auto first2 = band.begin() + (low - bandAngles.begin());
192
+ auto last2 = band.begin() + (high - bandAngles.begin());
193
+ slab.insert(slab.end(), first2, last2);
194
+ }
195
+ // Case 3: We have 'backward' overlap at 2pi, that is minTheta < 0
196
+ else if (minTheta < 0) {
197
+ // 1. Get points from 2pi + minTheta to 2pi
198
+ minTheta = (2 * PI) + minTheta;
199
+ low = std::lower_bound(bandAngles.begin(), bandAngles.end(), minTheta);
200
+ high = std::upper_bound(bandAngles.begin(), bandAngles.end(), 2 * PI);
201
+ auto first = band.begin() + (low - bandAngles.begin());
202
+ auto last = band.begin() + (high - bandAngles.begin());
203
+ slab.insert(slab.end(), first, last);
204
+
205
+ // 2. Get points from 0 to maxTheta
206
+ low = std::lower_bound(bandAngles.begin(), bandAngles.end(), 0);
207
+ high = std::upper_bound(bandAngles.begin(), bandAngles.end(), maxTheta);
208
+ auto first2 = band.begin() + (low - bandAngles.begin());
209
+ auto last2 = band.begin() + (high - bandAngles.begin());
210
+ slab.insert(slab.end(), first2, last2);
211
+ }
212
+ return slab;
213
+ }
214
+
215
+ /**
216
+ * graph parameters
217
+ */
218
+ count nodeCount;
219
+ double R;
220
+ double alpha;
221
+ double temperature;
222
+
223
+ /**
224
+ * tuning parameters
225
+ */
226
+ count capacity;
227
+ bool theoreticalSplit;
228
+ double balance = 0.5;
229
+
230
+ /**
231
+ * times
232
+ */
233
+ vector<Aux::Timer> threadtimers;
234
+ };
235
+ } // namespace NetworKit
236
+ #endif // NETWORKIT_GENERATORS_HYPERBOLIC_GENERATOR_HPP_
@@ -0,0 +1,175 @@
1
+ #ifndef NETWORKIT_GENERATORS_LFR_GENERATOR_HPP_
2
+ #define NETWORKIT_GENERATORS_LFR_GENERATOR_HPP_
3
+
4
+ #include <networkit/base/Algorithm.hpp>
5
+ #include <networkit/generators/StaticGraphGenerator.hpp>
6
+ #include <networkit/graph/Graph.hpp>
7
+ #include <networkit/structures/Partition.hpp>
8
+
9
+ namespace NetworKit {
10
+
11
+ /**
12
+ * @ingroup generators
13
+ * The LFR clustered graph generator as introduced by Andrea Lancichinetti, Santo Fortunato, and
14
+ * Filippo Radicchi.
15
+ *
16
+ * The community assignment follows the algorithm described in
17
+ * "Benchmark graphs for testing community detection algorithms". The edge generation is however
18
+ * taken from their follow-up publication "Benchmarks for testing community detection algorithms on
19
+ * directed and weighted graphs with overlapping communities". Parts of the implementation follow
20
+ * the choices made in their implementation which is available at
21
+ * https://sites.google.com/site/andrealancichinetti/software but other parts differ, for example
22
+ * some more checks for the realizability of the community and degree size distributions are done
23
+ * instead of heavily modifying the distributions.
24
+ *
25
+ * The edge-switching markov-chain algorithm implementation in NetworKit is used which is different
26
+ * from the implementation in the original LFR benchmark.
27
+ */
28
+ class LFRGenerator final : public Algorithm, public StaticGraphGenerator {
29
+ public:
30
+ /**
31
+ * Initialize the LFR generator for @a n nodes.
32
+ *
33
+ * @note You need to set a degree sequence, a community size sequence and a mu using the
34
+ * additionally provided set- or generate-methods.
35
+ *
36
+ * @param n The number of nodes.
37
+ */
38
+ LFRGenerator(count n);
39
+
40
+ /**
41
+ * Set the given degree sequence.
42
+ *
43
+ * @param degreeSequence The degree sequence that shall be used by the generator
44
+ */
45
+ void setDegreeSequence(std::vector<count> degreeSequence);
46
+
47
+ /**
48
+ * Generate and set a power law degree sequence using the given average and maximum degree with
49
+ * the given exponent.
50
+ *
51
+ * @param avgDegree The average degree that shall be reached.
52
+ * @param maxDegree The maximum degree that shall be generated.
53
+ * @param nodeDegreeExp The (negative) exponent of the powerlaw degree sequence.
54
+ */
55
+ void generatePowerlawDegreeSequence(count avgDegree, count maxDegree, double nodeDegreeExp);
56
+
57
+ /**
58
+ * Set the given community size sequence.
59
+ *
60
+ * @param communitySizeSequence The community sizes that shall be used.
61
+ */
62
+ void setCommunitySizeSequence(std::vector<count> communitySizeSequence);
63
+
64
+ /**
65
+ * Set the partition, this replaces the community size sequence and the random assignment of the
66
+ * nodes to communities.
67
+ *
68
+ * @param zeta The partition to use
69
+ */
70
+ void setPartition(Partition zeta);
71
+
72
+ /**
73
+ * Generate a powerlaw community size sequence with the given minimum and maximum size and the
74
+ * given exponent.
75
+ *
76
+ * @param minCommunitySize The minimum community size to generate
77
+ * @param maxCommunitySize The maximum community size to generate
78
+ * @param communitySizeExp The (negative) exponent of the power law community size sequence
79
+ */
80
+ void generatePowerlawCommunitySizeSequence(count minCommunitySize, count maxCommunitySize,
81
+ double communitySizeExp);
82
+
83
+ /**
84
+ * Set the mixing parameter, this is the fraction of neighbors of each node that do not belong
85
+ * to the node's own community.
86
+ *
87
+ * @param mu The mixing parameter that shall be set.
88
+ */
89
+ void setMu(double mu);
90
+
91
+ /**
92
+ * Set the mixing parameter separately for each node. This is for each node the fraction of
93
+ * neighbors that do not belong to the node's own community.
94
+ *
95
+ * @param mu The mixing parameter for each node.
96
+ */
97
+ void setMu(const std::vector<double> &mu);
98
+
99
+ /**
100
+ * Set the internal degree of each node using a binomial distribution such that the expected
101
+ * mixing parameter is the given @a mu.
102
+ *
103
+ * The mixing parameter is for each node the fraction of neighbors that do not belong to the
104
+ * node's own community.
105
+ *
106
+ * @param mu The expected mu that shall be used.
107
+ */
108
+ void setMuWithBinomialDistribution(double mu);
109
+
110
+ /**
111
+ * Generates the graph and the community structure. The algorithm is not parallel.
112
+ */
113
+ void run() override;
114
+
115
+ /**
116
+ * Generates and returns the graph.
117
+ *
118
+ * @return The generated graph.
119
+ */
120
+ GraphW generate() override;
121
+
122
+ /**
123
+ * Returns (a copy of) the generated graph.
124
+ *
125
+ * @return The generated graph.
126
+ */
127
+ GraphW getGraph() const;
128
+
129
+ /**
130
+ * Returns the generated graph using move semantics.
131
+ *
132
+ * @return The generated graph.
133
+ */
134
+ GraphW &&getMoveGraph();
135
+
136
+ /**
137
+ * Returns (a copy of) the generated partition
138
+ *
139
+ * @return The generated graph.
140
+ */
141
+ Partition getPartition() const;
142
+
143
+ /**
144
+ * Returns the generated partition using move semantics.
145
+ *
146
+ * @return The generated partition.
147
+ */
148
+ Partition &&getMovePartition();
149
+
150
+ private:
151
+ /*
152
+ * These methods might be overridden by a sub-class which could use a different model or
153
+ * generator in order to generate the parts of the graph.
154
+ */
155
+ std::vector<std::vector<node>> assignNodesToCommunities();
156
+ GraphW generateIntraClusterGraph(std::vector<count> intraDegreeSequence,
157
+ const std::vector<node> &localToGlobalNode);
158
+ GraphW generateInterClusterGraph(const std::vector<count> &externalDegreeSequence);
159
+
160
+ count n;
161
+ bool hasDegreeSequence;
162
+ std::vector<count> degreeSequence;
163
+ bool hasCommunitySizeSequence;
164
+ std::vector<count> communitySizeSequence;
165
+ bool hasInternalDegreeSequence;
166
+ std::vector<count> internalDegreeSequence;
167
+ bool hasGraph;
168
+ GraphW G;
169
+ bool hasPartition;
170
+ Partition zeta;
171
+ };
172
+
173
+ } // namespace NetworKit
174
+
175
+ #endif // NETWORKIT_GENERATORS_LFR_GENERATOR_HPP_
@@ -0,0 +1,147 @@
1
+ /*
2
+ * MocnikGenerator.hpp
3
+ *
4
+ * Created on: July 7, 2018
5
+ * Author: Franz-Benjamin Mocnik <mail@mocnik-science.net>
6
+ */
7
+
8
+ #ifndef NETWORKIT_GENERATORS_MOCNIK_GENERATOR_HPP_
9
+ #define NETWORKIT_GENERATORS_MOCNIK_GENERATOR_HPP_
10
+
11
+ #include <networkit/generators/StaticGraphGenerator.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ /**
16
+ * @ingroup generators
17
+ */
18
+ class MocnikGenerator final : public StaticGraphGenerator {
19
+ // GENERAL DATA
20
+
21
+ /**
22
+ * Position of each node in space. The index of the vector is also the number of
23
+ * the node.
24
+ */
25
+ std::vector<std::vector<double>> nodePositions;
26
+
27
+ // DATA FOR EACH LAYER
28
+
29
+ /**
30
+ * Collection of nodes.
31
+ */
32
+ using NodeCollection = std::vector<node>;
33
+
34
+ /**
35
+ * The cell array reflects how nodes are assigned to a grid. Each element of
36
+ * the vector corresponds to one grid cell.
37
+ */
38
+ using CellArray = std::vector<NodeCollection>;
39
+
40
+ /**
41
+ * State of a layer
42
+ */
43
+ struct LayerState {
44
+ CellArray a;
45
+ int aMax;
46
+ };
47
+
48
+ // FUNCTIONS RELATED TO THE LAYER STATE
49
+
50
+ /**
51
+ * Initialize the cell array. The second parameter determines how many grid
52
+ * cells shall be contained in each dimension of the cell array.
53
+ */
54
+ void initCellArray(LayerState &s, count numberOfCellsPerDimension);
55
+
56
+ /**
57
+ * Get all nodes that are contained in the i-th grid cell
58
+ */
59
+ NodeCollection getNodes(LayerState &s, int i);
60
+
61
+ /**
62
+ * Add the node with number j to the corresponing grid cell
63
+ */
64
+ void addNode(LayerState &s, int j);
65
+
66
+ /**
67
+ * Determine, for a given position, the index of the corresponding grid cell
68
+ */
69
+ int toIndex(LayerState &s, const std::vector<double> &v);
70
+
71
+ /**
72
+ * Determine, for the given multi-dimensional index, the index of the
73
+ * corresponding grid cell
74
+ */
75
+ int toIndex(LayerState &s, const std::vector<int> &v);
76
+
77
+ /**
78
+ * Determine, for a given index, the multi-dimensional index of a grid cell
79
+ */
80
+ std::vector<int> fromIndex(LayerState &s, int i);
81
+
82
+ /**
83
+ * Determine for a grid cell given by index i the grid cells of distance r
84
+ */
85
+ std::vector<int> boxSurface(LayerState &s, int i, int r);
86
+
87
+ /**
88
+ * Determine for a grid cell given by index i the grid cells within distance r
89
+ */
90
+ std::vector<int> boxVolume(LayerState &s, int j, double r);
91
+
92
+ // EDGE GENERATION
93
+
94
+ /**
95
+ * Add the edges for n nodes and with parameter k to the graph. Thereby, use the
96
+ * provided relative weight. If it is indicated that the edge is part of the
97
+ * base layer, it is not tested whether the edge already exists inside the graph.
98
+ */
99
+ void addEdgesToGraph(GraphW &G, count n, double k, double relativeWeight, bool baseLayer);
100
+
101
+ count dim;
102
+ std::vector<count> ns;
103
+ std::vector<double> ks;
104
+ bool weighted;
105
+ std::vector<double> relativeWeights;
106
+
107
+ public:
108
+ /**
109
+ * Creates random spatial graphs according to the Mocnik model.
110
+ *
111
+ * Please cite the following publications, in which you will find a
112
+ * description of the model:
113
+ *
114
+ * Franz-Benjamin Mocnik: "The Polynomial Volume Law of Complex Networks in
115
+ * the Context of Local and Global Optimization", Scientific Reports 8(11274)
116
+ * 2018. doi: 10.1038/s41598-018-29131-0
117
+ *
118
+ * Franz-Benjamin Mocnik, Andrew Frank: "Modelling Spatial Structures",
119
+ * Proceedings of the 12th Conference on Spatial Information Theory (COSIT),
120
+ * 2015, pages 44-64. doi: 10.1007/978-3-319-23374-1_3
121
+ *
122
+ * Improved algorithm.
123
+ *
124
+ * @param dim Dimension of the space.
125
+ * @param n Number of nodes in the graph; or a list containing the numbers
126
+ * of nodes in each layer in case of a hierarchical model.
127
+ * @param k Density parameter, determining the ratio of edges to nodes; in
128
+ * case of a hierarchical model, also a list of density parameters can be
129
+ * provided.
130
+ * @param weighted Determines whether weights should be added to the edges;
131
+ * in case of a hierarchical model, also a list of relative weights can be
132
+ * provided.
133
+ */
134
+ MocnikGenerator(count dim, count n, double k, bool weighted = false);
135
+ MocnikGenerator(count dim, std::vector<count> ns, double k, bool weighted = false);
136
+ MocnikGenerator(count dim, std::vector<count> ns, std::vector<double> ks,
137
+ bool weighted = false);
138
+ MocnikGenerator(count dim, count n, double k, std::vector<double> weighted);
139
+ MocnikGenerator(count dim, std::vector<count> ns, double k, std::vector<double> weighted);
140
+ MocnikGenerator(count dim, std::vector<count> ns, std::vector<double> ks,
141
+ std::vector<double> weighted);
142
+
143
+ GraphW generate() override;
144
+ };
145
+
146
+ } /* namespace NetworKit */
147
+ #endif // NETWORKIT_GENERATORS_MOCNIK_GENERATOR_HPP_
@@ -0,0 +1,58 @@
1
+ /*
2
+ * MocnikGeneratorBasic.hpp
3
+ *
4
+ * Created on: July 7, 2018
5
+ * Author: Franz-Benjamin Mocnik <mail@mocnik-science.net>
6
+ */
7
+
8
+ #ifndef NETWORKIT_GENERATORS_MOCNIK_GENERATOR_BASIC_HPP_
9
+ #define NETWORKIT_GENERATORS_MOCNIK_GENERATOR_BASIC_HPP_
10
+
11
+ #include <networkit/generators/StaticGraphGenerator.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ /**
16
+ * @ingroup generators
17
+ */
18
+ class MocnikGeneratorBasic : public StaticGraphGenerator {
19
+ // GENERAL DATA
20
+
21
+ /**
22
+ * Position of each node in space. The index of the vector is also the number of
23
+ * the node.
24
+ */
25
+ std::vector<std::vector<double>> nodePositions;
26
+
27
+ count dim;
28
+ count n;
29
+ double k;
30
+
31
+ public:
32
+ /**
33
+ * Creates random spatial graphs according to the Mocnik model.
34
+ *
35
+ * Please cite the following publications, in which you will find a
36
+ * description of the model:
37
+ *
38
+ * Franz-Benjamin Mocnik: "The Polynomial Volume Law of Complex Networks in
39
+ * the Context of Local and Global Optimization", Scientific Reports 8(11274)
40
+ * 2018. doi: 10.1038/s41598-018-29131-0
41
+ *
42
+ * Franz-Benjamin Mocnik, Andrew Frank: "Modelling Spatial Structures",
43
+ * Proceedings of the 12th Conference on Spatial Information Theory (COSIT),
44
+ * 2015, pages 44-64. doi: 10.1007/978-3-319-23374-1_3
45
+ *
46
+ * Non-improved algorithm.
47
+ *
48
+ * @param dim Dimension of the space.
49
+ * @param n Number of nodes in the graph.
50
+ * @param k Density parameter, determining the ratio of edges to nodes.
51
+ */
52
+ MocnikGeneratorBasic(count dim, count n, double k);
53
+
54
+ GraphW generate() override;
55
+ };
56
+
57
+ } /* namespace NetworKit */
58
+ #endif // NETWORKIT_GENERATORS_MOCNIK_GENERATOR_BASIC_HPP_