@ladybugmem/icebug 0.1.0 → 0.1.2

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 (625) hide show
  1. package/binding.gyp +32 -10
  2. package/lib/index.js +23 -11
  3. package/package.json +9 -15
  4. package/prebuilds/darwin-arm64/icebug.node +0 -0
  5. package/{vendor/lib → prebuilds/darwin-arm64}/libnetworkit.dylib +0 -0
  6. package/prebuilds/linux-x64/icebug.node +0 -0
  7. package/prebuilds/linux-x64/libnetworkit.so +0 -0
  8. package/scripts/download-icebug.sh +92 -0
  9. package/build/Release/.deps/Release/icebug.node.d +0 -1
  10. package/build/Release/.deps/Release/obj.target/icebug/src/addon.o.d +0 -291
  11. package/build/Release/icebug.node +0 -0
  12. package/build/Release/obj.target/icebug/src/addon.o +0 -0
  13. package/vendor/include/networkit/GlobalState.hpp +0 -86
  14. package/vendor/include/networkit/Globals.hpp +0 -41
  15. package/vendor/include/networkit/algebraic/AlgebraicGlobals.hpp +0 -27
  16. package/vendor/include/networkit/algebraic/CSRGeneralMatrix.hpp +0 -1292
  17. package/vendor/include/networkit/algebraic/CSRMatrix.hpp +0 -11
  18. package/vendor/include/networkit/algebraic/DenseMatrix.hpp +0 -537
  19. package/vendor/include/networkit/algebraic/DynamicMatrix.hpp +0 -514
  20. package/vendor/include/networkit/algebraic/GraphBLAS.hpp +0 -323
  21. package/vendor/include/networkit/algebraic/MatrixTools.hpp +0 -156
  22. package/vendor/include/networkit/algebraic/Semirings.hpp +0 -171
  23. package/vendor/include/networkit/algebraic/SparseAccumulator.hpp +0 -111
  24. package/vendor/include/networkit/algebraic/Vector.hpp +0 -371
  25. package/vendor/include/networkit/algebraic/algorithms/AlgebraicBFS.hpp +0 -72
  26. package/vendor/include/networkit/algebraic/algorithms/AlgebraicBellmanFord.hpp +0 -88
  27. package/vendor/include/networkit/algebraic/algorithms/AlgebraicMatchingCoarsening.hpp +0 -96
  28. package/vendor/include/networkit/algebraic/algorithms/AlgebraicPageRank.hpp +0 -145
  29. package/vendor/include/networkit/algebraic/algorithms/AlgebraicSpanningEdgeCentrality.hpp +0 -122
  30. package/vendor/include/networkit/algebraic/algorithms/AlgebraicTriangleCounting.hpp +0 -76
  31. package/vendor/include/networkit/auxiliary/AlignedAllocator.hpp +0 -113
  32. package/vendor/include/networkit/auxiliary/ArrayTools.hpp +0 -85
  33. package/vendor/include/networkit/auxiliary/BloomFilter.hpp +0 -70
  34. package/vendor/include/networkit/auxiliary/BucketPQ.hpp +0 -142
  35. package/vendor/include/networkit/auxiliary/Enforce.hpp +0 -117
  36. package/vendor/include/networkit/auxiliary/FunctionTraits.hpp +0 -74
  37. package/vendor/include/networkit/auxiliary/HashUtils.hpp +0 -28
  38. package/vendor/include/networkit/auxiliary/IncrementalUniformRandomSelector.hpp +0 -52
  39. package/vendor/include/networkit/auxiliary/Log.hpp +0 -119
  40. package/vendor/include/networkit/auxiliary/MissingMath.hpp +0 -48
  41. package/vendor/include/networkit/auxiliary/Multiprecision.hpp +0 -17
  42. package/vendor/include/networkit/auxiliary/NumberParsing.hpp +0 -307
  43. package/vendor/include/networkit/auxiliary/NumericTools.hpp +0 -57
  44. package/vendor/include/networkit/auxiliary/Parallel.hpp +0 -56
  45. package/vendor/include/networkit/auxiliary/Parallelism.hpp +0 -33
  46. package/vendor/include/networkit/auxiliary/PrioQueue.hpp +0 -252
  47. package/vendor/include/networkit/auxiliary/Random.hpp +0 -122
  48. package/vendor/include/networkit/auxiliary/SetIntersector.hpp +0 -72
  49. package/vendor/include/networkit/auxiliary/SignalHandling.hpp +0 -39
  50. package/vendor/include/networkit/auxiliary/SortedList.hpp +0 -128
  51. package/vendor/include/networkit/auxiliary/SparseVector.hpp +0 -215
  52. package/vendor/include/networkit/auxiliary/SpinLock.hpp +0 -23
  53. package/vendor/include/networkit/auxiliary/StringBuilder.hpp +0 -322
  54. package/vendor/include/networkit/auxiliary/StringTools.hpp +0 -76
  55. package/vendor/include/networkit/auxiliary/TemplateUtils.hpp +0 -76
  56. package/vendor/include/networkit/auxiliary/Timer.hpp +0 -145
  57. package/vendor/include/networkit/auxiliary/VectorComparator.hpp +0 -32
  58. package/vendor/include/networkit/base/Algorithm.hpp +0 -41
  59. package/vendor/include/networkit/base/DynAlgorithm.hpp +0 -31
  60. package/vendor/include/networkit/centrality/ApproxBetweenness.hpp +0 -62
  61. package/vendor/include/networkit/centrality/ApproxCloseness.hpp +0 -136
  62. package/vendor/include/networkit/centrality/ApproxElectricalCloseness.hpp +0 -156
  63. package/vendor/include/networkit/centrality/ApproxGroupBetweenness.hpp +0 -124
  64. package/vendor/include/networkit/centrality/ApproxSpanningEdge.hpp +0 -84
  65. package/vendor/include/networkit/centrality/Betweenness.hpp +0 -47
  66. package/vendor/include/networkit/centrality/Centrality.hpp +0 -98
  67. package/vendor/include/networkit/centrality/Closeness.hpp +0 -107
  68. package/vendor/include/networkit/centrality/ComplexPaths.hpp +0 -113
  69. package/vendor/include/networkit/centrality/CoreDecomposition.hpp +0 -161
  70. package/vendor/include/networkit/centrality/DegreeCentrality.hpp +0 -55
  71. package/vendor/include/networkit/centrality/DynApproxBetweenness.hpp +0 -95
  72. package/vendor/include/networkit/centrality/DynBetweenness.hpp +0 -99
  73. package/vendor/include/networkit/centrality/DynBetweennessOneNode.hpp +0 -98
  74. package/vendor/include/networkit/centrality/DynKatzCentrality.hpp +0 -115
  75. package/vendor/include/networkit/centrality/DynTopHarmonicCloseness.hpp +0 -223
  76. package/vendor/include/networkit/centrality/EigenvectorCentrality.hpp +0 -41
  77. package/vendor/include/networkit/centrality/EstimateBetweenness.hpp +0 -51
  78. package/vendor/include/networkit/centrality/ForestCentrality.hpp +0 -112
  79. package/vendor/include/networkit/centrality/GedWalk.hpp +0 -225
  80. package/vendor/include/networkit/centrality/GroupCloseness.hpp +0 -115
  81. package/vendor/include/networkit/centrality/GroupClosenessGrowShrink.hpp +0 -78
  82. package/vendor/include/networkit/centrality/GroupClosenessLocalSearch.hpp +0 -77
  83. package/vendor/include/networkit/centrality/GroupClosenessLocalSwaps.hpp +0 -106
  84. package/vendor/include/networkit/centrality/GroupDegree.hpp +0 -155
  85. package/vendor/include/networkit/centrality/GroupHarmonicCloseness.hpp +0 -83
  86. package/vendor/include/networkit/centrality/HarmonicCloseness.hpp +0 -48
  87. package/vendor/include/networkit/centrality/KPathCentrality.hpp +0 -52
  88. package/vendor/include/networkit/centrality/KadabraBetweenness.hpp +0 -242
  89. package/vendor/include/networkit/centrality/KatzCentrality.hpp +0 -62
  90. package/vendor/include/networkit/centrality/LaplacianCentrality.hpp +0 -44
  91. package/vendor/include/networkit/centrality/LocalClusteringCoefficient.hpp +0 -60
  92. package/vendor/include/networkit/centrality/LocalPartitionCoverage.hpp +0 -43
  93. package/vendor/include/networkit/centrality/LocalSquareClusteringCoefficient.hpp +0 -42
  94. package/vendor/include/networkit/centrality/PageRank.hpp +0 -101
  95. package/vendor/include/networkit/centrality/PermanenceCentrality.hpp +0 -48
  96. package/vendor/include/networkit/centrality/Sfigality.hpp +0 -45
  97. package/vendor/include/networkit/centrality/SpanningEdgeCentrality.hpp +0 -86
  98. package/vendor/include/networkit/centrality/TopCloseness.hpp +0 -136
  99. package/vendor/include/networkit/centrality/TopHarmonicCloseness.hpp +0 -151
  100. package/vendor/include/networkit/clique/MaximalCliques.hpp +0 -83
  101. package/vendor/include/networkit/coarsening/ClusteringProjector.hpp +0 -59
  102. package/vendor/include/networkit/coarsening/CoarsenedGraphView.hpp +0 -156
  103. package/vendor/include/networkit/coarsening/GraphCoarsening.hpp +0 -57
  104. package/vendor/include/networkit/coarsening/MatchingCoarsening.hpp +0 -43
  105. package/vendor/include/networkit/coarsening/ParallelPartitionCoarsening.hpp +0 -33
  106. package/vendor/include/networkit/coarsening/ParallelPartitionCoarseningView.hpp +0 -62
  107. package/vendor/include/networkit/community/AdjustedRandMeasure.hpp +0 -31
  108. package/vendor/include/networkit/community/ClusteringGenerator.hpp +0 -75
  109. package/vendor/include/networkit/community/CommunityDetectionAlgorithm.hpp +0 -58
  110. package/vendor/include/networkit/community/Conductance.hpp +0 -32
  111. package/vendor/include/networkit/community/CoverF1Similarity.hpp +0 -53
  112. package/vendor/include/networkit/community/CoverHubDominance.hpp +0 -38
  113. package/vendor/include/networkit/community/Coverage.hpp +0 -25
  114. package/vendor/include/networkit/community/CutClustering.hpp +0 -62
  115. package/vendor/include/networkit/community/DissimilarityMeasure.hpp +0 -31
  116. package/vendor/include/networkit/community/DynamicNMIDistance.hpp +0 -44
  117. package/vendor/include/networkit/community/EdgeCut.hpp +0 -24
  118. package/vendor/include/networkit/community/GraphClusteringTools.hpp +0 -103
  119. package/vendor/include/networkit/community/GraphStructuralRandMeasure.hpp +0 -28
  120. package/vendor/include/networkit/community/HubDominance.hpp +0 -46
  121. package/vendor/include/networkit/community/IntrapartitionDensity.hpp +0 -44
  122. package/vendor/include/networkit/community/IsolatedInterpartitionConductance.hpp +0 -40
  123. package/vendor/include/networkit/community/IsolatedInterpartitionExpansion.hpp +0 -40
  124. package/vendor/include/networkit/community/JaccardMeasure.hpp +0 -25
  125. package/vendor/include/networkit/community/LFM.hpp +0 -49
  126. package/vendor/include/networkit/community/LPDegreeOrdered.hpp +0 -48
  127. package/vendor/include/networkit/community/LocalCommunityEvaluation.hpp +0 -100
  128. package/vendor/include/networkit/community/LocalCoverEvaluation.hpp +0 -31
  129. package/vendor/include/networkit/community/LocalPartitionEvaluation.hpp +0 -31
  130. package/vendor/include/networkit/community/LouvainMapEquation.hpp +0 -135
  131. package/vendor/include/networkit/community/Modularity.hpp +0 -54
  132. package/vendor/include/networkit/community/NMIDistance.hpp +0 -28
  133. package/vendor/include/networkit/community/NodeStructuralRandMeasure.hpp +0 -27
  134. package/vendor/include/networkit/community/OverlappingCommunityDetectionAlgorithm.hpp +0 -51
  135. package/vendor/include/networkit/community/OverlappingNMIDistance.hpp +0 -175
  136. package/vendor/include/networkit/community/PLM.hpp +0 -89
  137. package/vendor/include/networkit/community/PLP.hpp +0 -83
  138. package/vendor/include/networkit/community/ParallelAgglomerativeClusterer.hpp +0 -37
  139. package/vendor/include/networkit/community/ParallelLeiden.hpp +0 -96
  140. package/vendor/include/networkit/community/ParallelLeidenView.hpp +0 -138
  141. package/vendor/include/networkit/community/PartitionFragmentation.hpp +0 -30
  142. package/vendor/include/networkit/community/PartitionHubDominance.hpp +0 -37
  143. package/vendor/include/networkit/community/PartitionIntersection.hpp +0 -25
  144. package/vendor/include/networkit/community/QualityMeasure.hpp +0 -27
  145. package/vendor/include/networkit/community/SampledGraphStructuralRandMeasure.hpp +0 -40
  146. package/vendor/include/networkit/community/SampledNodeStructuralRandMeasure.hpp +0 -40
  147. package/vendor/include/networkit/community/StablePartitionNodes.hpp +0 -48
  148. package/vendor/include/networkit/components/BiconnectedComponents.hpp +0 -116
  149. package/vendor/include/networkit/components/ComponentDecomposition.hpp +0 -72
  150. package/vendor/include/networkit/components/ConnectedComponents.hpp +0 -55
  151. package/vendor/include/networkit/components/DynConnectedComponents.hpp +0 -71
  152. package/vendor/include/networkit/components/DynWeaklyConnectedComponents.hpp +0 -73
  153. package/vendor/include/networkit/components/ParallelConnectedComponents.hpp +0 -44
  154. package/vendor/include/networkit/components/RandomSpanningForest.hpp +0 -36
  155. package/vendor/include/networkit/components/StronglyConnectedComponents.hpp +0 -50
  156. package/vendor/include/networkit/components/WeaklyConnectedComponents.hpp +0 -59
  157. package/vendor/include/networkit/correlation/Assortativity.hpp +0 -64
  158. package/vendor/include/networkit/distance/APSP.hpp +0 -70
  159. package/vendor/include/networkit/distance/AStar.hpp +0 -68
  160. package/vendor/include/networkit/distance/AStarGeneral.hpp +0 -110
  161. package/vendor/include/networkit/distance/AdamicAdarDistance.hpp +0 -52
  162. package/vendor/include/networkit/distance/AffectedNodes.hpp +0 -130
  163. package/vendor/include/networkit/distance/AlgebraicDistance.hpp +0 -63
  164. package/vendor/include/networkit/distance/BFS.hpp +0 -43
  165. package/vendor/include/networkit/distance/BidirectionalBFS.hpp +0 -51
  166. package/vendor/include/networkit/distance/BidirectionalDijkstra.hpp +0 -69
  167. package/vendor/include/networkit/distance/CommuteTimeDistance.hpp +0 -89
  168. package/vendor/include/networkit/distance/Diameter.hpp +0 -97
  169. package/vendor/include/networkit/distance/Dijkstra.hpp +0 -50
  170. package/vendor/include/networkit/distance/DynAPSP.hpp +0 -67
  171. package/vendor/include/networkit/distance/DynBFS.hpp +0 -56
  172. package/vendor/include/networkit/distance/DynDijkstra.hpp +0 -57
  173. package/vendor/include/networkit/distance/DynPrunedLandmarkLabeling.hpp +0 -67
  174. package/vendor/include/networkit/distance/DynSSSP.hpp +0 -87
  175. package/vendor/include/networkit/distance/Eccentricity.hpp +0 -32
  176. package/vendor/include/networkit/distance/EffectiveDiameter.hpp +0 -47
  177. package/vendor/include/networkit/distance/EffectiveDiameterApproximation.hpp +0 -57
  178. package/vendor/include/networkit/distance/FloydWarshall.hpp +0 -93
  179. package/vendor/include/networkit/distance/GraphDistance.hpp +0 -49
  180. package/vendor/include/networkit/distance/HopPlotApproximation.hpp +0 -62
  181. package/vendor/include/networkit/distance/IncompleteDijkstra.hpp +0 -66
  182. package/vendor/include/networkit/distance/IncompleteSSSP.hpp +0 -41
  183. package/vendor/include/networkit/distance/JaccardDistance.hpp +0 -57
  184. package/vendor/include/networkit/distance/MultiTargetBFS.hpp +0 -32
  185. package/vendor/include/networkit/distance/MultiTargetDijkstra.hpp +0 -40
  186. package/vendor/include/networkit/distance/NeighborhoodFunction.hpp +0 -47
  187. package/vendor/include/networkit/distance/NeighborhoodFunctionApproximation.hpp +0 -56
  188. package/vendor/include/networkit/distance/NeighborhoodFunctionHeuristic.hpp +0 -56
  189. package/vendor/include/networkit/distance/NodeDistance.hpp +0 -54
  190. package/vendor/include/networkit/distance/PrunedLandmarkLabeling.hpp +0 -76
  191. package/vendor/include/networkit/distance/ReverseBFS.hpp +0 -46
  192. package/vendor/include/networkit/distance/SPSP.hpp +0 -143
  193. package/vendor/include/networkit/distance/SSSP.hpp +0 -216
  194. package/vendor/include/networkit/distance/STSP.hpp +0 -193
  195. package/vendor/include/networkit/distance/Volume.hpp +0 -66
  196. package/vendor/include/networkit/dynamics/DGSStreamParser.hpp +0 -40
  197. package/vendor/include/networkit/dynamics/DGSWriter.hpp +0 -30
  198. package/vendor/include/networkit/dynamics/GraphDifference.hpp +0 -110
  199. package/vendor/include/networkit/dynamics/GraphEvent.hpp +0 -55
  200. package/vendor/include/networkit/dynamics/GraphEventHandler.hpp +0 -39
  201. package/vendor/include/networkit/dynamics/GraphEventProxy.hpp +0 -55
  202. package/vendor/include/networkit/dynamics/GraphUpdater.hpp +0 -38
  203. package/vendor/include/networkit/edgescores/ChibaNishizekiQuadrangleEdgeScore.hpp +0 -26
  204. package/vendor/include/networkit/edgescores/ChibaNishizekiTriangleEdgeScore.hpp +0 -33
  205. package/vendor/include/networkit/edgescores/EdgeScore.hpp +0 -50
  206. package/vendor/include/networkit/edgescores/EdgeScoreAsWeight.hpp +0 -33
  207. package/vendor/include/networkit/edgescores/EdgeScoreBlender.hpp +0 -33
  208. package/vendor/include/networkit/edgescores/EdgeScoreLinearizer.hpp +0 -32
  209. package/vendor/include/networkit/edgescores/EdgeScoreNormalizer.hpp +0 -35
  210. package/vendor/include/networkit/edgescores/GeometricMeanScore.hpp +0 -29
  211. package/vendor/include/networkit/edgescores/PrefixJaccardScore.hpp +0 -23
  212. package/vendor/include/networkit/edgescores/TriangleEdgeScore.hpp +0 -39
  213. package/vendor/include/networkit/embedding/Node2Vec.hpp +0 -83
  214. package/vendor/include/networkit/flow/EdmondsKarp.hpp +0 -112
  215. package/vendor/include/networkit/generators/BarabasiAlbertGenerator.hpp +0 -87
  216. package/vendor/include/networkit/generators/ChungLuGenerator.hpp +0 -46
  217. package/vendor/include/networkit/generators/ChungLuGeneratorAlamEtAl.hpp +0 -63
  218. package/vendor/include/networkit/generators/ClusteredRandomGraphGenerator.hpp +0 -56
  219. package/vendor/include/networkit/generators/ConfigurationModel.hpp +0 -36
  220. package/vendor/include/networkit/generators/DorogovtsevMendesGenerator.hpp +0 -33
  221. package/vendor/include/networkit/generators/DynamicBarabasiAlbertGenerator.hpp +0 -33
  222. package/vendor/include/networkit/generators/DynamicDGSParser.hpp +0 -51
  223. package/vendor/include/networkit/generators/DynamicDorogovtsevMendesGenerator.hpp +0 -34
  224. package/vendor/include/networkit/generators/DynamicForestFireGenerator.hpp +0 -55
  225. package/vendor/include/networkit/generators/DynamicGraphGenerator.hpp +0 -40
  226. package/vendor/include/networkit/generators/DynamicGraphSource.hpp +0 -79
  227. package/vendor/include/networkit/generators/DynamicHyperbolicGenerator.hpp +0 -143
  228. package/vendor/include/networkit/generators/DynamicPathGenerator.hpp +0 -26
  229. package/vendor/include/networkit/generators/DynamicPubWebGenerator.hpp +0 -54
  230. package/vendor/include/networkit/generators/EdgeSwitchingMarkovChainGenerator.hpp +0 -65
  231. package/vendor/include/networkit/generators/ErdosRenyiEnumerator.hpp +0 -318
  232. package/vendor/include/networkit/generators/ErdosRenyiGenerator.hpp +0 -56
  233. package/vendor/include/networkit/generators/HavelHakimiGenerator.hpp +0 -48
  234. package/vendor/include/networkit/generators/HyperbolicGenerator.hpp +0 -236
  235. package/vendor/include/networkit/generators/LFRGenerator.hpp +0 -175
  236. package/vendor/include/networkit/generators/MocnikGenerator.hpp +0 -147
  237. package/vendor/include/networkit/generators/MocnikGeneratorBasic.hpp +0 -58
  238. package/vendor/include/networkit/generators/PowerlawDegreeSequence.hpp +0 -128
  239. package/vendor/include/networkit/generators/PubWebGenerator.hpp +0 -94
  240. package/vendor/include/networkit/generators/RegularRingLatticeGenerator.hpp +0 -37
  241. package/vendor/include/networkit/generators/RmatGenerator.hpp +0 -67
  242. package/vendor/include/networkit/generators/StaticDegreeSequenceGenerator.hpp +0 -42
  243. package/vendor/include/networkit/generators/StaticGraphGenerator.hpp +0 -30
  244. package/vendor/include/networkit/generators/StochasticBlockmodel.hpp +0 -41
  245. package/vendor/include/networkit/generators/WattsStrogatzGenerator.hpp +0 -43
  246. package/vendor/include/networkit/generators/quadtree/QuadNode.hpp +0 -857
  247. package/vendor/include/networkit/generators/quadtree/QuadNodeCartesianEuclid.hpp +0 -587
  248. package/vendor/include/networkit/generators/quadtree/QuadNodePolarEuclid.hpp +0 -726
  249. package/vendor/include/networkit/generators/quadtree/Quadtree.hpp +0 -232
  250. package/vendor/include/networkit/generators/quadtree/QuadtreeCartesianEuclid.hpp +0 -149
  251. package/vendor/include/networkit/generators/quadtree/QuadtreePolarEuclid.hpp +0 -143
  252. package/vendor/include/networkit/geometric/HyperbolicSpace.hpp +0 -248
  253. package/vendor/include/networkit/geometric/Point2DWithIndex.hpp +0 -145
  254. package/vendor/include/networkit/global/ClusteringCoefficient.hpp +0 -42
  255. package/vendor/include/networkit/global/GlobalClusteringCoefficient.hpp +0 -24
  256. package/vendor/include/networkit/graph/Attributes.hpp +0 -568
  257. package/vendor/include/networkit/graph/BFS.hpp +0 -111
  258. package/vendor/include/networkit/graph/DFS.hpp +0 -71
  259. package/vendor/include/networkit/graph/Dijkstra.hpp +0 -83
  260. package/vendor/include/networkit/graph/EdgeIterators.hpp +0 -171
  261. package/vendor/include/networkit/graph/Graph.hpp +0 -2083
  262. package/vendor/include/networkit/graph/GraphBuilder.hpp +0 -289
  263. package/vendor/include/networkit/graph/GraphR.hpp +0 -133
  264. package/vendor/include/networkit/graph/GraphTools.hpp +0 -589
  265. package/vendor/include/networkit/graph/GraphW.hpp +0 -1236
  266. package/vendor/include/networkit/graph/KruskalMSF.hpp +0 -50
  267. package/vendor/include/networkit/graph/NeighborIterators.hpp +0 -163
  268. package/vendor/include/networkit/graph/NodeIterators.hpp +0 -127
  269. package/vendor/include/networkit/graph/PrimMSF.hpp +0 -66
  270. package/vendor/include/networkit/graph/RandomMaximumSpanningForest.hpp +0 -133
  271. package/vendor/include/networkit/graph/SpanningForest.hpp +0 -41
  272. package/vendor/include/networkit/graph/TopologicalSort.hpp +0 -87
  273. package/vendor/include/networkit/graph/UnionMaximumSpanningForest.hpp +0 -126
  274. package/vendor/include/networkit/graph/test/GraphBuilderBenchmark.hpp +0 -68
  275. package/vendor/include/networkit/independentset/IndependentSetFinder.hpp +0 -44
  276. package/vendor/include/networkit/independentset/Luby.hpp +0 -27
  277. package/vendor/include/networkit/io/BinaryEdgeListPartitionReader.hpp +0 -45
  278. package/vendor/include/networkit/io/BinaryEdgeListPartitionWriter.hpp +0 -47
  279. package/vendor/include/networkit/io/BinaryPartitionReader.hpp +0 -41
  280. package/vendor/include/networkit/io/BinaryPartitionWriter.hpp +0 -44
  281. package/vendor/include/networkit/io/CoverReader.hpp +0 -27
  282. package/vendor/include/networkit/io/CoverWriter.hpp +0 -21
  283. package/vendor/include/networkit/io/DGSReader.hpp +0 -39
  284. package/vendor/include/networkit/io/DibapGraphReader.hpp +0 -43
  285. package/vendor/include/networkit/io/DotGraphWriter.hpp +0 -39
  286. package/vendor/include/networkit/io/DotPartitionWriter.hpp +0 -23
  287. package/vendor/include/networkit/io/DynamicGraphReader.hpp +0 -29
  288. package/vendor/include/networkit/io/EdgeListCoverReader.hpp +0 -35
  289. package/vendor/include/networkit/io/EdgeListPartitionReader.hpp +0 -43
  290. package/vendor/include/networkit/io/EdgeListReader.hpp +0 -61
  291. package/vendor/include/networkit/io/EdgeListWriter.hpp +0 -48
  292. package/vendor/include/networkit/io/GMLGraphReader.hpp +0 -33
  293. package/vendor/include/networkit/io/GMLGraphWriter.hpp +0 -33
  294. package/vendor/include/networkit/io/GraphIO.hpp +0 -52
  295. package/vendor/include/networkit/io/GraphReader.hpp +0 -40
  296. package/vendor/include/networkit/io/GraphToolBinaryReader.hpp +0 -71
  297. package/vendor/include/networkit/io/GraphToolBinaryWriter.hpp +0 -61
  298. package/vendor/include/networkit/io/GraphWriter.hpp +0 -27
  299. package/vendor/include/networkit/io/KONECTGraphReader.hpp +0 -44
  300. package/vendor/include/networkit/io/LineFileReader.hpp +0 -42
  301. package/vendor/include/networkit/io/METISGraphReader.hpp +0 -36
  302. package/vendor/include/networkit/io/METISGraphWriter.hpp +0 -29
  303. package/vendor/include/networkit/io/METISParser.hpp +0 -63
  304. package/vendor/include/networkit/io/MTXGraphReader.hpp +0 -31
  305. package/vendor/include/networkit/io/MTXParser.hpp +0 -87
  306. package/vendor/include/networkit/io/MatrixMarketReader.hpp +0 -33
  307. package/vendor/include/networkit/io/MatrixReader.hpp +0 -33
  308. package/vendor/include/networkit/io/MemoryMappedFile.hpp +0 -80
  309. package/vendor/include/networkit/io/NetworkitBinaryGraph.hpp +0 -144
  310. package/vendor/include/networkit/io/NetworkitBinaryReader.hpp +0 -50
  311. package/vendor/include/networkit/io/NetworkitBinaryWriter.hpp +0 -71
  312. package/vendor/include/networkit/io/PartitionReader.hpp +0 -34
  313. package/vendor/include/networkit/io/PartitionWriter.hpp +0 -31
  314. package/vendor/include/networkit/io/RBGraphReader.hpp +0 -37
  315. package/vendor/include/networkit/io/RBMatrixReader.hpp +0 -49
  316. package/vendor/include/networkit/io/RasterReader.hpp +0 -40
  317. package/vendor/include/networkit/io/SNAPEdgeListPartitionReader.hpp +0 -28
  318. package/vendor/include/networkit/io/SNAPGraphReader.hpp +0 -53
  319. package/vendor/include/networkit/io/SNAPGraphWriter.hpp +0 -53
  320. package/vendor/include/networkit/io/ThrillGraphBinaryReader.hpp +0 -44
  321. package/vendor/include/networkit/io/ThrillGraphBinaryWriter.hpp +0 -27
  322. package/vendor/include/networkit/layout/LayoutAlgorithm.hpp +0 -39
  323. package/vendor/include/networkit/linkprediction/AdamicAdarIndex.hpp +0 -37
  324. package/vendor/include/networkit/linkprediction/AdjustedRandIndex.hpp +0 -36
  325. package/vendor/include/networkit/linkprediction/AlgebraicDistanceIndex.hpp +0 -70
  326. package/vendor/include/networkit/linkprediction/CommonNeighborsIndex.hpp +0 -39
  327. package/vendor/include/networkit/linkprediction/EvaluationMetric.hpp +0 -135
  328. package/vendor/include/networkit/linkprediction/JaccardIndex.hpp +0 -44
  329. package/vendor/include/networkit/linkprediction/KatzIndex.hpp +0 -84
  330. package/vendor/include/networkit/linkprediction/LinkPredictor.hpp +0 -98
  331. package/vendor/include/networkit/linkprediction/LinkThresholder.hpp +0 -56
  332. package/vendor/include/networkit/linkprediction/MissingLinksFinder.hpp +0 -60
  333. package/vendor/include/networkit/linkprediction/NeighborhoodDistanceIndex.hpp +0 -42
  334. package/vendor/include/networkit/linkprediction/NeighborhoodUtility.hpp +0 -54
  335. package/vendor/include/networkit/linkprediction/NeighborsMeasureIndex.hpp +0 -48
  336. package/vendor/include/networkit/linkprediction/PrecisionRecallMetric.hpp +0 -40
  337. package/vendor/include/networkit/linkprediction/PredictionsSorter.hpp +0 -66
  338. package/vendor/include/networkit/linkprediction/PreferentialAttachmentIndex.hpp +0 -37
  339. package/vendor/include/networkit/linkprediction/ROCMetric.hpp +0 -39
  340. package/vendor/include/networkit/linkprediction/RandomLinkSampler.hpp +0 -47
  341. package/vendor/include/networkit/linkprediction/ResourceAllocationIndex.hpp +0 -38
  342. package/vendor/include/networkit/linkprediction/SameCommunityIndex.hpp +0 -50
  343. package/vendor/include/networkit/linkprediction/TotalNeighborsIndex.hpp +0 -39
  344. package/vendor/include/networkit/linkprediction/UDegreeIndex.hpp +0 -35
  345. package/vendor/include/networkit/linkprediction/VDegreeIndex.hpp +0 -35
  346. package/vendor/include/networkit/matching/BMatcher.hpp +0 -52
  347. package/vendor/include/networkit/matching/BMatching.hpp +0 -115
  348. package/vendor/include/networkit/matching/BSuitorMatcher.hpp +0 -170
  349. package/vendor/include/networkit/matching/DynamicBSuitorMatcher.hpp +0 -78
  350. package/vendor/include/networkit/matching/LocalMaxMatcher.hpp +0 -35
  351. package/vendor/include/networkit/matching/Matcher.hpp +0 -55
  352. package/vendor/include/networkit/matching/Matching.hpp +0 -111
  353. package/vendor/include/networkit/matching/PathGrowingMatcher.hpp +0 -46
  354. package/vendor/include/networkit/matching/SuitorMatcher.hpp +0 -62
  355. package/vendor/include/networkit/numerics/ConjugateGradient.hpp +0 -163
  356. package/vendor/include/networkit/numerics/GaussSeidelRelaxation.hpp +0 -99
  357. package/vendor/include/networkit/numerics/LAMG/LAMGSettings.hpp +0 -70
  358. package/vendor/include/networkit/numerics/LAMG/Lamg.hpp +0 -460
  359. package/vendor/include/networkit/numerics/LAMG/Level/EliminationStage.hpp +0 -47
  360. package/vendor/include/networkit/numerics/LAMG/Level/Level.hpp +0 -56
  361. package/vendor/include/networkit/numerics/LAMG/Level/LevelAggregation.hpp +0 -52
  362. package/vendor/include/networkit/numerics/LAMG/Level/LevelElimination.hpp +0 -133
  363. package/vendor/include/networkit/numerics/LAMG/Level/LevelFinest.hpp +0 -28
  364. package/vendor/include/networkit/numerics/LAMG/LevelHierarchy.hpp +0 -165
  365. package/vendor/include/networkit/numerics/LAMG/MultiLevelSetup.hpp +0 -1090
  366. package/vendor/include/networkit/numerics/LAMG/SolverLamg.hpp +0 -316
  367. package/vendor/include/networkit/numerics/LinearSolver.hpp +0 -151
  368. package/vendor/include/networkit/numerics/Preconditioner/DiagonalPreconditioner.hpp +0 -61
  369. package/vendor/include/networkit/numerics/Preconditioner/IdentityPreconditioner.hpp +0 -36
  370. package/vendor/include/networkit/numerics/Smoother.hpp +0 -37
  371. package/vendor/include/networkit/overlap/HashingOverlapper.hpp +0 -28
  372. package/vendor/include/networkit/overlap/Overlapper.hpp +0 -27
  373. package/vendor/include/networkit/planarity/LeftRightPlanarityCheck.hpp +0 -113
  374. package/vendor/include/networkit/randomization/Curveball.hpp +0 -49
  375. package/vendor/include/networkit/randomization/CurveballGlobalTradeGenerator.hpp +0 -39
  376. package/vendor/include/networkit/randomization/CurveballUniformTradeGenerator.hpp +0 -39
  377. package/vendor/include/networkit/randomization/DegreePreservingShuffle.hpp +0 -82
  378. package/vendor/include/networkit/randomization/EdgeSwitching.hpp +0 -157
  379. package/vendor/include/networkit/randomization/GlobalCurveball.hpp +0 -69
  380. package/vendor/include/networkit/randomization/GlobalTradeSequence.hpp +0 -303
  381. package/vendor/include/networkit/reachability/AllSimplePaths.hpp +0 -122
  382. package/vendor/include/networkit/reachability/ReachableNodes.hpp +0 -83
  383. package/vendor/include/networkit/scd/ApproximatePageRank.hpp +0 -51
  384. package/vendor/include/networkit/scd/CliqueDetect.hpp +0 -55
  385. package/vendor/include/networkit/scd/CombinedSCD.hpp +0 -51
  386. package/vendor/include/networkit/scd/GCE.hpp +0 -42
  387. package/vendor/include/networkit/scd/LFMLocal.hpp +0 -54
  388. package/vendor/include/networkit/scd/LocalT.hpp +0 -40
  389. package/vendor/include/networkit/scd/LocalTightnessExpansion.hpp +0 -46
  390. package/vendor/include/networkit/scd/PageRankNibble.hpp +0 -55
  391. package/vendor/include/networkit/scd/RandomBFS.hpp +0 -33
  392. package/vendor/include/networkit/scd/SCDGroundTruthComparison.hpp +0 -121
  393. package/vendor/include/networkit/scd/SelectiveCommunityDetector.hpp +0 -76
  394. package/vendor/include/networkit/scd/SetConductance.hpp +0 -47
  395. package/vendor/include/networkit/scd/TCE.hpp +0 -41
  396. package/vendor/include/networkit/scd/TwoPhaseL.hpp +0 -40
  397. package/vendor/include/networkit/scoring/EdgeScoring.hpp +0 -44
  398. package/vendor/include/networkit/scoring/ModularityScoring.hpp +0 -79
  399. package/vendor/include/networkit/simulation/EpidemicSimulationSEIR.hpp +0 -59
  400. package/vendor/include/networkit/sparsification/ChanceCorrectedTriangleScore.hpp +0 -28
  401. package/vendor/include/networkit/sparsification/ForestFireScore.hpp +0 -34
  402. package/vendor/include/networkit/sparsification/GlobalThresholdFilter.hpp +0 -40
  403. package/vendor/include/networkit/sparsification/LocalDegreeScore.hpp +0 -30
  404. package/vendor/include/networkit/sparsification/LocalFilterScore.hpp +0 -124
  405. package/vendor/include/networkit/sparsification/LocalSimilarityScore.hpp +0 -63
  406. package/vendor/include/networkit/sparsification/MultiscaleScore.hpp +0 -38
  407. package/vendor/include/networkit/sparsification/RandomEdgeScore.hpp +0 -33
  408. package/vendor/include/networkit/sparsification/RandomNodeEdgeScore.hpp +0 -29
  409. package/vendor/include/networkit/sparsification/SCANStructuralSimilarityScore.hpp +0 -23
  410. package/vendor/include/networkit/sparsification/SimmelianOverlapScore.hpp +0 -35
  411. package/vendor/include/networkit/sparsification/SimmelianScore.hpp +0 -92
  412. package/vendor/include/networkit/sparsification/Sparsifiers.hpp +0 -166
  413. package/vendor/include/networkit/structures/Cover.hpp +0 -248
  414. package/vendor/include/networkit/structures/LocalCommunity.hpp +0 -363
  415. package/vendor/include/networkit/structures/Partition.hpp +0 -335
  416. package/vendor/include/networkit/structures/UnionFind.hpp +0 -66
  417. package/vendor/include/networkit/viz/GraphLayoutAlgorithm.hpp +0 -157
  418. package/vendor/include/networkit/viz/MaxentStress.hpp +0 -346
  419. package/vendor/include/networkit/viz/Octree.hpp +0 -428
  420. package/vendor/include/networkit/viz/PivotMDS.hpp +0 -63
  421. package/vendor/include/networkit/viz/Point.hpp +0 -415
  422. package/vendor/include/networkit/viz/PostscriptWriter.hpp +0 -78
  423. package/vendor/include/tlx/algorithm/exclusive_scan.hpp +0 -56
  424. package/vendor/include/tlx/algorithm/is_sorted_cmp.hpp +0 -56
  425. package/vendor/include/tlx/algorithm/merge_advance.hpp +0 -177
  426. package/vendor/include/tlx/algorithm/merge_combine.hpp +0 -76
  427. package/vendor/include/tlx/algorithm/multisequence_partition.hpp +0 -346
  428. package/vendor/include/tlx/algorithm/multisequence_selection.hpp +0 -351
  429. package/vendor/include/tlx/algorithm/multiway_merge.hpp +0 -1385
  430. package/vendor/include/tlx/algorithm/multiway_merge_splitting.hpp +0 -257
  431. package/vendor/include/tlx/algorithm/parallel_multiway_merge.hpp +0 -408
  432. package/vendor/include/tlx/algorithm/random_bipartition_shuffle.hpp +0 -116
  433. package/vendor/include/tlx/algorithm.hpp +0 -36
  434. package/vendor/include/tlx/allocator_base.hpp +0 -100
  435. package/vendor/include/tlx/backtrace.hpp +0 -54
  436. package/vendor/include/tlx/cmdline_parser.hpp +0 -498
  437. package/vendor/include/tlx/container/btree.hpp +0 -3977
  438. package/vendor/include/tlx/container/btree_map.hpp +0 -634
  439. package/vendor/include/tlx/container/btree_multimap.hpp +0 -627
  440. package/vendor/include/tlx/container/btree_multiset.hpp +0 -612
  441. package/vendor/include/tlx/container/btree_set.hpp +0 -612
  442. package/vendor/include/tlx/container/d_ary_addressable_int_heap.hpp +0 -416
  443. package/vendor/include/tlx/container/d_ary_heap.hpp +0 -311
  444. package/vendor/include/tlx/container/loser_tree.hpp +0 -1009
  445. package/vendor/include/tlx/container/lru_cache.hpp +0 -319
  446. package/vendor/include/tlx/container/radix_heap.hpp +0 -735
  447. package/vendor/include/tlx/container/ring_buffer.hpp +0 -428
  448. package/vendor/include/tlx/container/simple_vector.hpp +0 -304
  449. package/vendor/include/tlx/container/splay_tree.hpp +0 -399
  450. package/vendor/include/tlx/container/string_view.hpp +0 -805
  451. package/vendor/include/tlx/container.hpp +0 -40
  452. package/vendor/include/tlx/counting_ptr.hpp +0 -522
  453. package/vendor/include/tlx/define/attribute_always_inline.hpp +0 -34
  454. package/vendor/include/tlx/define/attribute_fallthrough.hpp +0 -36
  455. package/vendor/include/tlx/define/attribute_format_printf.hpp +0 -34
  456. package/vendor/include/tlx/define/attribute_packed.hpp +0 -34
  457. package/vendor/include/tlx/define/attribute_warn_unused_result.hpp +0 -34
  458. package/vendor/include/tlx/define/constexpr.hpp +0 -31
  459. package/vendor/include/tlx/define/deprecated.hpp +0 -39
  460. package/vendor/include/tlx/define/endian.hpp +0 -49
  461. package/vendor/include/tlx/define/likely.hpp +0 -33
  462. package/vendor/include/tlx/define/visibility_hidden.hpp +0 -34
  463. package/vendor/include/tlx/define.hpp +0 -36
  464. package/vendor/include/tlx/delegate.hpp +0 -524
  465. package/vendor/include/tlx/die/core.hpp +0 -311
  466. package/vendor/include/tlx/die.hpp +0 -106
  467. package/vendor/include/tlx/digest/md5.hpp +0 -81
  468. package/vendor/include/tlx/digest/sha1.hpp +0 -81
  469. package/vendor/include/tlx/digest/sha256.hpp +0 -81
  470. package/vendor/include/tlx/digest/sha512.hpp +0 -81
  471. package/vendor/include/tlx/digest.hpp +0 -30
  472. package/vendor/include/tlx/logger/all.hpp +0 -33
  473. package/vendor/include/tlx/logger/array.hpp +0 -43
  474. package/vendor/include/tlx/logger/core.hpp +0 -287
  475. package/vendor/include/tlx/logger/deque.hpp +0 -42
  476. package/vendor/include/tlx/logger/map.hpp +0 -65
  477. package/vendor/include/tlx/logger/set.hpp +0 -60
  478. package/vendor/include/tlx/logger/tuple.hpp +0 -66
  479. package/vendor/include/tlx/logger/unordered_map.hpp +0 -68
  480. package/vendor/include/tlx/logger/unordered_set.hpp +0 -64
  481. package/vendor/include/tlx/logger/wrap_unprintable.hpp +0 -75
  482. package/vendor/include/tlx/logger.hpp +0 -44
  483. package/vendor/include/tlx/math/abs_diff.hpp +0 -35
  484. package/vendor/include/tlx/math/aggregate.hpp +0 -231
  485. package/vendor/include/tlx/math/aggregate_min_max.hpp +0 -116
  486. package/vendor/include/tlx/math/bswap.hpp +0 -148
  487. package/vendor/include/tlx/math/bswap_be.hpp +0 -79
  488. package/vendor/include/tlx/math/bswap_le.hpp +0 -79
  489. package/vendor/include/tlx/math/clz.hpp +0 -174
  490. package/vendor/include/tlx/math/ctz.hpp +0 -174
  491. package/vendor/include/tlx/math/div_ceil.hpp +0 -36
  492. package/vendor/include/tlx/math/ffs.hpp +0 -123
  493. package/vendor/include/tlx/math/integer_log2.hpp +0 -189
  494. package/vendor/include/tlx/math/is_power_of_two.hpp +0 -74
  495. package/vendor/include/tlx/math/polynomial_regression.hpp +0 -243
  496. package/vendor/include/tlx/math/popcount.hpp +0 -173
  497. package/vendor/include/tlx/math/power_to_the.hpp +0 -44
  498. package/vendor/include/tlx/math/rol.hpp +0 -112
  499. package/vendor/include/tlx/math/ror.hpp +0 -112
  500. package/vendor/include/tlx/math/round_to_power_of_two.hpp +0 -121
  501. package/vendor/include/tlx/math/round_up.hpp +0 -36
  502. package/vendor/include/tlx/math/sgn.hpp +0 -38
  503. package/vendor/include/tlx/math.hpp +0 -46
  504. package/vendor/include/tlx/meta/apply_tuple.hpp +0 -55
  505. package/vendor/include/tlx/meta/call_for_range.hpp +0 -78
  506. package/vendor/include/tlx/meta/call_foreach.hpp +0 -60
  507. package/vendor/include/tlx/meta/call_foreach_tuple.hpp +0 -60
  508. package/vendor/include/tlx/meta/call_foreach_tuple_with_index.hpp +0 -61
  509. package/vendor/include/tlx/meta/call_foreach_with_index.hpp +0 -64
  510. package/vendor/include/tlx/meta/enable_if.hpp +0 -37
  511. package/vendor/include/tlx/meta/fold_left.hpp +0 -63
  512. package/vendor/include/tlx/meta/fold_left_tuple.hpp +0 -60
  513. package/vendor/include/tlx/meta/fold_right.hpp +0 -63
  514. package/vendor/include/tlx/meta/fold_right_tuple.hpp +0 -60
  515. package/vendor/include/tlx/meta/function_chain.hpp +0 -197
  516. package/vendor/include/tlx/meta/function_stack.hpp +0 -189
  517. package/vendor/include/tlx/meta/has_member.hpp +0 -80
  518. package/vendor/include/tlx/meta/has_method.hpp +0 -117
  519. package/vendor/include/tlx/meta/index_sequence.hpp +0 -66
  520. package/vendor/include/tlx/meta/is_std_array.hpp +0 -40
  521. package/vendor/include/tlx/meta/is_std_pair.hpp +0 -39
  522. package/vendor/include/tlx/meta/is_std_tuple.hpp +0 -39
  523. package/vendor/include/tlx/meta/is_std_vector.hpp +0 -39
  524. package/vendor/include/tlx/meta/log2.hpp +0 -101
  525. package/vendor/include/tlx/meta/no_operation.hpp +0 -55
  526. package/vendor/include/tlx/meta/static_index.hpp +0 -42
  527. package/vendor/include/tlx/meta/vexpand.hpp +0 -34
  528. package/vendor/include/tlx/meta/vmap_for_range.hpp +0 -84
  529. package/vendor/include/tlx/meta/vmap_foreach.hpp +0 -63
  530. package/vendor/include/tlx/meta/vmap_foreach_tuple.hpp +0 -59
  531. package/vendor/include/tlx/meta/vmap_foreach_tuple_with_index.hpp +0 -62
  532. package/vendor/include/tlx/meta/vmap_foreach_with_index.hpp +0 -70
  533. package/vendor/include/tlx/meta.hpp +0 -55
  534. package/vendor/include/tlx/multi_timer.hpp +0 -148
  535. package/vendor/include/tlx/port/setenv.hpp +0 -31
  536. package/vendor/include/tlx/port.hpp +0 -27
  537. package/vendor/include/tlx/semaphore.hpp +0 -119
  538. package/vendor/include/tlx/simple_vector.hpp +0 -20
  539. package/vendor/include/tlx/siphash.hpp +0 -282
  540. package/vendor/include/tlx/sort/networks/best.hpp +0 -611
  541. package/vendor/include/tlx/sort/networks/bose_nelson.hpp +0 -412
  542. package/vendor/include/tlx/sort/networks/bose_nelson_parameter.hpp +0 -507
  543. package/vendor/include/tlx/sort/networks/cswap.hpp +0 -60
  544. package/vendor/include/tlx/sort/parallel_mergesort.hpp +0 -398
  545. package/vendor/include/tlx/sort/strings/insertion_sort.hpp +0 -232
  546. package/vendor/include/tlx/sort/strings/multikey_quicksort.hpp +0 -185
  547. package/vendor/include/tlx/sort/strings/parallel_sample_sort.hpp +0 -1647
  548. package/vendor/include/tlx/sort/strings/radix_sort.hpp +0 -934
  549. package/vendor/include/tlx/sort/strings/sample_sort_tools.hpp +0 -756
  550. package/vendor/include/tlx/sort/strings/string_ptr.hpp +0 -426
  551. package/vendor/include/tlx/sort/strings/string_set.hpp +0 -800
  552. package/vendor/include/tlx/sort/strings.hpp +0 -329
  553. package/vendor/include/tlx/sort/strings_parallel.hpp +0 -325
  554. package/vendor/include/tlx/sort.hpp +0 -29
  555. package/vendor/include/tlx/stack_allocator.hpp +0 -226
  556. package/vendor/include/tlx/string/appendline.hpp +0 -35
  557. package/vendor/include/tlx/string/base64.hpp +0 -87
  558. package/vendor/include/tlx/string/bitdump.hpp +0 -139
  559. package/vendor/include/tlx/string/compare_icase.hpp +0 -42
  560. package/vendor/include/tlx/string/contains.hpp +0 -36
  561. package/vendor/include/tlx/string/contains_word.hpp +0 -42
  562. package/vendor/include/tlx/string/ends_with.hpp +0 -79
  563. package/vendor/include/tlx/string/equal_icase.hpp +0 -42
  564. package/vendor/include/tlx/string/erase_all.hpp +0 -70
  565. package/vendor/include/tlx/string/escape_html.hpp +0 -34
  566. package/vendor/include/tlx/string/escape_uri.hpp +0 -34
  567. package/vendor/include/tlx/string/expand_environment_variables.hpp +0 -49
  568. package/vendor/include/tlx/string/extract_between.hpp +0 -40
  569. package/vendor/include/tlx/string/format_iec_units.hpp +0 -32
  570. package/vendor/include/tlx/string/format_si_iec_units.hpp +0 -19
  571. package/vendor/include/tlx/string/format_si_units.hpp +0 -32
  572. package/vendor/include/tlx/string/hash_djb2.hpp +0 -87
  573. package/vendor/include/tlx/string/hash_sdbm.hpp +0 -86
  574. package/vendor/include/tlx/string/hexdump.hpp +0 -154
  575. package/vendor/include/tlx/string/index_of.hpp +0 -56
  576. package/vendor/include/tlx/string/join.hpp +0 -65
  577. package/vendor/include/tlx/string/join_generic.hpp +0 -89
  578. package/vendor/include/tlx/string/join_quoted.hpp +0 -46
  579. package/vendor/include/tlx/string/less_icase.hpp +0 -64
  580. package/vendor/include/tlx/string/levenshtein.hpp +0 -193
  581. package/vendor/include/tlx/string/pad.hpp +0 -39
  582. package/vendor/include/tlx/string/parse_si_iec_units.hpp +0 -46
  583. package/vendor/include/tlx/string/parse_uri.hpp +0 -66
  584. package/vendor/include/tlx/string/parse_uri_form_data.hpp +0 -136
  585. package/vendor/include/tlx/string/replace.hpp +0 -141
  586. package/vendor/include/tlx/string/split.hpp +0 -170
  587. package/vendor/include/tlx/string/split_quoted.hpp +0 -49
  588. package/vendor/include/tlx/string/split_view.hpp +0 -218
  589. package/vendor/include/tlx/string/split_words.hpp +0 -53
  590. package/vendor/include/tlx/string/ssprintf.hpp +0 -45
  591. package/vendor/include/tlx/string/ssprintf_generic.hpp +0 -95
  592. package/vendor/include/tlx/string/starts_with.hpp +0 -44
  593. package/vendor/include/tlx/string/to_lower.hpp +0 -47
  594. package/vendor/include/tlx/string/to_upper.hpp +0 -47
  595. package/vendor/include/tlx/string/trim.hpp +0 -298
  596. package/vendor/include/tlx/string/union_words.hpp +0 -33
  597. package/vendor/include/tlx/string/word_wrap.hpp +0 -35
  598. package/vendor/include/tlx/string.hpp +0 -68
  599. package/vendor/include/tlx/thread_barrier_mutex.hpp +0 -109
  600. package/vendor/include/tlx/thread_barrier_spin.hpp +0 -127
  601. package/vendor/include/tlx/thread_pool.hpp +0 -151
  602. package/vendor/include/tlx/timestamp.hpp +0 -23
  603. package/vendor/include/tlx/unused.hpp +0 -28
  604. package/vendor/include/tlx/vector_free.hpp +0 -30
  605. package/vendor/include/tlx/version.hpp +0 -49
  606. package/vendor/include/ttmath/ttmath.h +0 -2881
  607. package/vendor/include/ttmath/ttmathbig.h +0 -6111
  608. package/vendor/include/ttmath/ttmathdec.h +0 -419
  609. package/vendor/include/ttmath/ttmathint.h +0 -1923
  610. package/vendor/include/ttmath/ttmathmisc.h +0 -250
  611. package/vendor/include/ttmath/ttmathobjects.h +0 -812
  612. package/vendor/include/ttmath/ttmathparser.h +0 -2791
  613. package/vendor/include/ttmath/ttmaththreads.h +0 -252
  614. package/vendor/include/ttmath/ttmathtypes.h +0 -707
  615. package/vendor/include/ttmath/ttmathuint.h +0 -4190
  616. package/vendor/include/ttmath/ttmathuint_noasm.h +0 -1038
  617. package/vendor/include/ttmath/ttmathuint_x86.h +0 -1620
  618. package/vendor/include/ttmath/ttmathuint_x86_64.h +0 -1177
  619. package/vendor/lib/cmake/tlx/tlx-config.cmake +0 -51
  620. package/vendor/lib/cmake/tlx/tlx-targets-release.cmake +0 -19
  621. package/vendor/lib/cmake/tlx/tlx-targets.cmake +0 -106
  622. package/vendor/lib/cmake/tlx/tlx-version.cmake +0 -11
  623. package/vendor/lib/libtlx.a +0 -0
  624. package/vendor/lib/pkgconfig/networkit.pc +0 -11
  625. package/vendor/lib/pkgconfig/tlx.pc +0 -11
@@ -1,735 +0,0 @@
1
- /*******************************************************************************
2
- * tlx/container/radix_heap.hpp
3
- *
4
- * Part of tlx - http://panthema.net/tlx
5
- *
6
- * Copyright (C) 2018 Manuel Penschuck <tlx@manuel.jetzt>
7
- *
8
- * All rights reserved. Published under the Boost Software License, Version 1.0
9
- ******************************************************************************/
10
-
11
- #ifndef TLX_CONTAINER_RADIX_HEAP_HEADER
12
- #define TLX_CONTAINER_RADIX_HEAP_HEADER
13
-
14
- #include <tlx/define/likely.hpp>
15
- #include <tlx/die.hpp>
16
- #include <tlx/math/clz.hpp>
17
- #include <tlx/math/div_ceil.hpp>
18
- #include <tlx/math/ffs.hpp>
19
- #include <tlx/meta/log2.hpp>
20
- #include <array>
21
- #include <cassert>
22
- #include <cstddef>
23
- #include <cstdint>
24
- #include <limits>
25
- #include <type_traits>
26
- #include <utility>
27
- #include <vector>
28
-
29
- namespace tlx {
30
- namespace radix_heap_detail {
31
-
32
- /*!
33
- * Compute the rank of an integer x (i.e. the number of elements smaller than x
34
- * that are representable using type Int) and vice versa.
35
- * If Int is an unsigned integral type, all computations yield identity.
36
- * If Int is a signed integrals, the smallest (negative) number is mapped to
37
- * rank zero, the next larger value to one and so on.
38
- *
39
- * The implementation assumes negative numbers are implemented as Two's
40
- * complement and contains static_asserts failing if this is not the case.
41
- */
42
- template <typename Int>
43
- class IntegerRank
44
- {
45
- static_assert(std::is_integral<Int>::value,
46
- "SignedInt has to be an integral type");
47
-
48
- public:
49
- using int_type = Int;
50
- using rank_type = typename std::make_unsigned<int_type>::type;
51
-
52
- //! Maps value i to its rank in int_type. For any pair T x < y the invariant
53
- //! IntegerRank<T>::rank_of_int(x) < IntegerRank<T>::rank_of_int(y) holds.
54
- static constexpr rank_type rank_of_int(int_type i)
55
- {
56
- return use_identity_ ? static_cast<rank_type>(i) :
57
- static_cast<rank_type>(i) ^ sign_bit_;
58
- }
59
-
60
- //! Returns the r-th smallest number of int_r. It is the inverse of
61
- //! rank_of_int, i.e. int_at_rank(rank_of_int(i)) == i for all i.
62
- static constexpr int_type int_at_rank(rank_type r)
63
- {
64
- return use_identity_ ? static_cast<int_type>(r) :
65
- static_cast<int_type>(r ^ sign_bit_);
66
- }
67
-
68
- private:
69
- constexpr static bool use_identity_ = !std::is_signed<int_type>::value;
70
-
71
- constexpr static rank_type sign_bit_ =
72
- (rank_type(1) << (8 * sizeof(rank_type) - 1));
73
-
74
- // These test fail if a signed type does not use Two's complement
75
- static_assert(rank_of_int(std::numeric_limits<int_type>::min()) == 0,
76
- "Rank of minimum is not zero");
77
- static_assert(rank_of_int(std::numeric_limits<int_type>::min() + 1) == 1,
78
- "Rank of minimum+1 is not one");
79
- static_assert(rank_of_int(std::numeric_limits<int_type>::max()) ==
80
- std::numeric_limits<rank_type>::max(),
81
- "Rank of maximum is not maximum rank");
82
- static_assert(rank_of_int(std::numeric_limits<int_type>::max()) >
83
- rank_of_int(int_type(0)),
84
- "Rank of maximum is not larger than rank of zero");
85
- };
86
-
87
- //! Internal implementation of BitArray; do not invoke directly
88
- //! \tparam Size Number of bits the data structure is supposed to store
89
- //! \tparam SizeIsAtmost64 Switch between inner node implementation (false)
90
- //! and leaf implementation (true)
91
- template <size_t Size, bool SizeIsAtmost64>
92
- class BitArrayRecursive;
93
-
94
- template <size_t Size>
95
- class BitArrayRecursive<Size, false>
96
- {
97
- static constexpr size_t leaf_width = 6;
98
- static constexpr size_t width = tlx::Log2<Size>::ceil;
99
- static_assert(width > leaf_width,
100
- "Size has to be larger than 2**leaf_width");
101
- static constexpr size_t root_width =
102
- (width % leaf_width) != 0 ? (width % leaf_width) : leaf_width;
103
- static constexpr size_t child_width = width - root_width;
104
- using child_type = BitArrayRecursive<1LLU << child_width, child_width <= 6>;
105
-
106
- static constexpr size_t root_size = div_ceil(Size, child_type::size);
107
- using root_type = BitArrayRecursive<root_size <= 32 ? 32 : 64, true>;
108
-
109
- using child_array_type = std::array<child_type, root_size>;
110
-
111
- public:
112
- static constexpr size_t size = Size;
113
-
114
- explicit BitArrayRecursive() noexcept = default;
115
- BitArrayRecursive(const BitArrayRecursive&) noexcept = default;
116
- BitArrayRecursive(BitArrayRecursive&&) noexcept = default;
117
- BitArrayRecursive& operator=(const BitArrayRecursive&) noexcept = default;
118
- BitArrayRecursive& operator=(BitArrayRecursive&&) noexcept = default;
119
-
120
- void set_bit(const size_t i)
121
- {
122
- const auto idx = get_index_(i);
123
- root_.set_bit(idx.first);
124
- children_[idx.first].set_bit(idx.second);
125
- }
126
-
127
- void clear_bit(const size_t i)
128
- {
129
- const auto idx = get_index_(i);
130
- children_[idx.first].clear_bit(idx.second);
131
- if (children_[idx.first].empty())
132
- root_.clear_bit(idx.first);
133
- }
134
-
135
- bool is_set(const size_t i) const
136
- {
137
- const auto idx = get_index_(i);
138
- return children_[idx.first].is_set(idx.second);
139
- }
140
-
141
- void clear_all()
142
- {
143
- root_.clear_all();
144
- for (auto& child : children_)
145
- child.clear_all();
146
- }
147
-
148
- bool empty() const
149
- {
150
- return root_.empty();
151
- }
152
-
153
- size_t find_lsb() const
154
- {
155
- assert(!empty());
156
-
157
- const size_t child_idx = root_.find_lsb();
158
- const size_t child_val = children_[child_idx].find_lsb();
159
-
160
- return child_idx * child_type::size + child_val;
161
- }
162
-
163
- private:
164
- child_array_type children_;
165
- root_type root_;
166
-
167
- std::pair<size_t, size_t> get_index_(size_t i) const
168
- {
169
- assert(i < size);
170
- return {i / child_type::size, i % child_type::size};
171
- }
172
- };
173
-
174
- template <size_t Size>
175
- class BitArrayRecursive<Size, true>
176
- {
177
- static_assert(Size <= 64, "Support at most 64 bits");
178
- using uint_type = typename std::conditional<Size <= 32, std::uint32_t,
179
- std::uint64_t>::type;
180
-
181
- public:
182
- static constexpr size_t size = Size;
183
-
184
- explicit BitArrayRecursive() noexcept : flags_(0)
185
- {
186
- }
187
-
188
- BitArrayRecursive(const BitArrayRecursive&) noexcept = default;
189
- BitArrayRecursive(BitArrayRecursive&&) noexcept = default;
190
- BitArrayRecursive& operator=(const BitArrayRecursive&) noexcept = default;
191
- BitArrayRecursive& operator=(BitArrayRecursive&&) noexcept = default;
192
-
193
- void set_bit(const size_t i)
194
- {
195
- assert(i < size);
196
- flags_ |= uint_type(1) << i;
197
- }
198
-
199
- void clear_bit(const size_t i)
200
- {
201
- assert(i < size);
202
- flags_ &= ~(uint_type(1) << i);
203
- }
204
-
205
- bool is_set(const size_t i) const
206
- {
207
- assert(i < size);
208
- return (flags_ & (uint_type(1) << i)) != 0;
209
- }
210
-
211
- void clear_all()
212
- {
213
- flags_ = 0;
214
- }
215
-
216
- bool empty() const
217
- {
218
- return !flags_;
219
- }
220
-
221
- size_t find_lsb() const
222
- {
223
- assert(!empty());
224
- die_unless(!empty());
225
- return tlx::ffs(flags_) - 1;
226
- }
227
-
228
- private:
229
- uint_type flags_;
230
- };
231
-
232
- /*!
233
- * A BitArray of fixed size supporting reading, setting, and clearing
234
- * of individual bits. The data structure is optimized to find the bit with
235
- * smallest index that is set (find_lsb).
236
- *
237
- * The BitArray is implemented as a search tree with a fan-out of up to 64.
238
- * It is thus very flat, and all operations but with the exception of clear_all
239
- * have a complexity of O(log_64(Size)) which is << 10 for all practical
240
- * purposes.
241
- */
242
- template <size_t Size>
243
- class BitArray
244
- {
245
- using impl_type = BitArrayRecursive<Size, Size <= 64>;
246
-
247
- public:
248
- static constexpr size_t size = Size;
249
-
250
- explicit BitArray() noexcept = default;
251
- BitArray(const BitArray&) noexcept = default;
252
- BitArray(BitArray&&) noexcept = default;
253
- BitArray& operator=(const BitArray&) noexcept = default;
254
- BitArray& operator=(BitArray&&) noexcept = default;
255
-
256
- //! Set the i-th bit to true
257
- void set_bit(const size_t i)
258
- {
259
- impl_.set_bit(i);
260
- }
261
-
262
- //! Set the i-th bit to false
263
- void clear_bit(const size_t i)
264
- {
265
- impl_.clear_bit(i);
266
- }
267
-
268
- //! Returns value of the i-th
269
- bool is_set(const size_t i) const
270
- {
271
- return impl_.is_set(i);
272
- }
273
-
274
- //! Sets all bits to false
275
- void clear_all()
276
- {
277
- impl_.clear_all();
278
- }
279
-
280
- //! True if all bits are false
281
- bool empty() const
282
- {
283
- return impl_.empty();
284
- }
285
-
286
- //! Finds the bit with smallest index that is set
287
- //! \warning If empty() is true, the result is undefined
288
- size_t find_lsb() const
289
- {
290
- return impl_.find_lsb();
291
- }
292
-
293
- private:
294
- impl_type impl_;
295
- };
296
-
297
- template <unsigned Radix, typename Int>
298
- class BucketComputation
299
- {
300
- static_assert(std::is_unsigned<Int>::value, "Require unsigned integer");
301
- static constexpr unsigned radix_bits = tlx::Log2<Radix>::floor;
302
-
303
- public:
304
- //! Return bucket index key x belongs to given the current insertion limit
305
- size_t operator()(const Int x, const Int insertion_limit) const
306
- {
307
- constexpr Int mask = (1U << radix_bits) - 1;
308
-
309
- assert(x >= insertion_limit);
310
-
311
- const auto diff = x ^ insertion_limit;
312
- if (!diff)
313
- return 0;
314
-
315
- const auto diff_in_bit = (8 * sizeof(Int) - 1) - clz(diff);
316
-
317
- const auto row = diff_in_bit / radix_bits;
318
- const auto bucket_in_row = ((x >> (radix_bits * row)) & mask) - row;
319
-
320
- const auto result = row * Radix + bucket_in_row;
321
-
322
- return result;
323
- }
324
-
325
- //! Return smallest key possible in bucket idx assuming insertion_limit==0
326
- Int lower_bound(const size_t idx) const
327
- {
328
- assert(idx < num_buckets);
329
-
330
- if (idx < Radix)
331
- return static_cast<Int>(idx);
332
-
333
- const size_t row = (idx - 1) / (Radix - 1);
334
- const auto digit = static_cast<Int>(idx - row * (Radix - 1));
335
-
336
- return digit << radix_bits * row;
337
- }
338
-
339
- //! Return largest key possible in bucket idx assuming insertion_limit==0
340
- Int upper_bound(const size_t idx) const
341
- {
342
- assert(idx < num_buckets);
343
-
344
- if (idx == num_buckets - 1)
345
- return std::numeric_limits<Int>::max();
346
-
347
- return lower_bound(idx + 1) - 1;
348
- }
349
-
350
- private:
351
- constexpr static size_t num_buckets_(size_t bits)
352
- {
353
- return (bits >= radix_bits) ?
354
- (Radix - 1) + num_buckets_(bits - radix_bits) :
355
- (1 << bits) - 1;
356
- }
357
-
358
- public:
359
- //! Number of buckets required given Radix and the current data type Int
360
- static constexpr size_t num_buckets =
361
- num_buckets_(std::numeric_limits<Int>::digits) + 1;
362
- };
363
-
364
- //! Used as an adapter to implement RadixHeapPair on top of RadixHeap.
365
- template <typename KeyType, typename DataType>
366
- struct PairKeyExtract
367
- {
368
- using allow_emplace_pair = bool;
369
-
370
- KeyType operator()(const std::pair<KeyType, DataType>& p) const
371
- {
372
- return p.first;
373
- }
374
- };
375
-
376
- } // namespace radix_heap_detail
377
-
378
- //! \addtogroup tlx_container
379
- //! \{
380
-
381
- /*!
382
- * This class implements a monotonic integer min priority queue, more specific
383
- * a multi-level radix heap.
384
- *
385
- * Here, monotonic refers to the fact that the heap maintains an insertion limit
386
- * and does not allow the insertion of keys smaller than this limit. The
387
- * frontier is increased to the current minimum when invoking the methods top(),
388
- * pop() and swap_top_bucket(). To query the currently smallest item without
389
- * updating the insertion limit use peak_top_key().
390
- *
391
- * We implement a two level radix heap. Let k=sizeof(KeyType)*8 be the number of
392
- * bits in a key. In contrast to an ordinary radix heap which contains k
393
- * buckets, we maintain ceil(k/log2(Radix)) rows each containing Radix-many
394
- * buckets. This reduces the number of move operations when reorganizing the
395
- * data structure.
396
- *
397
- * The implementation loosly follows the description of "An Experimental Study
398
- * of Priority Queues in External Memory" [Bregel et al.] and is also inspired
399
- * by https://github.com/iwiwi/radix-heap
400
- *
401
- * \tparam KeyType Has to be an unsigned integer type
402
- * \tparam DataType Type of data payload
403
- * \tparam Radix A power of two <= 64.
404
- */
405
- template <typename ValueType, typename KeyExtract, typename KeyType,
406
- unsigned Radix = 8>
407
- class RadixHeap
408
- {
409
- static_assert(Log2<Radix>::floor == Log2<Radix>::ceil,
410
- "Radix has to be power of two");
411
-
412
- static constexpr bool debug = false;
413
-
414
- public:
415
- using key_type = KeyType;
416
- using value_type = ValueType;
417
- using bucket_index_type = size_t;
418
-
419
- static constexpr unsigned radix = Radix;
420
-
421
- protected:
422
- using Encoder = radix_heap_detail::IntegerRank<key_type>;
423
- using ranked_key_type = typename Encoder::rank_type;
424
- using bucket_map_type =
425
- radix_heap_detail::BucketComputation<Radix, ranked_key_type>;
426
-
427
- static constexpr unsigned radix_bits = tlx::Log2<radix>::floor;
428
- static constexpr unsigned num_layers =
429
- div_ceil(8 * sizeof(ranked_key_type), radix_bits);
430
- static constexpr unsigned num_buckets = bucket_map_type::num_buckets;
431
-
432
- public:
433
- using bucket_data_type = std::vector<value_type>;
434
-
435
- explicit RadixHeap(KeyExtract key_extract = KeyExtract{})
436
- : key_extract_(key_extract)
437
- {
438
- initialize_();
439
- }
440
-
441
- // Copy
442
- RadixHeap(const RadixHeap&) = default;
443
- RadixHeap& operator=(const RadixHeap&) = default;
444
-
445
- // Move
446
- RadixHeap(RadixHeap&&) = default;
447
- RadixHeap& operator=(RadixHeap&&) = default;
448
-
449
- bucket_index_type get_bucket(const value_type& value) const
450
- {
451
- return get_bucket_key(key_extract_(value));
452
- }
453
-
454
- bucket_index_type get_bucket_key(const key_type key) const
455
- {
456
- const auto enc = Encoder::rank_of_int(key);
457
- assert(enc >= insertion_limit_);
458
-
459
- return bucket_map_(enc, insertion_limit_);
460
- }
461
-
462
- //! Construct and insert element with priority key
463
- //! \warning In contrast to all other methods the key has to be provided
464
- //! explicitly as the first argument. All other arguments are passed to
465
- //! the constructor of the element.
466
- template <typename... Args>
467
- bucket_index_type emplace(const key_type key, Args&&... args)
468
- {
469
- const auto enc = Encoder::rank_of_int(key);
470
- assert(enc >= insertion_limit_);
471
- const auto idx = bucket_map_(enc, insertion_limit_);
472
-
473
- emplace_in_bucket(idx, std::forward<Args>(args)...);
474
- return idx;
475
- }
476
-
477
- //! In case the first parameter can be directly casted into key_type,
478
- //! using this method avoid repeating it.
479
- template <typename... Args>
480
- bucket_index_type emplace_keyfirst(const key_type key, Args&&... args)
481
- {
482
- return emplace(key, key, std::forward<Args>(args)...);
483
- }
484
-
485
- //! Construct and insert element into bucket idx (useful if an item
486
- //! was inserted into the same bucket directly before)
487
- //! \warning Calling any method which updates the current
488
- //! can invalidate this hint
489
- template <typename... Args>
490
- void emplace_in_bucket(const bucket_index_type idx, Args&&... args)
491
- {
492
- if (buckets_data_[idx].empty())
493
- filled_.set_bit(idx);
494
- buckets_data_[idx].emplace_back(std::forward<Args>(args)...);
495
-
496
- const auto enc =
497
- Encoder::rank_of_int(key_extract_(buckets_data_[idx].back()));
498
- if (mins_[idx] > enc)
499
- mins_[idx] = enc;
500
- assert(idx == bucket_map_(enc, insertion_limit_));
501
-
502
- size_++;
503
- }
504
-
505
- //! Insert element with priority key
506
- bucket_index_type push(const value_type& value)
507
- {
508
- const auto enc = Encoder::rank_of_int(key_extract_(value));
509
- assert(enc >= insertion_limit_);
510
-
511
- const auto idx = bucket_map_(enc, insertion_limit_);
512
-
513
- push_to_bucket(idx, value);
514
-
515
- return idx;
516
- }
517
-
518
- //! Insert element into specific bucket (useful if an item
519
- //! was inserted into the same bucket directly before)
520
- //! \warning Calling any method which updates the current
521
- //! can invalidate this hint
522
- void push_to_bucket(const bucket_index_type idx, const value_type& value)
523
- {
524
- const auto enc = Encoder::rank_of_int(key_extract_(value));
525
-
526
- assert(enc >= insertion_limit_);
527
- assert(idx == get_bucket(value));
528
-
529
- if (buckets_data_[idx].empty())
530
- filled_.set_bit(idx);
531
- buckets_data_[idx].push_back(value);
532
-
533
- if (mins_[idx] > enc)
534
- mins_[idx] = enc;
535
-
536
- size_++;
537
- }
538
-
539
- //! Indicates whether size() == 0
540
- bool empty() const
541
- {
542
- return size() == 0;
543
- }
544
-
545
- //! Returns number of elements currently stored
546
- size_t size() const
547
- {
548
- return size_;
549
- }
550
-
551
- //! Returns currently smallest key without updating the insertion limit
552
- key_type peak_top_key() const
553
- {
554
- assert(!empty());
555
- const auto first = filled_.find_lsb();
556
- return Encoder::int_at_rank(mins_[first]);
557
- }
558
-
559
- //! Returns currently smallest key and data
560
- //! \warning Updates insertion limit; no smaller keys can be inserted later
561
- const value_type& top()
562
- {
563
- reorganize_();
564
- return buckets_data_[current_bucket_].back();
565
- }
566
-
567
- //! Removes smallest element
568
- //! \warning Updates insertion limit; no smaller keys can be inserted later
569
- void pop()
570
- {
571
- reorganize_();
572
- buckets_data_[current_bucket_].pop_back();
573
- if (buckets_data_[current_bucket_].empty())
574
- filled_.clear_bit(current_bucket_);
575
- --size_;
576
- }
577
-
578
- //! Exchanges the top buckets with an *empty* user provided bucket.
579
- //! Can be used for bulk removals and may reduce allocation overhead
580
- //! \warning The exchange bucket has to be empty
581
- //! \warning Updates insertion limit; no smaller keys can be inserted later
582
- void swap_top_bucket(bucket_data_type& exchange_bucket)
583
- {
584
- reorganize_();
585
-
586
- assert(exchange_bucket.empty());
587
- size_ -= buckets_data_[current_bucket_].size();
588
- buckets_data_[current_bucket_].swap(exchange_bucket);
589
-
590
- filled_.clear_bit(current_bucket_);
591
- }
592
-
593
- //! Clears all internal queues and resets insertion limit
594
- void clear()
595
- {
596
- for (auto& x : buckets_data_)
597
- x.clear();
598
- initialize_();
599
- }
600
-
601
- private:
602
- KeyExtract key_extract_;
603
- size_t size_{0};
604
- ranked_key_type insertion_limit_{0};
605
- size_t current_bucket_{0};
606
-
607
- bucket_map_type bucket_map_;
608
-
609
- std::array<bucket_data_type, num_buckets> buckets_data_;
610
-
611
- std::array<ranked_key_type, num_buckets> mins_;
612
- radix_heap_detail::BitArray<num_buckets> filled_;
613
-
614
- void initialize_()
615
- {
616
- size_ = 0;
617
- insertion_limit_ = std::numeric_limits<ranked_key_type>::min();
618
- current_bucket_ = 0;
619
-
620
- std::fill(mins_.begin(), mins_.end(),
621
- std::numeric_limits<ranked_key_type>::max());
622
-
623
- filled_.clear_all();
624
- }
625
-
626
- void reorganize_()
627
- {
628
- assert(!empty());
629
-
630
- // nothing do to if we already know a suited bucket
631
- if (TLX_LIKELY(!buckets_data_[current_bucket_].empty()))
632
- {
633
- assert(current_bucket_ < Radix);
634
- return;
635
- }
636
-
637
- // mark current bucket as empty
638
- mins_[current_bucket_] = std::numeric_limits<ranked_key_type>::max();
639
- filled_.clear_bit(current_bucket_);
640
-
641
- // find a non-empty bucket
642
- const auto first_non_empty = filled_.find_lsb();
643
- #ifndef NDEBUG
644
- {
645
- assert(first_non_empty < num_buckets);
646
-
647
- for (size_t i = 0; i < first_non_empty; i++)
648
- {
649
- assert(buckets_data_[i].empty());
650
- assert(mins_[i] == std::numeric_limits<ranked_key_type>::max());
651
- }
652
-
653
- assert(!buckets_data_[first_non_empty].empty());
654
- }
655
- #endif
656
-
657
- if (TLX_LIKELY(first_non_empty < Radix))
658
- {
659
- // the first_non_empty non-empty bucket belongs to the smallest row
660
- // it hence contains only one key and we do not need to reorganise
661
- current_bucket_ = first_non_empty;
662
- return;
663
- }
664
-
665
- // update insertion limit
666
- {
667
- const auto new_ins_limit = mins_[first_non_empty];
668
- assert(new_ins_limit > insertion_limit_);
669
- insertion_limit_ = new_ins_limit;
670
- }
671
-
672
- auto& data_source = buckets_data_[first_non_empty];
673
-
674
- for (auto& x : data_source)
675
- {
676
- const ranked_key_type key = Encoder::rank_of_int(key_extract_(x));
677
- assert(key >= mins_[first_non_empty]);
678
- assert(first_non_empty == mins_.size() - 1 ||
679
- key < mins_[first_non_empty + 1]);
680
- const auto idx = bucket_map_(key, insertion_limit_);
681
- assert(idx < first_non_empty);
682
-
683
- // insert into bucket
684
- if (buckets_data_[idx].empty())
685
- filled_.set_bit(idx);
686
- buckets_data_[idx].push_back(std::move(x));
687
- if (mins_[idx] > key)
688
- mins_[idx] = key;
689
- }
690
-
691
- data_source.clear();
692
-
693
- // mark consumed bucket as empty
694
- mins_[first_non_empty] = std::numeric_limits<ranked_key_type>::max();
695
- filled_.clear_bit(first_non_empty);
696
-
697
- // update global pointers and minima
698
- current_bucket_ = filled_.find_lsb();
699
- assert(current_bucket_ < Radix);
700
- assert(!buckets_data_[current_bucket_].empty());
701
- assert(mins_[current_bucket_] >= insertion_limit_);
702
- }
703
- };
704
-
705
- /*!
706
- * Helper to easily derive type of RadixHeap for a pre-C++17 compiler.
707
- * Refer to RadixHeap for description of parameters.
708
- */
709
- template <typename DataType, unsigned Radix = 8, typename KeyExtract = void>
710
- auto make_radix_heap(KeyExtract&& key_extract)
711
- -> RadixHeap<DataType, KeyExtract,
712
- decltype(key_extract(std::declval<DataType>())), Radix>
713
- {
714
- return (RadixHeap<DataType, KeyExtract, decltype(key_extract(DataType{})),
715
- Radix>{key_extract});
716
- }
717
-
718
- /*!
719
- * This class is a variant of tlx::RadixHeap for data types which do not
720
- * include the key directly. Hence each entry is stored as an (Key,Value)-Pair
721
- * implemented with std::pair.
722
- */
723
- template <typename KeyType, typename DataType, unsigned Radix = 8>
724
- using RadixHeapPair =
725
- RadixHeap<std::pair<KeyType, DataType>,
726
- radix_heap_detail::PairKeyExtract<KeyType, DataType>, KeyType,
727
- Radix>;
728
-
729
- //! \}
730
-
731
- } // namespace tlx
732
-
733
- #endif // !TLX_CONTAINER_RADIX_HEAP_HEADER
734
-
735
- /******************************************************************************/