@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,322 @@
1
+ #ifndef NETWORKIT_AUXILIARY_STRING_BUILDER_HPP_
2
+ #define NETWORKIT_AUXILIARY_STRING_BUILDER_HPP_
3
+
4
+ #include <algorithm>
5
+ #include <cassert>
6
+ #include <iterator>
7
+ #include <sstream>
8
+ #include <stdexcept>
9
+ #include <string>
10
+ #include <string_view>
11
+ #include <tuple>
12
+ #include <type_traits>
13
+ #include <utility>
14
+
15
+ #include <networkit/auxiliary/TemplateUtils.hpp>
16
+
17
+ namespace Aux {
18
+
19
+ template <typename... T>
20
+ std::string toString(const T &...args);
21
+
22
+ template <typename... T>
23
+ std::ostream &printToStream(std::ostream &stream, const T &...args);
24
+
25
+ template <typename... T>
26
+ std::string toStringF(std::string_view format, const T &...args);
27
+
28
+ template <typename... T>
29
+ std::ostream &printToStreamF(std::ostream &stream, std::string_view format, const T &...args);
30
+
31
+ // Implementation
32
+ /////////////////
33
+
34
+ namespace Impl {
35
+
36
+ // Categories of how a type might be printable
37
+ enum class PrintableCategory {
38
+ UNPRINTABLE,
39
+ ITERATABLE,
40
+ PAIR,
41
+ TUPLE,
42
+ STREAMABLE,
43
+ Unprintable = UNPRINTABLE, // this + following added for backwards compatibility
44
+ Iteratable = ITERATABLE,
45
+ Pair = PAIR,
46
+ Tuple = TUPLE,
47
+ Streamable = STREAMABLE
48
+ };
49
+
50
+ template <typename T>
51
+ constexpr bool isStreamable();
52
+ template <typename T>
53
+ constexpr bool isPair();
54
+ template <typename T>
55
+ constexpr bool isTuple();
56
+ template <typename T>
57
+ constexpr bool isIteratable();
58
+
59
+ template <typename T>
60
+ constexpr PrintableCategory getPrintableCategory() {
61
+ return isStreamable<T>() ? PrintableCategory::STREAMABLE
62
+ : isPair<T>() ? PrintableCategory::PAIR
63
+ : isTuple<T>() ? PrintableCategory::TUPLE
64
+ : isIteratable<T>() ? PrintableCategory::ITERATABLE
65
+ :
66
+ /* else: */ PrintableCategory::UNPRINTABLE;
67
+ }
68
+ template <PrintableCategory Tag>
69
+ struct PrintableCategoryTag {};
70
+ using IteratableTag = PrintableCategoryTag<PrintableCategory::ITERATABLE>;
71
+ using PairTag = PrintableCategoryTag<PrintableCategory::PAIR>;
72
+ using TupleTag = PrintableCategoryTag<PrintableCategory::TUPLE>;
73
+ using StreamableTag = PrintableCategoryTag<PrintableCategory::STREAMABLE>;
74
+ using UnprintableTag = PrintableCategoryTag<PrintableCategory::UNPRINTABLE>;
75
+
76
+ template <typename T, typename... Args>
77
+ void printToStream(std::ostream &stream, const T &, const Args &...);
78
+ inline void printToStream(std::ostream &) {}
79
+
80
+ template <typename T>
81
+ void printToStreamTagged(std::ostream &stream, const T &, IteratableTag);
82
+ template <typename T>
83
+ void printToStreamTagged(std::ostream &stream, const T &, PairTag);
84
+ template <typename T>
85
+ void printToStreamTagged(std::ostream &stream, const T &, TupleTag);
86
+ template <typename T>
87
+ void printToStreamTagged(std::ostream &stream, const T &, StreamableTag);
88
+
89
+ // Claim that this function exists somewhere else to keep the errors clean
90
+ // (calling this function is not a problem since the error is already caught earlier
91
+ // in printToStream, and calling it directly will result in a linker-error)
92
+ template <typename T>
93
+ extern void printToStreamTagged(std::ostream &, const T &, UnprintableTag);
94
+
95
+ template <typename T, typename... Args>
96
+ void printToStream(std::ostream &stream, const T &arg, const Args &...args) {
97
+ static_assert(getPrintableCategory<T>() != PrintableCategory::UNPRINTABLE,
98
+ "printToStream must not be called with an unprintable argument");
99
+ printToStreamTagged(stream, arg, PrintableCategoryTag<getPrintableCategory<T>()>{});
100
+ printToStream(stream, args...);
101
+ }
102
+
103
+ inline std::tuple<std::string_view::const_iterator, bool>
104
+ printFormatPartToStream(std::ostream &stream, std::string_view::const_iterator begin,
105
+ std::string_view::const_iterator end);
106
+
107
+ inline void printToStreamF(std::ostream &stream, std::string_view::const_iterator format_begin,
108
+ std::string_view::const_iterator format_end) {
109
+ bool printArgument;
110
+ using iterator = std::string_view::const_iterator;
111
+ iterator it;
112
+ std::tie(it, printArgument) = printFormatPartToStream(stream, format_begin, format_end);
113
+ if (printArgument) {
114
+ throw std::invalid_argument{"formatstring requests more arguments then provided"};
115
+ }
116
+ }
117
+ template <typename T, typename... Args>
118
+ void printToStreamF(std::ostream &stream, std::string_view::const_iterator format_begin,
119
+ std::string_view::const_iterator format_end, const T &arg,
120
+ const Args &...args) {
121
+ bool printArgument;
122
+ using iterator = std::string_view::const_iterator;
123
+ iterator it;
124
+ std::tie(it, printArgument) = printFormatPartToStream(stream, format_begin, format_end);
125
+ if (printArgument) {
126
+ printToStream(stream, arg);
127
+ printToStreamF(stream, it, format_end, args...);
128
+ } else {
129
+ assert(it == format_end);
130
+ return;
131
+ }
132
+ }
133
+
134
+ /**
135
+ * Write the formatstring until the first occurance of "%s"
136
+ * to stream, '%%' will be replaced by '%'.
137
+ *
138
+ * @returns The iterator that points one after the last consumed
139
+ * character and whether a further argument should be printed.
140
+ */
141
+ inline auto printFormatPartToStream(std::ostream &stream, std::string_view::const_iterator begin,
142
+ std::string_view::const_iterator end)
143
+ -> std::tuple<std::string_view::const_iterator, bool> {
144
+ auto it = begin;
145
+ while (it != end) {
146
+ auto nextPercent = std::find(it, end, '%');
147
+ stream.write(&*it, std::distance(it, nextPercent));
148
+
149
+ if (nextPercent == end) {
150
+ it = nextPercent;
151
+ break;
152
+ }
153
+
154
+ it = ++nextPercent;
155
+
156
+ if (it == end) {
157
+ throw std::invalid_argument{"formatstrings must not end on unmatched '%'"};
158
+ } else if (*it == '%') {
159
+ stream.put('%');
160
+ ++it;
161
+ } else if (*it == 's') {
162
+ ++it;
163
+ return std::make_tuple(it, true);
164
+ } else {
165
+ throw std::invalid_argument{"formatstring contains illegal format-specifier"};
166
+ }
167
+ }
168
+ assert(it == end);
169
+ return std::make_tuple(end, false);
170
+ }
171
+
172
+ // Brace Yourself: Templatemetaprogramming is coming
173
+ ////////////////////////////////////////////////////
174
+
175
+ // Iteratable
176
+ struct IsIteratableHelper {
177
+ static std::false_type isIteratable(...);
178
+
179
+ template <
180
+ typename T, class Iterator = decltype(std::begin(std::declval<T>())),
181
+ AUX_REQUIRE(EndIteratorValid, isSame<Iterator, decltype(std::end(std::declval<T>()))>()),
182
+ AUX_REQUIRE(HasInputIterator,
183
+ isBaseOrSame<std::input_iterator_tag,
184
+ typename std::iterator_traits<Iterator>::iterator_category>())>
185
+ static std::true_type isIteratable(const T &);
186
+ };
187
+ template <typename T>
188
+ constexpr bool isIteratable() {
189
+ return decltype(IsIteratableHelper::isIteratable(std::declval<T>()))::value;
190
+ }
191
+
192
+ // Pair
193
+ template <typename T>
194
+ struct IsPairHelper : std::false_type {};
195
+ template <typename T1, typename T2>
196
+ struct IsPairHelper<std::pair<T1, T2>> : std::true_type {};
197
+ template <typename T>
198
+ constexpr bool isPair() {
199
+ return IsPairHelper<T>::value;
200
+ }
201
+
202
+ // Tuple
203
+ template <typename T>
204
+ struct IsTupleHelper : std::false_type {};
205
+ template <typename... T>
206
+ struct IsTupleHelper<std::tuple<T...>> : std::true_type {};
207
+ template <typename T>
208
+ constexpr bool isTuple() {
209
+ return IsTupleHelper<T>::value;
210
+ }
211
+
212
+ // Streamable
213
+ struct IsStreamableHelper {
214
+ static std::false_type isStreamable(...);
215
+
216
+ template <
217
+ typename T,
218
+ typename _streamT = typename std::decay<decltype(std::declval<std::ostream &>()
219
+ << std::declval<const T &>())>::type,
220
+ typename std::enable_if<std::is_same<std::ostream, _streamT>::value
221
+ || std::is_base_of<std::ostream, _streamT>::value> * = nullptr>
222
+ static std::true_type isStreamable(const T &);
223
+ };
224
+ template <typename T>
225
+ constexpr bool isStreamable() {
226
+ return decltype(IsStreamableHelper::isStreamable(std::declval<T>()))::value;
227
+ }
228
+
229
+ // And now: implement the actual printing:
230
+ //////////////////////////////////////////
231
+
232
+ // Streamable
233
+ template <typename T>
234
+ void printToStreamTagged(std::ostream &stream, const T &arg, StreamableTag) {
235
+ stream << arg;
236
+ }
237
+
238
+ // Pair
239
+ template <typename T>
240
+ void printToStreamTagged(std::ostream &stream, const T &arg, PairTag) {
241
+ stream << '(';
242
+ printToStream(stream, arg.first);
243
+ stream << ", ";
244
+ printToStream(stream, arg.second);
245
+ stream << ')';
246
+ }
247
+
248
+ // Tuple
249
+ template <typename Tuple, int I, int TupleSize>
250
+ struct printTupleHelper {
251
+ static void print(std::ostream &stream, const Tuple &arg) {
252
+ printToStream(stream, std::get<I - 1>(arg));
253
+ stream << ", ";
254
+ printTupleHelper<Tuple, I + 1, TupleSize>::print(stream, arg);
255
+ }
256
+ };
257
+ template <typename Tuple, int I>
258
+ struct printTupleHelper<Tuple, I, I> {
259
+ static void print(std::ostream &stream, const Tuple &arg) {
260
+ printToStream(stream, std::get<I - 1>(arg));
261
+ }
262
+ };
263
+ template <typename T>
264
+ void printToStreamTagged(std::ostream &stream, const T &arg, TupleTag) {
265
+ stream << '(';
266
+ printTupleHelper<T, 1, std::tuple_size<T>::value>::print(stream, arg);
267
+ stream << ')';
268
+ }
269
+
270
+ // Iteratable
271
+ template <typename T>
272
+ void printToStreamTagged(std::ostream &stream, const T &arg, IteratableTag) {
273
+ auto it = std::begin(arg);
274
+ auto end = std::end(arg);
275
+ bool firstpass = true;
276
+ stream << '[';
277
+ while (it != end) {
278
+ if (firstpass) {
279
+ firstpass = false;
280
+ } else {
281
+ stream << ", ";
282
+ }
283
+ printToStream(stream, *it);
284
+ ++it;
285
+ }
286
+ stream << ']';
287
+ }
288
+
289
+ } // namespace Impl
290
+
291
+ // Finally: put together the public interface:
292
+ //////////////////////////////////////////////
293
+
294
+ template <typename... T>
295
+ std::string toString(const T &...args) {
296
+ std::stringstream stream;
297
+ printToStream(stream, args...);
298
+ return stream.str();
299
+ }
300
+
301
+ template <typename... T>
302
+ std::ostream &printToStream(std::ostream &stream, const T &...args) {
303
+ Impl::printToStream(stream, args...);
304
+ return stream;
305
+ }
306
+
307
+ template <typename... T>
308
+ std::string toStringF(std::string_view format, const T &...args) {
309
+ std::stringstream stream;
310
+ printToStreamF(stream, format, args...);
311
+ return stream.str();
312
+ }
313
+
314
+ template <typename... T>
315
+ std::ostream &printToStreamF(std::ostream &stream, std::string_view format, const T &...args) {
316
+ Impl::printToStreamF(stream, format.begin(), format.end(), args...);
317
+ return stream;
318
+ }
319
+
320
+ } // namespace Aux
321
+
322
+ #endif // NETWORKIT_AUXILIARY_STRING_BUILDER_HPP_
@@ -0,0 +1,76 @@
1
+ /*
2
+ * StringTools.hpp
3
+ *
4
+ * Completely rewritten on: 12.05.2014
5
+ * Author: Florian Weber (uagws@student.kit.edu)
6
+ */
7
+
8
+ #ifndef NETWORKIT_AUXILIARY_STRING_TOOLS_HPP_
9
+ #define NETWORKIT_AUXILIARY_STRING_TOOLS_HPP_
10
+
11
+ #include <algorithm>
12
+ #include <string>
13
+ #include <string_view>
14
+ #include <vector>
15
+
16
+ namespace Aux {
17
+
18
+ /**
19
+ * Missing string functions.
20
+ */
21
+ namespace StringTools {
22
+
23
+ /**
24
+ * Splits a range of characters at a delimiter into a vector of strings.
25
+ *
26
+ * Requirements:
27
+ * Character must be equality-comparable to char and it must be possible to construct a char from
28
+ * any Character.
29
+ * Iterator must be an input-iterator over Characters.
30
+ */
31
+ template <typename Iterator, typename Character>
32
+ std::vector<std::string> split(Iterator begin, Iterator end, Character delim = Character{' '}) {
33
+
34
+ // measurements showed that precalculating the number of tokens and
35
+ // reserving space for them was in fact slower than just letting
36
+ // the vector grow naturally.
37
+ std::vector<std::string> tokens;
38
+
39
+ auto it = begin;
40
+ while (it != end) {
41
+ auto tmp = std::find(it, end, delim);
42
+ tokens.emplace_back(it, tmp);
43
+ if (tmp == end) {
44
+ break;
45
+ }
46
+ it = tmp;
47
+ ++it;
48
+ }
49
+ return tokens;
50
+ }
51
+
52
+ /**
53
+ * Split a string at delimiter and return vector of parts.
54
+ */
55
+ inline std::vector<std::string> split(std::string_view s, char delim = ' ') {
56
+ return split(s.begin(), s.end(), delim);
57
+ }
58
+
59
+ /**
60
+ * Determines whether @a str ends with @a suffix.
61
+ */
62
+ inline bool ends_with(std::string_view str, std::string_view suffix) {
63
+ return str.size() >= suffix.size()
64
+ && str.compare(str.size() - suffix.size(), suffix.size(), suffix) == 0;
65
+ }
66
+
67
+ /**
68
+ * Determines whether @a str starts with @a prefix.
69
+ */
70
+ inline bool starts_with(std::string_view str, std::string_view prefix) {
71
+ return str.size() >= prefix.size() && str.compare(0, prefix.size(), prefix) == 0;
72
+ }
73
+
74
+ } /* namespace StringTools */
75
+ } /* namespace Aux */
76
+ #endif // NETWORKIT_AUXILIARY_STRING_TOOLS_HPP_
@@ -0,0 +1,76 @@
1
+ #ifndef NETWORKIT_AUXILIARY_TEMPLATE_UTILS_HPP_
2
+ #define NETWORKIT_AUXILIARY_TEMPLATE_UTILS_HPP_
3
+
4
+ #include <type_traits>
5
+
6
+ /**
7
+ * The macro makes the use of std::enable_if much easier by removing all the boilerplate.
8
+ *
9
+ * The 'what' argument must be a valid identifier that describes, what is required.
10
+ * Example: you want to require that T is an integer, than what should be something like
11
+ * T_is_integer
12
+ *
13
+ * The second argument must be a constant boolean expression. In order to allow templates that
14
+ * would otherwise confuse the preprocessor, this is passed as variadic argument (this is however
15
+ * an implementation detail and you should never actually pass more than one argument.
16
+ */
17
+ #define AUX_REQUIRE(what, ...) class what = typename ::std::enable_if<__VA_ARGS__>::type
18
+
19
+ /**
20
+ * If two templates only differ in the default-values of their template-arguments
21
+ * C++ considers this to be a compilation-error. A simple way to prevent this is to
22
+ * add further defaulted template-arguments, which is what this macro provides in a
23
+ * semantic way.
24
+ *
25
+ * Example:
26
+ *
27
+ * template<typename T, AUX_REQUIRE(isInteger, [...])>
28
+ * void fun(T) {...}
29
+ *
30
+ * template<typename T, AUX_REQUIRE(isFloat, [...]), AUX_DUMMY_ARGUMENT>
31
+ * void fun(T) {...}
32
+ *
33
+ * Note however that it may often be a cleaner solution to use compile-time dispatching instead
34
+ * of hacks that envolve enable-if.
35
+ */
36
+ #define AUX_DUMMY_ARGUMENT class = void
37
+
38
+ namespace Aux {
39
+
40
+ /**
41
+ * This is a backport of C++14 std::decay_t
42
+ */
43
+ template <typename T>
44
+ using decay_t = typename std::decay<T>::type;
45
+
46
+ /**
47
+ * Returns the corresponding std::integral_constant<bool, B> to a boolean
48
+ * value B.
49
+ */
50
+ template <bool B>
51
+ using boolToType = std::integral_constant<bool, B>;
52
+
53
+ /**
54
+ * This is just a wrapper around std::is_same in order to provide a nicer interface.
55
+ *
56
+ * With C++14 this could use template-variables, but with C++11 we are stuck with
57
+ * constexpr-functions.
58
+ */
59
+ template <typename T1, typename T2>
60
+ constexpr bool isSame() {
61
+ return std::is_same<T1, T2>::value;
62
+ }
63
+
64
+ /**
65
+ * Checks whether Derived is either a type that derives from Base or is identical to Base.
66
+ *
67
+ * This is very usefull for situations in which you work with iterator-traits or the like.
68
+ */
69
+ template <typename Base, typename Derived>
70
+ constexpr bool isBaseOrSame() {
71
+ return isSame<Base, Derived>() || std::is_base_of<Base, Derived>::value;
72
+ }
73
+
74
+ } // namespace Aux
75
+
76
+ #endif // NETWORKIT_AUXILIARY_TEMPLATE_UTILS_HPP_
@@ -0,0 +1,145 @@
1
+ /*
2
+ * Timer.hpp
3
+ *
4
+ * Created on: 14.01.2013
5
+ * Author: Christian Staudt (christian.staudt@kit.edu)
6
+ */
7
+
8
+ #ifndef NETWORKIT_AUXILIARY_TIMER_HPP_
9
+ #define NETWORKIT_AUXILIARY_TIMER_HPP_
10
+
11
+ #include <chrono>
12
+ #include <cstdint>
13
+ #include <string>
14
+
15
+ #include <networkit/auxiliary/Log.hpp>
16
+
17
+ namespace Aux {
18
+
19
+ /**
20
+ * A timer for running time measurements.
21
+ */
22
+ class Timer {
23
+ public:
24
+ #ifdef __MIC__
25
+ using my_steady_clock = std::chrono::monotonic_clock;
26
+ #else
27
+ using my_steady_clock = std::chrono::steady_clock;
28
+ #endif // __MIC__
29
+
30
+ Timer() = default;
31
+
32
+ /**
33
+ * Start the clock.
34
+ * Returns the time at which the instance was started.
35
+ */
36
+ my_steady_clock::time_point start() noexcept;
37
+
38
+ /**
39
+ * Stops the clock permanently for the instance of the Timer.
40
+ * Returns the time at which the instance was stopped.
41
+ */
42
+ my_steady_clock::time_point stop() noexcept;
43
+
44
+ /**
45
+ * Returns a chrono::duration since the Timer was started.
46
+ * If stop() was called, the duration is between the start() and stop()
47
+ * calls is returned.
48
+ */
49
+ std::chrono::duration<uint64_t, std::milli> elapsed() const noexcept;
50
+
51
+ /**
52
+ * Returns the number of milliseconds since the Timer was started.
53
+ * If stop() was called, the duration is between the start() and stop()
54
+ * calls is returned.
55
+ */
56
+ uint64_t elapsedMilliseconds() const noexcept;
57
+
58
+ /**
59
+ * Returns the number of microseconds since the Timer was started.
60
+ * If stop() was called, the duration is between the start() and stop()
61
+ * calls is returned.
62
+ */
63
+ uint64_t elapsedMicroseconds() const noexcept;
64
+
65
+ /**
66
+ * Returns the number of nanoseconds since the Timer was started.
67
+ * If stop() was called, the duration is between the start() and stop()
68
+ * calls is returned.
69
+ */
70
+ uint64_t elapsedNanoseconds() const noexcept;
71
+
72
+ /**
73
+ * Returns the time at which the instance was started.
74
+ */
75
+ my_steady_clock::time_point startTime() const noexcept;
76
+
77
+ /**
78
+ * Returns the time at which the instance was stopped.
79
+ */
80
+ my_steady_clock::time_point stopTime() const noexcept;
81
+
82
+ /**
83
+ * Returns a human-readable representation including the elapsed time and unit.
84
+ */
85
+ std::string elapsedTag() const;
86
+
87
+ protected:
88
+ bool running{false}; //!< true if timer has been started and not stopped after that
89
+ my_steady_clock::time_point started; //!< time at which timer has been started
90
+ my_steady_clock::time_point stopped; //!< time at which timer has been stopped
91
+
92
+ /// If running returns now, otherwise the stop time
93
+ my_steady_clock::time_point stopTimeOrNow() const noexcept;
94
+ };
95
+
96
+ /**
97
+ * A timer for running time measurements.
98
+ * Same as Timer but automatically starts on construction.
99
+ */
100
+ class StartedTimer : public Timer {
101
+ public:
102
+ StartedTimer() : Timer() { start(); }
103
+ };
104
+
105
+ /**
106
+ * A timer for running time measurements within a scope.
107
+ *
108
+ * Same as Timer but automatically starts on construction and report on destruction.
109
+ *
110
+ * @code
111
+ * {
112
+ * Aux::ScopedTimer("Algorithm A"); // WRONG; will directly report without measuring the scope
113
+ * Aux::ScopedTimer someName("Algorithm B"); // OK: the named instance is valid until the end of
114
+ * the scope
115
+ * // some expensive operations
116
+ *
117
+ *
118
+ * } // <- Report time since creation of the timer object via Aux::Log
119
+ * @endcode
120
+ *
121
+ * @warning
122
+ * As the timer exploits RAII, it requires a named instance to extend its life time until the
123
+ * end of the current scope. In the example above "someName" is used. If the time measured seems
124
+ * too short, make you created a named instances.
125
+ */
126
+ class LoggingTimer : public Timer {
127
+ public:
128
+ /**
129
+ * @param label The label printed out next to the measurement
130
+ * @param level Only measure if logging at the provided LogLevel is enabled during runtime.
131
+ * If logging at the given level is disable the Timer is very cheap to construct.
132
+ * If logging is disabled during construction or destruction, no message is shown.
133
+ */
134
+ explicit LoggingTimer(std::string_view label = "",
135
+ Aux::Log::LogLevel level = Aux::Log::LogLevel::DEBUG);
136
+ ~LoggingTimer();
137
+
138
+ private:
139
+ Aux::Log::LogLevel level;
140
+ std::string label;
141
+ };
142
+
143
+ } /* namespace Aux */
144
+
145
+ #endif // NETWORKIT_AUXILIARY_TIMER_HPP_
@@ -0,0 +1,32 @@
1
+
2
+ #ifndef NETWORKIT_AUXILIARY_VECTOR_COMPARATOR_HPP_
3
+ #define NETWORKIT_AUXILIARY_VECTOR_COMPARATOR_HPP_
4
+
5
+ #include <cstdint>
6
+ #include <vector>
7
+
8
+ namespace Aux {
9
+
10
+ // Implementation of vector-based comparators
11
+
12
+ template <class Type>
13
+ struct LessInVector {
14
+ LessInVector(const std::vector<Type> &vec) : vec(&vec) {}
15
+ bool operator()(uint64_t x, uint64_t y) const noexcept { return (*vec)[x] < (*vec)[y]; }
16
+
17
+ private:
18
+ const std::vector<Type> *vec;
19
+ };
20
+
21
+ template <class Type>
22
+ struct GreaterInVector {
23
+ GreaterInVector(const std::vector<Type> &vec) : vec(&vec) {}
24
+ bool operator()(uint64_t x, uint64_t y) const noexcept { return (*vec)[x] > (*vec)[y]; }
25
+
26
+ private:
27
+ const std::vector<Type> *vec;
28
+ };
29
+
30
+ } // namespace Aux
31
+
32
+ #endif // NETWORKIT_AUXILIARY_VECTOR_COMPARATOR_HPP_
@@ -0,0 +1,41 @@
1
+
2
+ #ifndef NETWORKIT_BASE_ALGORITHM_HPP_
3
+ #define NETWORKIT_BASE_ALGORITHM_HPP_
4
+
5
+ #include <stdexcept>
6
+ #include <string>
7
+
8
+ namespace NetworKit {
9
+
10
+ class Algorithm {
11
+ protected:
12
+ bool hasRun = false;
13
+
14
+ public:
15
+ virtual ~Algorithm() = default;
16
+
17
+ /**
18
+ * The generic run method which calls runImpl() and takes care of setting @ref hasRun to the
19
+ * appropriate value.
20
+ */
21
+ virtual void run() = 0;
22
+
23
+ /**
24
+ * Indicates whether an algorithm has completed computation or not.
25
+ *
26
+ * @return The value of @ref hasRun.
27
+ */
28
+ bool hasFinished() const noexcept { return hasRun; }
29
+
30
+ /**
31
+ * Assure that the algorithm has been run, throws a std::runtime_error otherwise.
32
+ */
33
+ void assureFinished() const {
34
+ if (!hasRun)
35
+ throw std::runtime_error("Error, run must be called first");
36
+ }
37
+ };
38
+
39
+ } // namespace NetworKit
40
+
41
+ #endif // NETWORKIT_BASE_ALGORITHM_HPP_