@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,303 @@
1
+ /*
2
+ * GlobalTradeSequence.hpp
3
+ *
4
+ * This header file is deprecated and will eventually be removed.
5
+ * Do not included it directly.
6
+ *
7
+ * Created on: 23.05.2018
8
+ * Author: Manuel Penschuck <networkit@manuel.jetzt>
9
+ */
10
+
11
+ #ifndef NETWORKIT_RANDOMIZATION_GLOBAL_TRADE_SEQUENCE_HPP_
12
+ #define NETWORKIT_RANDOMIZATION_GLOBAL_TRADE_SEQUENCE_HPP_
13
+
14
+ #ifndef NETWORKIT_PRIVATE_RANDOMIZATION_GLOBAL_TRADE_SEQUENCE_HPP_
15
+ #if defined(__clang__) || defined(__GNUG__)
16
+ #warning "This header file is deprecated. Do not included it directly."
17
+ #elif defined(_MSC_VER)
18
+ #pragma message("This header file is deprecated. Do not included it directly.")
19
+ #endif
20
+ #endif // NETWORKIT_PRIVATE_RANDOMIZATION_GLOBAL_TRADE_SEQUENCE_HPP_
21
+
22
+ #include <cassert>
23
+ #include <cmath>
24
+ #include <iostream>
25
+ #include <random>
26
+ #include <tuple>
27
+ #include <type_traits>
28
+
29
+ #include <networkit/Globals.hpp>
30
+ #include <networkit/auxiliary/Log.hpp>
31
+
32
+ namespace NetworKit {
33
+ namespace CurveballDetails {
34
+
35
+ template <typename T>
36
+ class FixedLinearCongruentialMap; // forward declaration (implementation below)
37
+
38
+ /**
39
+ * Computes a bijection f:[p]->[p], x -> (a*x+b) mod p where p is chosen
40
+ * as the smallest p >= n and p prime. a and b are drawn unif at random.
41
+ * @tparam T
42
+ */
43
+ template <typename T>
44
+ class LinearCongruentialMap {
45
+ static_assert(!std::is_signed<T>::value, "LinearCongruentialMap requires unsigned types");
46
+
47
+ using signed_value_type = typename std::make_signed<T>::type;
48
+ using signed_tuple = std::tuple<signed_value_type, signed_value_type, signed_value_type>;
49
+
50
+ friend FixedLinearCongruentialMap<T>;
51
+
52
+ public:
53
+ using value_type = T;
54
+
55
+ LinearCongruentialMap() {}
56
+
57
+ explicit LinearCongruentialMap(value_type n, unsigned seed = 0) : n(n), p(computeNextPrime(n)) {
58
+ std::mt19937_64 prng(seed * n + n);
59
+ sampleParameters(prng);
60
+ }
61
+
62
+ LinearCongruentialMap(value_type n, std::mt19937_64 &prng) : n(n), p(computeNextPrime(n)) {
63
+ sampleParameters(prng);
64
+ }
65
+
66
+ LinearCongruentialMap(value_type n, value_type a, value_type b)
67
+ : n(n), p(computeNextPrime(n)), a(a),
68
+ ainv(static_cast<value_type>((std::get<1>(gcdExtended(a, p)) + p) % p)), b(b) {}
69
+
70
+ LinearCongruentialMap(const LinearCongruentialMap &) = default;
71
+ LinearCongruentialMap(LinearCongruentialMap &&) noexcept = default;
72
+ LinearCongruentialMap &operator=(const LinearCongruentialMap &) = default;
73
+ LinearCongruentialMap &operator=(LinearCongruentialMap &&) noexcept = default;
74
+
75
+ //! Hashes [n] to [p] with (a*x+b) mod p
76
+ value_type hash(value_type n) const { return (a * n + b) % p; }
77
+
78
+ //! Alias to hash(n)
79
+ value_type operator()(value_type n) const { return hash(n); }
80
+
81
+ //! invert(hash(x)) == x
82
+ value_type invert(value_type y) const { return ainv * (y + p - b) % p; }
83
+
84
+ //! Is true if there exists no x in [n], s.t. h(x) == y,
85
+ //! i.e. it can be used to determine if the map maps to y
86
+ bool isGap(value_type y) const { return invert(y) >= n; }
87
+
88
+ //! randomly samples parameters a and b
89
+ void sampleParameters(std::mt19937_64 &prng) {
90
+ const value_type max_a = std::numeric_limits<value_type>::max() / n - 1;
91
+ if (max_a < p) {
92
+ std::cerr << "WARNING: Reduce randomness of hash function to avoid integer "
93
+ "precision issues\n";
94
+ }
95
+
96
+ a = std::uniform_int_distribution<value_type>{1, std::min<value_type>(p, max_a) - 1}(prng);
97
+ ainv = static_cast<value_type>((std::get<1>(gcdExtended(a, p)) + p) % p);
98
+ b = std::uniform_int_distribution<value_type>{0, p - 1}(prng);
99
+ }
100
+
101
+ //! Sets parameters a = 1 and b = 0
102
+ void setAsIdentity() {
103
+ a = 1;
104
+ b = 0;
105
+ ainv = 1;
106
+ }
107
+
108
+ value_type param_a() const { return a; }
109
+ value_type param_ainv() const { return ainv; }
110
+ value_type param_b() const { return b; }
111
+ value_type param_p() const { return p; }
112
+
113
+ private:
114
+ value_type n; //< number of elements to be mapped
115
+ value_type p; //< size of the universe chosen to be >= n
116
+
117
+ value_type a; //< multiplicative parameter in hash
118
+ value_type ainv; //< multiplicative invert
119
+
120
+ value_type b; //< additive parameter in hash
121
+
122
+ value_type computeNextPrime(value_type n) const {
123
+ auto is_prime = [](value_type n) {
124
+ if (n <= 3)
125
+ return true;
126
+ if (0 == n % 2 || 0 == n % 3)
127
+ return false;
128
+
129
+ const value_type sqrt = static_cast<value_type>(std::sqrt(n) + 2);
130
+ for (value_type i = 5; i < sqrt; i += 6)
131
+ if (0 == n % i)
132
+ return false;
133
+
134
+ return true;
135
+ };
136
+
137
+ while (!is_prime(n))
138
+ n++;
139
+
140
+ return n;
141
+ }
142
+
143
+ // extended Euclidean algorithm with 1 = gcd(a, p) = a*s + t*p mod p = a*s
144
+ // --> s = 1/a
145
+ static signed_tuple gcdExtended(signed_value_type a, signed_value_type b) noexcept {
146
+ if (a == 0)
147
+ return signed_tuple{b, 0, 1};
148
+
149
+ const value_type div = b / a;
150
+ const value_type rem = b % a;
151
+
152
+ const auto recursion = gcdExtended(rem, a);
153
+ value_type x = std::get<2>(recursion) - div * std::get<1>(recursion);
154
+
155
+ return signed_tuple(std::get<0>(recursion), x, std::get<1>(recursion));
156
+ }
157
+ };
158
+
159
+ /**
160
+ * Computes a bijection f:[p]->[p], x -> (a*x+b) mod p where p is chosen
161
+ * as the smallest p >= n and p prime. a and b are drawn unif at random.
162
+ * @tparam T
163
+ */
164
+ template <typename T>
165
+ class FixedLinearCongruentialMap {
166
+ static_assert(!std::is_signed<T>::value, "LinearCongruentialMap requires unsigned types");
167
+
168
+ using signed_value_type = typename std::make_signed<T>::type;
169
+ using signed_tuple = std::tuple<signed_value_type, signed_value_type, signed_value_type>;
170
+
171
+ public:
172
+ using value_type = T;
173
+
174
+ FixedLinearCongruentialMap() {}
175
+
176
+ explicit FixedLinearCongruentialMap(value_type n, unsigned seed = 0) : n(n) {
177
+ std::mt19937_64 prng(seed * n + n);
178
+ sampleParameters(prng);
179
+ }
180
+
181
+ FixedLinearCongruentialMap(value_type n, std::mt19937_64 &prng) : n(n) {
182
+ sampleParameters(prng);
183
+ }
184
+
185
+ FixedLinearCongruentialMap(value_type n, value_type a, value_type b)
186
+ : n(n), a(a), //
187
+ ainv(static_cast<value_type>(
188
+ (std::get<1>(LinearCongruentialMap<T>::gcdExtended(a, p)) + p) % p)),
189
+ b(b) {}
190
+
191
+ FixedLinearCongruentialMap(const FixedLinearCongruentialMap &) = default;
192
+ FixedLinearCongruentialMap(FixedLinearCongruentialMap &&) noexcept = default;
193
+ FixedLinearCongruentialMap &operator=(const FixedLinearCongruentialMap &) = default;
194
+ FixedLinearCongruentialMap &operator=(FixedLinearCongruentialMap &&) noexcept = default;
195
+
196
+ //! Hashes [n] to [p] with (a*x+b) mod p
197
+ value_type hash(value_type n) const { return (a * n + b) % p; }
198
+
199
+ //! Alias to hash(n)
200
+ value_type operator()(value_type n) const { return hash(n); }
201
+
202
+ //! invert(hash(x)) == x
203
+ value_type invert(value_type y) const { return ainv * (y + p - b) % p; }
204
+
205
+ //! Is true if there exists no x in [n], s.t. h(x) == y,
206
+ //! i.e. it can be used to determine if the map maps to y
207
+ bool isGap(value_type y) const { return invert(y) >= n; }
208
+
209
+ //! randomly samples parameters a and b
210
+ void sampleParameters(std::mt19937_64 &prng) {
211
+ if (n >= p)
212
+ throw std::runtime_error("Support only up to 2147483646 nodes");
213
+
214
+ a = std::uniform_int_distribution<value_type>{1, p - 1}(prng);
215
+ ainv = static_cast<value_type>(
216
+ (std::get<1>(LinearCongruentialMap<T>::gcdExtended(a, p)) + p) % p);
217
+ b = std::uniform_int_distribution<value_type>{0, p - 1}(prng);
218
+ }
219
+
220
+ //! Sets parameters a = 1 and b = 0
221
+ void setAsIdentity() {
222
+ a = 1;
223
+ b = 0;
224
+ ainv = 1;
225
+ }
226
+
227
+ value_type param_a() const { return a; }
228
+ value_type param_ainv() const { return ainv; }
229
+ value_type param_b() const { return b; }
230
+ value_type param_p() const { return p; }
231
+
232
+ private:
233
+ value_type n; //< number of elements to be mapped
234
+ static constexpr value_type p = 2147483647;
235
+
236
+ value_type a; //< multiplicative parameter in hash
237
+ value_type ainv; //< multiplicative invert
238
+
239
+ value_type b; //< additive parameter in hash
240
+ };
241
+
242
+ /**
243
+ * Handles a sequence of num_global_trades hash functions each with its own
244
+ * set of parameters. It prominently exposes the "current" hash function
245
+ * and its successors. Switching the current hash function is possible with
246
+ * using the switch_to_round method.
247
+ *
248
+ * hash, invert access the "current" hash function
249
+ * hash_next accesses the successor of "current" which is the identity if
250
+ * there are no further hash functions
251
+ *
252
+ * @tparam Default constructable, copy-able, requires methods
253
+ * sample_parameters, set_as_identity, hash and (optinally) invert
254
+ */
255
+ template <typename Hash>
256
+ class GlobalTradeSequence {
257
+ public:
258
+ using value_type = typename Hash::value_type;
259
+
260
+ GlobalTradeSequence(node num_nodes, size_t num_global_trades, std::mt19937_64 &prng) {
261
+ hashFunctors.reserve(num_global_trades);
262
+ hashFunctors.push_back(Hash{num_nodes, prng});
263
+
264
+ while (hashFunctors.size() < num_global_trades) {
265
+ // we copy the hash function, rather than constructing a new one,
266
+ // to avoid repeated computations, such as the next larger prime
267
+ // number
268
+ hashFunctors.push_back(hashFunctors.back());
269
+ hashFunctors.back().sampleParameters(prng);
270
+ }
271
+
272
+ switchToRound(0);
273
+ }
274
+
275
+ void switchToRound(size_t round) {
276
+ assert(round < hashFunctors.size());
277
+ current = hashFunctors[round];
278
+ if (round + 1 == hashFunctors.size()) {
279
+ next = current;
280
+ next.setAsIdentity();
281
+ } else {
282
+ next = hashFunctors[round + 1];
283
+ }
284
+ }
285
+
286
+ value_type hash(node u) const { return current.hash(u); }
287
+
288
+ node invert(value_type u) const { return current.invert(u); }
289
+
290
+ value_type hashNext(node u) const { return next.hash(u); }
291
+
292
+ size_t numberOfRounds() const { return hashFunctors.size(); }
293
+
294
+ private:
295
+ std::vector<Hash> hashFunctors;
296
+ Hash current;
297
+ Hash next;
298
+ };
299
+
300
+ } // namespace CurveballDetails
301
+ } // namespace NetworKit
302
+
303
+ #endif // NETWORKIT_RANDOMIZATION_GLOBAL_TRADE_SEQUENCE_HPP_
@@ -0,0 +1,122 @@
1
+ /*
2
+ * AllSimplePaths.hpp
3
+ *
4
+ * Created on: 23.06.2017
5
+ * Author: Eugenio Angriman <angrimae@hu-berlin.de>
6
+ */
7
+
8
+ #ifndef NETWORKIT_REACHABILITY_ALL_SIMPLE_PATHS_HPP_
9
+ #define NETWORKIT_REACHABILITY_ALL_SIMPLE_PATHS_HPP_
10
+
11
+ #include <networkit/base/Algorithm.hpp>
12
+ #include <networkit/graph/Graph.hpp>
13
+
14
+ namespace NetworKit {
15
+
16
+ /**
17
+ * @ingroup distance
18
+ * Determines all the possible simple paths from a given source node to a target node of a directed
19
+ * unweighted graph. It also accepts a cutoff value i.e. the maximum length of paths.
20
+ */
21
+ class AllSimplePaths final : public Algorithm {
22
+
23
+ public:
24
+ /**
25
+ * Creates the AllSimplePaths class for @a G, source @a s and target @a t.
26
+ *
27
+ * @param G The graph.
28
+ * @param source The source node.
29
+ * @param target The target node.
30
+ * @param cutoff The maximum length of the paths.
31
+ */
32
+ AllSimplePaths(const Graph &G, node source, node target, count cutoff = none);
33
+
34
+ ~AllSimplePaths() override = default;
35
+
36
+ /**
37
+ * This method computes all possible paths from a given source node to a target node.
38
+ */
39
+ void run() override;
40
+
41
+ /**
42
+ * This method returns the number of simple paths from the source node to the target node.
43
+ */
44
+ count numberOfSimplePaths();
45
+
46
+ /*
47
+ * This method returns a vector that contains all the simple paths from a source node to a
48
+ * target node represented by vectors. Each path contains the source node as the first element
49
+ * and the target node as the last element.
50
+ */
51
+ std::vector<std::vector<node>> getAllSimplePaths();
52
+
53
+ /*
54
+ * This method iterates over all the simple paths and it is far more efficient than calling
55
+ * getAllSimplePaths().
56
+ */
57
+ template <typename L>
58
+ void forAllSimplePaths(L handle);
59
+
60
+ /*
61
+ * This method iterates in parallel over all the simple paths and it is far more efficient than
62
+ * calling getAllSimplePaths().
63
+ */
64
+ template <typename L>
65
+ void parallelForAllSimplePaths(L handle);
66
+
67
+ private:
68
+ // This method computes all the paths after a reverse BFS from the target node and a normal BFS
69
+ // from the source node.
70
+ void computePaths();
71
+
72
+ // This method returns a queue that contains all the nodes that could be part of a path from the
73
+ // source to the target that crosses @s.
74
+ std::vector<node> getAvailableSources(node s, count pathLength = 0);
75
+
76
+ // The graph
77
+ const Graph *G;
78
+ // The source node
79
+ node source;
80
+ // The target node
81
+ node target;
82
+ // The cutoff i.e. maximum length of paths from source to target. It is optional.
83
+ count cutoff;
84
+
85
+ // This vector contains the distance from each node to the target node.
86
+ std::vector<count> distanceToTarget;
87
+ // This vector contains the distance from the source node to each node.
88
+ std::vector<count> distanceFromSource;
89
+ // This vector contains all the possible paths from source to target.
90
+ std::vector<std::vector<node>> paths;
91
+ };
92
+
93
+ inline count AllSimplePaths::numberOfSimplePaths() {
94
+ assureFinished();
95
+ return paths.size();
96
+ }
97
+
98
+ inline std::vector<std::vector<node>> AllSimplePaths::getAllSimplePaths() {
99
+ assureFinished();
100
+ return paths;
101
+ }
102
+
103
+ template <typename L>
104
+ void AllSimplePaths::forAllSimplePaths(L handle) {
105
+ assureFinished();
106
+ for (std::vector<std::vector<node>>::iterator it = paths.begin(); it != paths.end(); ++it) {
107
+ handle(*it);
108
+ }
109
+ }
110
+
111
+ template <typename L>
112
+ void AllSimplePaths::parallelForAllSimplePaths(L handle) {
113
+ assureFinished();
114
+ #pragma omp parallel for schedule(guided)
115
+ for (omp_index i = 0; i < static_cast<omp_index>(paths.size()); ++i) {
116
+ handle(paths[i]);
117
+ }
118
+ }
119
+
120
+ } // namespace NetworKit
121
+
122
+ #endif // NETWORKIT_REACHABILITY_ALL_SIMPLE_PATHS_HPP_
@@ -0,0 +1,83 @@
1
+
2
+ #ifndef NETWORKIT_REACHABILITY_REACHABLE_NODES_HPP_
3
+ #define NETWORKIT_REACHABILITY_REACHABLE_NODES_HPP_
4
+
5
+ #include <vector>
6
+
7
+ #include <networkit/base/Algorithm.hpp>
8
+ #include <networkit/graph/Graph.hpp>
9
+
10
+ namespace NetworKit {
11
+
12
+ /**
13
+ * @ingroup reachability
14
+ */
15
+ class ReachableNodes final : public Algorithm {
16
+ public:
17
+ /**
18
+ * Determines or estimates the number of reachable nodes from each node in the graph.
19
+ *
20
+ * @param G The graph.
21
+ * @param exact Whether or not to compute the number of reachable nodes exactly. Only used for
22
+ * directed graphs, on undirected graphs the number of reachable nodes from every node can be
23
+ * computed in linear time.
24
+ */
25
+ ReachableNodes(const Graph &G, bool exact = true);
26
+
27
+ /**
28
+ * Runs the algorithm.
29
+ */
30
+ void run() override;
31
+
32
+ /**
33
+ * Returns the number of reachable nodes from the given node @a u. Only available if @a exact is
34
+ * true.
35
+ *
36
+ * @param u A node.
37
+ * @returns The number of nodes reachable from @a u.
38
+ */
39
+ count numberOfReachableNodes(node u) const {
40
+ assureFinished();
41
+ if (!exact)
42
+ throw std::runtime_error("The number of nodes is not computed exactly, run the "
43
+ "algorithm with exact = true.");
44
+ return reachableLB[u];
45
+ }
46
+
47
+ /**
48
+ * Returns a lower bound of the number of reachable nodes from the given node @a u.
49
+ *
50
+ * @param u A node.
51
+ * @returns Lower bound of number of nodes reachable from @a u.
52
+ */
53
+ count numberOfReachableNodesLB(node u) const { return reachableLB[u]; }
54
+
55
+ /**
56
+ * Returns an upper bound of the number of reachable nodes from the given node @a u.
57
+ *
58
+ * @param u A node.
59
+ * @returns Upper bound of number of nodes reachable from @a u.
60
+ */
61
+ count numberOfReachableNodesUB(node u) const {
62
+ assureFinished();
63
+ if (G->isDirected())
64
+ return exact ? reachableLB[u] : reachableUB[u];
65
+ else
66
+ return reachableLB[u];
67
+ }
68
+
69
+ /*
70
+ * Whether or not to compute the reachable nodes exactly.
71
+ */
72
+ bool exact;
73
+
74
+ private:
75
+ const Graph *G;
76
+ std::vector<count> reachableLB, reachableUB;
77
+
78
+ void runDirected();
79
+ void runUndirected();
80
+ };
81
+ } // namespace NetworKit
82
+
83
+ #endif // NETWORKIT_REACHABILITY_REACHABLE_NODES_HPP_
@@ -0,0 +1,51 @@
1
+ /*
2
+ * ApproximatePageRank.hpp
3
+ *
4
+ * Created on: 26.02.2014
5
+ * Author: Henning
6
+ */
7
+
8
+ #ifndef NETWORKIT_SCD_APPROXIMATE_PAGE_RANK_HPP_
9
+ #define NETWORKIT_SCD_APPROXIMATE_PAGE_RANK_HPP_
10
+
11
+ #include <set>
12
+ #include <unordered_map>
13
+ #include <vector>
14
+
15
+ #include <networkit/graph/Graph.hpp>
16
+
17
+ namespace NetworKit {
18
+
19
+ /**
20
+ * Computes an approximate PageRank vector from a given seed.
21
+ */
22
+ class ApproximatePageRank final {
23
+ const Graph *g;
24
+ double alpha;
25
+ double eps;
26
+
27
+ std::unordered_map<node, std::pair<double, double>> prRes;
28
+
29
+ public:
30
+ /**
31
+ * @param g Graph for which an APR is computed.
32
+ * @param alpha Loop probability of random walk.
33
+ * @param epsilon Error tolerance.
34
+ */
35
+ ApproximatePageRank(const Graph &g, double alpha, double epsilon = 1e-12);
36
+
37
+ /**
38
+ * @return Approximate PageRank vector from @a seeds with parameters
39
+ * specified in the constructor.
40
+ */
41
+ std::vector<std::pair<node, double>> run(const std::set<node> &seeds);
42
+
43
+ /**
44
+ * @return Approximate PageRank vector from @a seed with parameters
45
+ * specified in the constructor.
46
+ */
47
+ std::vector<std::pair<node, double>> run(node seed);
48
+ };
49
+
50
+ } /* namespace NetworKit */
51
+ #endif // NETWORKIT_SCD_APPROXIMATE_PAGE_RANK_HPP_
@@ -0,0 +1,55 @@
1
+ #ifndef NETWORKIT_SCD_CLIQUE_DETECT_HPP_
2
+ #define NETWORKIT_SCD_CLIQUE_DETECT_HPP_
3
+
4
+ #include <networkit/scd/SelectiveCommunityDetector.hpp>
5
+
6
+ namespace NetworKit {
7
+
8
+ /**
9
+ * The CliqueDetect algorithm. It finds the largest clique in the seed node's neighborhood.
10
+ *
11
+ * The algorithm can handle weighted graphs. There, the clique with the highest sum of internal edge
12
+ * weights is returned. This sum includes edge weights to the seed node(s) to ensure that cliques
13
+ * that are well-connected to the seed node(s) are preferred.
14
+ *
15
+ * See also: Hamann, M.; Röhrs, E.; Wagner, D. Local Community Detection Based on Small Cliques.
16
+ * Algorithms 2017, 10, 90. https://doi.org/10.3390/a10030090
17
+ */
18
+ class CliqueDetect : public SelectiveCommunityDetector {
19
+
20
+ public:
21
+ /**
22
+ * Construct a Cliquedetect object.
23
+ *
24
+ * @param[in] G The graph to detect communities on
25
+ */
26
+ CliqueDetect(const Graph &g);
27
+
28
+ /**
29
+ * Expands a single seed node/vertex into a maximal clique.
30
+ *
31
+ * @param[in] s the seed node
32
+ * @return A community of the seed node
33
+ */
34
+ std::set<node> expandOneCommunity(node seed) override;
35
+
36
+ /**
37
+ * Detect a single clique for the given seed nodes.
38
+ *
39
+ * The resulting community is a clique iff the seeds form a clique.
40
+ * Otherwise, only the added nodes form a clique that is fully connected
41
+ * to the seed nodes.
42
+ *
43
+ * @param seeds The seeds for the community.
44
+ * @return The found community as set of nodes.
45
+ */
46
+ std::set<node> expandOneCommunity(const std::set<node> &seeds) override;
47
+
48
+ protected:
49
+ std::vector<node> getMaximumWeightClique(const std::vector<node> &nodes,
50
+ const std::vector<edgeweight> &seedToNodeWeight) const;
51
+ };
52
+
53
+ } // namespace NetworKit
54
+
55
+ #endif // NETWORKIT_SCD_CLIQUE_DETECT_HPP_
@@ -0,0 +1,51 @@
1
+ #ifndef NETWORKIT_SCD_COMBINED_SCD_HPP_
2
+ #define NETWORKIT_SCD_COMBINED_SCD_HPP_
3
+
4
+ #include <networkit/scd/SelectiveCommunityDetector.hpp>
5
+
6
+ namespace NetworKit {
7
+ /**
8
+ * Helper for combining two selective community detection algorithms.
9
+ *
10
+ * This allows to combine two SCD algorithms such that first the first
11
+ * algorithm is executed on the given seed(s) and then the result of
12
+ * the first algorithm is used as the seed set of the second algorithm.
13
+ * This is particularly useful for seeding an algorithm with a clique.
14
+ *
15
+ * @author Michael Hamann <michael.hamann@kit.edu>
16
+ */
17
+ class CombinedSCD : public SelectiveCommunityDetector {
18
+ public:
19
+ /**
20
+ * Initialize the combined algorithm with the given graph and the given two algorithms.
21
+ *
22
+ * @param G The graph to work on.
23
+ * @param first The first algorithm that is run with the given seed(s).
24
+ * @param secodn The second algorithm that is run with the result of the first algorithm.
25
+ */
26
+ CombinedSCD(const Graph &g, SelectiveCommunityDetector &first,
27
+ SelectiveCommunityDetector &second);
28
+
29
+ /**
30
+ * Expand a community with the given seed node using first and second algorithm.
31
+ *
32
+ * @param s The seed node to start with.
33
+ * @return The community found by the second algorithm.
34
+ */
35
+ std::set<node> expandOneCommunity(node s) override;
36
+
37
+ /**
38
+ * Expand a community with the given seed nodes using first and second algorithm.
39
+ *
40
+ * @param s The seed nodes to start with.
41
+ * @return The community found by the second algorithm.
42
+ */
43
+ std::set<node> expandOneCommunity(const std::set<node> &s) override;
44
+
45
+ protected:
46
+ SelectiveCommunityDetector &first;
47
+ SelectiveCommunityDetector &second;
48
+ };
49
+ } // namespace NetworKit
50
+
51
+ #endif // NETWORKIT_SCD_COMBINED_SCD_HPP_