@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,307 @@
1
+ #ifndef NETWORKIT_AUXILIARY_NUMBER_PARSING_HPP_
2
+ #define NETWORKIT_AUXILIARY_NUMBER_PARSING_HPP_
3
+
4
+ #include <algorithm>
5
+ #include <cassert>
6
+ #include <cctype>
7
+ #include <cstdint>
8
+ #include <limits>
9
+ #include <stdexcept>
10
+ #include <tuple>
11
+ #include <type_traits>
12
+
13
+ #include <networkit/auxiliary/Enforce.hpp>
14
+
15
+ namespace Aux {
16
+ namespace Parsing {
17
+
18
+ namespace Impl {
19
+
20
+ template <typename CharIterator>
21
+ std::tuple<CharIterator, char> dropSpaces(CharIterator it, CharIterator end);
22
+
23
+ template <typename Integer>
24
+ double powerOf10(Integer exp);
25
+
26
+ class IntegerTag {};
27
+
28
+ template <typename Integer, typename CharIterator, typename ValidationPolicy>
29
+ std::tuple<Integer, CharIterator> strTo(CharIterator it, CharIterator end, IntegerTag);
30
+
31
+ class RealTag {};
32
+
33
+ template <typename Real, typename CharIterator, typename ValidationPolicy>
34
+ std::tuple<Real, CharIterator> strTo(CharIterator it, CharIterator end, RealTag);
35
+
36
+ template <typename T>
37
+ using ArithmeticTag = typename std::conditional<
38
+ std::is_integral<T>::value, IntegerTag,
39
+ typename std::conditional<std::is_floating_point<T>::value, RealTag, void>::type>::type;
40
+
41
+ } // namespace Impl
42
+
43
+ /**
44
+ * Parses a range of characters as number.
45
+ *
46
+ * @param Number must be either a floating-point-type or an integer-type
47
+ * @param CharIterator must be a valid input-iterator over a type that is
48
+ * implicitly convertable to char
49
+ * @param ValidationPolicy must be a type that is compatible to the checkers from Enforce.h,
50
+ * the default is Asserter, which will check conditions via assert()
51
+ * @param it the start of the character-range
52
+ * @param end the end of the character-range
53
+ *
54
+ * Requirements: The range [it, end) must contain a valid number.
55
+ *
56
+ * @return: A tuple of the parsed value and the iterator after parsing the number and dropping
57
+ * any surrounding whitespace.
58
+ *
59
+ */
60
+ template <typename Number, typename CharIterator, typename ValidationPolicy = Checkers::Asserter>
61
+ std::tuple<Number, CharIterator> strTo(CharIterator it, CharIterator end) {
62
+ return Impl::strTo<Number, CharIterator, ValidationPolicy>(it, end,
63
+ Impl::ArithmeticTag<Number>{});
64
+ }
65
+
66
+ namespace Impl {
67
+
68
+ template <typename Integer, typename CharIterator, typename ValidationPolicy>
69
+ std::tuple<Integer, CharIterator> strTo(CharIterator it, const CharIterator end, IntegerTag) {
70
+ using Impl::dropSpaces;
71
+ ValidationPolicy::enforce(it != end);
72
+
73
+ char c = *it;
74
+ std::tie(it, c) = dropSpaces(it, end);
75
+
76
+ bool isNegative = false;
77
+ if (std::is_signed<Integer>::value) { // this should be optimized away entirely
78
+ switch (c) {
79
+ case '-':
80
+ isNegative = true;
81
+ // fallthrough
82
+ case '+':
83
+ ++it;
84
+ if (it == end) {
85
+ throw std::invalid_argument{"string contains no digits after sign"};
86
+ }
87
+ c = *it;
88
+ break;
89
+ default:
90
+ break;
91
+ }
92
+ }
93
+
94
+ if (!isdigit(c)) {
95
+ throw std::invalid_argument{"string contains no digits"};
96
+ }
97
+
98
+ Integer val = 0;
99
+ while (true) {
100
+ ValidationPolicy::enforce(std::numeric_limits<Integer>::max() / 10 >= val);
101
+
102
+ val *= 10;
103
+
104
+ c -= '0';
105
+ ValidationPolicy::enforce(std::numeric_limits<Integer>::max() - c >= val);
106
+
107
+ val += c;
108
+
109
+ ++it;
110
+ if (it == end) {
111
+ break;
112
+ }
113
+ c = *it;
114
+ if (!isdigit(c)) {
115
+ break;
116
+ }
117
+ }
118
+
119
+ if (isNegative) {
120
+ val = -val;
121
+ }
122
+
123
+ std::tie(it, c) = dropSpaces(it, end);
124
+
125
+ return std::make_tuple(val, it);
126
+ }
127
+
128
+ template <typename Real, typename CharIterator, typename ValidationPolicy>
129
+ std::tuple<Real, CharIterator> strTo(CharIterator it, const CharIterator end, RealTag) {
130
+
131
+ static_assert(std::numeric_limits<Real>::max_digits10
132
+ <= std::numeric_limits<std::uintmax_t>::digits10,
133
+ "can't safe mantissa in biggest integer");
134
+
135
+ using Impl::dropSpaces;
136
+ using Impl::powerOf10;
137
+
138
+ char c;
139
+ bool isNegative = false;
140
+ std::uintmax_t mantissa = 0;
141
+ int exp = 0;
142
+
143
+ auto makeReturnValue = [&]() {
144
+ Real fp_mantissa = mantissa;
145
+ Real value = fp_mantissa * powerOf10(exp);
146
+ if (isNegative) {
147
+ value = -value;
148
+ }
149
+ return std::make_tuple(value, it);
150
+ };
151
+
152
+ // drop whitespace:
153
+ std::tie(it, c) = dropSpaces(it, end);
154
+
155
+ ValidationPolicy::enforce(it != end);
156
+
157
+ // set sign:
158
+ switch (c) {
159
+ case '-':
160
+ isNegative = true;
161
+ // fallthrough
162
+ case '+':
163
+ ++it;
164
+ if (it == end) {
165
+ throw std::invalid_argument{"string contains no digits"};
166
+ }
167
+ c = *it;
168
+ break;
169
+ default:
170
+ break;
171
+ }
172
+
173
+ // number of decimal digits that can be stored in the mantissa and the used integer
174
+ unsigned remainingDigits = std::numeric_limits<Real>::max_digits10;
175
+
176
+ // read 'big' part of the mantissa:
177
+ while (remainingDigits > 0) {
178
+ if (!isdigit(c)) {
179
+ break;
180
+ }
181
+ --remainingDigits;
182
+ mantissa *= 10;
183
+ mantissa += c - '0';
184
+ ++it;
185
+ if (it == end) {
186
+ return makeReturnValue();
187
+ }
188
+ c = *it;
189
+ }
190
+ if (remainingDigits == 0) {
191
+ if (isdigit(c)) {
192
+ // round correctly:
193
+ if (c - '0' >= 5) {
194
+ ++mantissa;
195
+ }
196
+ }
197
+ while (isdigit(c)) {
198
+ ++exp;
199
+ ++it;
200
+ if (it == end) {
201
+ break;
202
+ }
203
+ c = *it;
204
+ }
205
+ }
206
+ // read 'small' part of the mantissa
207
+ if (c == '.') {
208
+ ++it;
209
+ if (it == end) {
210
+ return makeReturnValue();
211
+ }
212
+ c = *it;
213
+ while (remainingDigits > 0) {
214
+ if (!isdigit(c)) {
215
+ break;
216
+ }
217
+ --exp;
218
+ --remainingDigits;
219
+ mantissa *= 10;
220
+ mantissa += c - '0';
221
+ ++it;
222
+ if (it == end) {
223
+ return makeReturnValue();
224
+ }
225
+ c = *it;
226
+ }
227
+ if (isdigit(c)) {
228
+ // round correctly:
229
+ if (c - '0' >= 5) {
230
+ ++mantissa;
231
+ }
232
+ }
233
+ // skip the remaining digits:
234
+ it = std::find_if_not(it, end, isdigit);
235
+ if (it == end) {
236
+ return makeReturnValue();
237
+ }
238
+ c = *it;
239
+ }
240
+
241
+ // calculate the final exponent:
242
+ if (c == 'e' || c == 'E') {
243
+ ++it;
244
+ int tmp;
245
+ // we need to pass IntegerTag explicitly here because we are in a
246
+ // nested namespace. This shouldn't be required anywhere else
247
+ std::tie(tmp, it) = strTo<int, CharIterator, ValidationPolicy>(it, end, IntegerTag{});
248
+ exp += tmp;
249
+ }
250
+
251
+ // drop further whitespace:
252
+ std::tie(it, c) = dropSpaces(it, end);
253
+
254
+ return makeReturnValue();
255
+ }
256
+
257
+ template <typename CharIterator>
258
+ std::tuple<CharIterator, char> dropSpaces(CharIterator it, CharIterator end) {
259
+ char c = 0;
260
+ while (it != end && std::isspace((c = *it))) {
261
+ ++it;
262
+ }
263
+ return std::make_tuple(it, c);
264
+ }
265
+
266
+ template <typename Integer>
267
+ double powerOf10(Integer exp) {
268
+ if (exp < 0) {
269
+ return 1.0 / powerOf10(-exp);
270
+ }
271
+ switch (exp) {
272
+ case 0:
273
+ return 1;
274
+ case 1:
275
+ return 10;
276
+ case 2:
277
+ return 100;
278
+ case 3:
279
+ return 1000;
280
+ case 4:
281
+ return 10000;
282
+ case 5:
283
+ return 100000;
284
+ case 6:
285
+ return 1000000;
286
+ case 7:
287
+ return 10000000;
288
+ case 8:
289
+ return 100000000;
290
+ case 9:
291
+ return 1000000000;
292
+ default:
293
+ auto tmp = powerOf10(exp / 2);
294
+ if (exp % 2 == 0) {
295
+ return tmp * tmp;
296
+ } else {
297
+ return tmp * tmp * 10;
298
+ }
299
+ }
300
+ }
301
+
302
+ } // namespace Impl
303
+
304
+ } // namespace Parsing
305
+ } // namespace Aux
306
+
307
+ #endif // NETWORKIT_AUXILIARY_NUMBER_PARSING_HPP_
@@ -0,0 +1,57 @@
1
+ /*
2
+ * NumericTools.hpp
3
+ *
4
+ * Created on: 15.02.2013
5
+ * Author: Christian Staudt (christian.staudt@kit.edu)
6
+ */
7
+
8
+ #ifndef NETWORKIT_AUXILIARY_NUMERIC_TOOLS_HPP_
9
+ #define NETWORKIT_AUXILIARY_NUMERIC_TOOLS_HPP_
10
+
11
+ #include <limits>
12
+
13
+ namespace Aux {
14
+
15
+ /**
16
+ * Tools to deal with limited precision in numeric computations.
17
+ */
18
+ namespace NumericTools {
19
+
20
+ static constexpr double machineEpsilon = std::numeric_limits<double>::epsilon();
21
+
22
+ static constexpr double acceptableError = 1e-12;
23
+
24
+ template <typename T>
25
+ bool willOverflow(const T &pX, const T &pValue, const T &pMax = std::numeric_limits<T>::max()) {
26
+ return pMax - pValue < pX;
27
+ }
28
+
29
+ template <typename T>
30
+ bool willUnderflow(const T &pX, const T &pValue, const T &pMin = std::numeric_limits<T>::min()) {
31
+ return pMin + pValue > pX;
32
+ }
33
+
34
+ /**
35
+ * Test doubles for equality within a given error.
36
+ */
37
+ bool equal(double x, double y, double error = acceptableError);
38
+
39
+ /**
40
+ * Test doubles for equality within a given error.
41
+ */
42
+ bool le(double x, double y, double error = acceptableError);
43
+
44
+ /**
45
+ * Test doubles for equality within a given error.
46
+ */
47
+ bool ge(double x, double y, double error = acceptableError);
48
+
49
+ /**
50
+ * Test doubles for equality within the smallest possible error.
51
+ */
52
+ bool logically_equal(double a, double b, double error_factor = 1.0);
53
+
54
+ } /* namespace NumericTools */
55
+
56
+ } // namespace Aux
57
+ #endif // NETWORKIT_AUXILIARY_NUMERIC_TOOLS_HPP_
@@ -0,0 +1,56 @@
1
+ /*
2
+ * Header which provides parallel STL implementations when available.
3
+ */
4
+ #ifndef NETWORKIT_AUXILIARY_PARALLEL_HPP_
5
+ #define NETWORKIT_AUXILIARY_PARALLEL_HPP_
6
+
7
+ #include <atomic>
8
+ #include <functional>
9
+
10
+ #if ((defined(__GNUC__) || defined(__GNUG__)) \
11
+ && !(defined(__clang__) || defined(__INTEL_COMPILER))) \
12
+ && defined _OPENMP
13
+ #include <parallel/algorithm>
14
+ #else
15
+ #define NETWORKIT_NO_PARALLEL_STL
16
+ #include <algorithm>
17
+ #endif
18
+
19
+ namespace Aux {
20
+ namespace Parallel {
21
+ #ifdef NETWORKIT_NO_PARALLEL_STL
22
+ using std::max_element;
23
+ using std::sort;
24
+ #else
25
+ using __gnu_parallel::max_element;
26
+ using __gnu_parallel::sort;
27
+ #endif // NETWORKIT_NO_PARALLEL_STL
28
+
29
+ template <typename ValueType, typename Comp>
30
+ void atomic_set(std::atomic<ValueType> &target, const ValueType &input, Comp shallSet) {
31
+ // load current value
32
+ auto curValue = target.load(std::memory_order_relaxed);
33
+
34
+ do {
35
+ if (!shallSet(input, curValue))
36
+ break; // skip if shall not be set (anymore)
37
+ // set new value unless current value has been changed in the meantime, if current value has
38
+ // changed load it (so we can compare again)
39
+ } while (!target.compare_exchange_weak(curValue, input, std::memory_order_release,
40
+ std::memory_order_relaxed));
41
+ }
42
+
43
+ template <typename ValueType>
44
+ void atomic_max(std::atomic<ValueType> &target, const ValueType &input) {
45
+ atomic_set(target, input, std::greater<ValueType>());
46
+ }
47
+
48
+ template <typename ValueType>
49
+ void atomic_min(std::atomic<ValueType> &target, const ValueType &input) {
50
+ atomic_set(target, input, std::less<ValueType>());
51
+ }
52
+
53
+ } // namespace Parallel
54
+ } // namespace Aux
55
+
56
+ #endif // NETWORKIT_AUXILIARY_PARALLEL_HPP_
@@ -0,0 +1,33 @@
1
+ /*
2
+ * Parallelism.hpp
3
+ *
4
+ * Control functions related to parallelism.
5
+ *
6
+ * Created on: 13.11.2013
7
+ * Author: Christian Staudt (christian.staudt@kit.edu)
8
+ */
9
+
10
+ #ifndef NETWORKIT_AUXILIARY_PARALLELISM_HPP_
11
+ #define NETWORKIT_AUXILIARY_PARALLELISM_HPP_
12
+
13
+ namespace Aux {
14
+
15
+ /**
16
+ * Set the number of threads available to the program.
17
+ */
18
+ void setNumberOfThreads(int nThreads);
19
+
20
+ /**
21
+ *
22
+ * @return The number of threads currently running.
23
+ */
24
+ int getCurrentNumberOfThreads();
25
+
26
+ /**
27
+ *
28
+ * @return The maximum number of threads available to the program.
29
+ */
30
+ int getMaxNumberOfThreads();
31
+ } // namespace Aux
32
+
33
+ #endif // NETWORKIT_AUXILIARY_PARALLELISM_HPP_
@@ -0,0 +1,252 @@
1
+ /*
2
+ * PrioQueue.hpp
3
+ *
4
+ * Created on: 02.03.2017
5
+ * Author: Henning
6
+ */
7
+
8
+ #ifndef NETWORKIT_AUXILIARY_PRIO_QUEUE_HPP_
9
+ #define NETWORKIT_AUXILIARY_PRIO_QUEUE_HPP_
10
+
11
+ #include <cstdint>
12
+ #include <limits>
13
+ #include <set>
14
+ #include <vector>
15
+
16
+ #include <networkit/auxiliary/Log.hpp>
17
+
18
+ namespace Aux {
19
+
20
+ /**
21
+ * Priority queue with extract-min and decrease-key.
22
+ * The type Val takes on integer values between 0 and n-1.
23
+ * O(n log n) for construction, O(log n) for typical operations.
24
+ */
25
+ template <class Key, class Value>
26
+ class PrioQueue {
27
+ private:
28
+ using ElemType = std::pair<Key, Value>;
29
+
30
+ std::set<ElemType> pqset; // TODO: would std::map work and simplify things?
31
+ std::vector<Key> mapValToKey;
32
+
33
+ const Key undefined = std::numeric_limits<Key>::max(); // TODO: make static
34
+
35
+ protected:
36
+ /**
37
+ * Default constructor without functionality. Only here for derived classes!
38
+ */
39
+ PrioQueue() = default;
40
+
41
+ /**
42
+ * Removes key-value pair given by @a elem.
43
+ */
44
+ virtual void remove(const ElemType &elem);
45
+
46
+ /**
47
+ * @return current content of queue
48
+ */
49
+ virtual std::set<std::pair<Key, Value>> content() const;
50
+
51
+ public:
52
+ /**
53
+ * Builds priority queue from the vector @a keys, values are indices
54
+ * of @a keys.
55
+ */
56
+ PrioQueue(const std::vector<Key> &keys);
57
+
58
+ /**
59
+ * Builds priority queue of the specified capacity @a capacity.
60
+ */
61
+ PrioQueue(uint64_t capacity);
62
+
63
+ /**
64
+ * Default destructor
65
+ */
66
+ virtual ~PrioQueue() = default;
67
+
68
+ /**
69
+ * Inserts key-value pair stored in @a elem.
70
+ */
71
+ virtual void insert(Key key, Value value);
72
+
73
+ /**
74
+ * Returns the @a n-th element in the priority queue.
75
+ */
76
+ virtual ElemType peekMin(size_t n = 0);
77
+
78
+ /**
79
+ * Removes the element with minimum key and returns it.
80
+ */
81
+ virtual ElemType extractMin();
82
+
83
+ /**
84
+ * Modifies entry with value @a value.
85
+ * The entry is then set to @a newKey with the same value.
86
+ * If the corresponding key is not present, the element will be inserted.
87
+ */
88
+ virtual void changeKey(Key newKey, Value value);
89
+
90
+ /**
91
+ * @return Number of elements in PQ.
92
+ */
93
+ virtual uint64_t size() const;
94
+
95
+ /**
96
+ * @return Whether or not the PQ is empty.
97
+ */
98
+ virtual bool empty() const noexcept;
99
+
100
+ /**
101
+ * @return Whether or not the PQ contains the given value.
102
+ */
103
+ virtual bool contains(const Value &value) const;
104
+
105
+ /**
106
+ * Removes key-value pair given by value @a val.
107
+ */
108
+ virtual void remove(const Value &val);
109
+
110
+ /**
111
+ * Removes all the elements from the priority queue.
112
+ */
113
+ virtual void clear();
114
+
115
+ /**
116
+ * Iterates over all the elements of the priority queue and call @a handle
117
+ * (lambda closure).
118
+ */
119
+ template <typename L>
120
+ void forElements(L handle) const;
121
+
122
+ /**
123
+ * Iterates over all the elements of the priority queue while the condition
124
+ * is satisfied and call @a handle (lambda closure).
125
+ */
126
+ template <typename C, typename L>
127
+ void forElementsWhile(C condition, L handle) const;
128
+
129
+ /**
130
+ * DEBUGGING
131
+ */
132
+ virtual void print() {
133
+ DEBUG("num entries: ", mapValToKey.size());
134
+ for (uint64_t i = 0; i < mapValToKey.size(); ++i) {
135
+ DEBUG("key: ", mapValToKey[i], ", val: ", i, "\n");
136
+ }
137
+ }
138
+ };
139
+
140
+ template <class Key, class Value>
141
+ Aux::PrioQueue<Key, Value>::PrioQueue(const std::vector<Key> &keys) {
142
+ mapValToKey.resize(keys.size());
143
+ uint64_t index = 0;
144
+ for (auto key : keys) {
145
+ insert(key, index);
146
+ ++index;
147
+ }
148
+ }
149
+
150
+ template <class Key, class Value>
151
+ Aux::PrioQueue<Key, Value>::PrioQueue(uint64_t capacity) {
152
+ mapValToKey.resize(capacity);
153
+ }
154
+
155
+ template <class Key, class Value>
156
+ void Aux::PrioQueue<Key, Value>::insert(Key key, Value value) {
157
+ if (value >= mapValToKey.size()) {
158
+ uint64_t doubledSize = 2 * mapValToKey.size();
159
+ assert(value < doubledSize);
160
+ mapValToKey.resize(doubledSize);
161
+ }
162
+ pqset.insert(std::make_pair(key, value));
163
+ mapValToKey.at(value) = key;
164
+ }
165
+
166
+ template <class Key, class Value>
167
+ void Aux::PrioQueue<Key, Value>::remove(const ElemType &elem) {
168
+ remove(elem.second);
169
+ }
170
+
171
+ template <class Key, class Value>
172
+ void Aux::PrioQueue<Key, Value>::remove(const Value &val) {
173
+ Key key = mapValToKey.at(val);
174
+ pqset.erase(std::make_pair(key, val));
175
+ mapValToKey.at(val) = undefined;
176
+ }
177
+
178
+ template <class Key, class Value>
179
+ std::pair<Key, Value> Aux::PrioQueue<Key, Value>::peekMin(size_t n) {
180
+ assert(pqset.size() > n);
181
+ ElemType elem = *std::next(pqset.begin(), n);
182
+ return elem;
183
+ }
184
+
185
+ template <class Key, class Value>
186
+ std::pair<Key, Value> Aux::PrioQueue<Key, Value>::extractMin() {
187
+ assert(!pqset.empty());
188
+ ElemType elem = (*pqset.begin());
189
+ remove(elem);
190
+ return elem;
191
+ }
192
+
193
+ template <class Key, class Value>
194
+ void Aux::PrioQueue<Key, Value>::changeKey(Key newKey, Value value) {
195
+ // find and remove element with given key
196
+ remove(value);
197
+
198
+ // insert element with new value
199
+ insert(newKey, value);
200
+ }
201
+
202
+ template <class Key, class Value>
203
+ uint64_t Aux::PrioQueue<Key, Value>::size() const {
204
+ return pqset.size();
205
+ }
206
+
207
+ template <class Key, class Value>
208
+ bool Aux::PrioQueue<Key, Value>::empty() const noexcept {
209
+ return pqset.empty();
210
+ }
211
+
212
+ template <class Key, class Value>
213
+ bool Aux::PrioQueue<Key, Value>::contains(const Value &value) const {
214
+ return value < mapValToKey.size() && mapValToKey.at(value) != undefined;
215
+ }
216
+
217
+ template <class Key, class Value>
218
+ std::set<std::pair<Key, Value>> Aux::PrioQueue<Key, Value>::content() const {
219
+ return pqset;
220
+ }
221
+
222
+ template <class Key, class Value>
223
+ void Aux::PrioQueue<Key, Value>::clear() {
224
+ pqset.clear();
225
+ auto capacity = mapValToKey.size();
226
+ mapValToKey.clear();
227
+ mapValToKey.resize(capacity);
228
+ }
229
+
230
+ template <class Key, class Value>
231
+ template <typename L>
232
+ void Aux::PrioQueue<Key, Value>::forElements(L handle) const {
233
+ for (auto it = pqset.begin(); it != pqset.end(); ++it) {
234
+ ElemType elem = *it;
235
+ handle(elem.first, elem.second);
236
+ }
237
+ }
238
+
239
+ template <class Key, class Value>
240
+ template <typename C, typename L>
241
+ void Aux::PrioQueue<Key, Value>::forElementsWhile(C condition, L handle) const {
242
+ for (auto it = pqset.begin(); it != pqset.end(); ++it) {
243
+ if (!condition()) {
244
+ break;
245
+ }
246
+ ElemType elem = *it;
247
+ handle(elem.first, elem.second);
248
+ }
249
+ }
250
+
251
+ } /* namespace Aux */
252
+ #endif // NETWORKIT_AUXILIARY_PRIO_QUEUE_HPP_