@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,1009 +0,0 @@
1
- /*******************************************************************************
2
- * tlx/container/loser_tree.hpp
3
- *
4
- * Many generic loser tree variants.
5
- *
6
- * Copied and modified from STXXL, see http://stxxl.org, which itself extracted
7
- * it from MCSTL http://algo2.iti.uni-karlsruhe.de/singler/mcstl/. Both are
8
- * distributed under the Boost Software License, Version 1.0.
9
- *
10
- * Part of tlx - http://panthema.net/tlx
11
- *
12
- * Copyright (C) 2007 Johannes Singler <singler@ira.uka.de>
13
- * Copyright (C) 2014-2017 Timo Bingmann <tb@panthema.net>
14
- * Copyright (C) 2015 Huyen Chau Nguyen <hello@chau-nguyen.de>
15
- *
16
- * All rights reserved. Published under the Boost Software License, Version 1.0
17
- ******************************************************************************/
18
-
19
- #ifndef TLX_CONTAINER_LOSER_TREE_HEADER
20
- #define TLX_CONTAINER_LOSER_TREE_HEADER
21
-
22
- #include <tlx/container/simple_vector.hpp>
23
- #include <tlx/define/likely.hpp>
24
- #include <tlx/math/round_to_power_of_two.hpp>
25
- #include <tlx/unused.hpp>
26
- #include <algorithm>
27
- #include <cassert>
28
- #include <cstddef>
29
- #include <cstdint>
30
- #include <functional>
31
- #include <type_traits>
32
- #include <utility>
33
-
34
- namespace tlx {
35
-
36
- //! \addtogroup tlx_container
37
- //! \{
38
- //! \defgroup tlx_container_loser_tree Loser Trees
39
- //! Loser/Tournament tree variants
40
- //! \{
41
-
42
- /*!
43
- * Guarded loser tree/tournament tree, either copying the whole element into the
44
- * tree structure, or looking up the element via the index.
45
- *
46
- * This is a base class for the LoserTreeCopy\<true> and \<false> classes.
47
- *
48
- * Guarding is done explicitly through one flag sup per element, inf is not
49
- * needed due to a better initialization routine. This is a well-performing
50
- * variant.
51
- *
52
- * \tparam ValueType the element type
53
- * \tparam Comparator comparator to use for binary comparisons.
54
- */
55
- template <typename ValueType, typename Comparator = std::less<ValueType> >
56
- class LoserTreeCopyBase
57
- {
58
- public:
59
- //! size of counters and array indexes
60
- using Source = std::uint32_t;
61
-
62
- //! sentinel for invalid or finished Sources
63
- static constexpr Source invalid_ = Source(-1);
64
-
65
- protected:
66
- //! Internal representation of a loser tree player/node
67
- struct Loser
68
- {
69
- //! flag, true iff is a virtual maximum sentinel
70
- bool sup;
71
- //! index of source
72
- Source source;
73
- //! copy of key value of the element in this node
74
- ValueType key;
75
- };
76
-
77
- // NOLINTBEGIN(cppcoreguidelines-non-private-member-variables-in-classes)
78
-
79
- //! number of nodes
80
- const Source ik_;
81
- //! log_2(ik) next greater power of 2
82
- const Source k_;
83
- //! array containing loser tree nodes -- avoid default-constructing
84
- //! losers[].key
85
- SimpleVector<Loser> losers_;
86
- //! the comparator object
87
- Comparator cmp_;
88
-
89
- // NOLINTEND(cppcoreguidelines-non-private-member-variables-in-classes)
90
- private:
91
- //! still have to construct keys
92
- bool first_insert_ = true;
93
-
94
- public:
95
- explicit LoserTreeCopyBase(const Source& k,
96
- const Comparator& cmp = Comparator())
97
- : ik_(k), k_(round_up_to_power_of_two(ik_)), losers_(2 * k_), cmp_(cmp)
98
- {
99
- for (Source i = ik_ - 1; i < k_; ++i)
100
- {
101
- losers_[i + k_].sup = true;
102
- losers_[i + k_].source = invalid_;
103
- }
104
- }
105
-
106
- //! return the index of the player with the smallest element.
107
- Source min_source()
108
- {
109
- return losers_[0].source;
110
- }
111
-
112
- /*!
113
- * Initializes the player source with the element key.
114
- *
115
- * \param keyp the element to insert
116
- * \param source index of the player
117
- * \param sup flag that determines whether the value to insert is an
118
- * explicit supremum sentinel.
119
- */
120
- void insert_start(const ValueType* keyp, const Source& source, bool sup)
121
- {
122
- Source pos = k_ + source;
123
-
124
- assert(pos < losers_.size());
125
- assert(sup == (keyp == nullptr));
126
-
127
- losers_[pos].sup = sup;
128
- losers_[pos].source = source;
129
-
130
- if (TLX_UNLIKELY(first_insert_))
131
- {
132
- // copy construct all keys from this first key
133
- for (Source i = 0; i < 2 * k_; ++i)
134
- {
135
- if (keyp)
136
- losers_[i].key = *keyp;
137
- else
138
- losers_[i].key = ValueType();
139
- }
140
- first_insert_ = false;
141
- }
142
- else
143
- {
144
- losers_[pos].key = keyp ? *keyp : ValueType();
145
- }
146
- }
147
-
148
- /*!
149
- * Computes the winner of the competition at player root. Called
150
- * recursively (starting at 0) to build the initial tree.
151
- *
152
- * \param root index of the game to start.
153
- */
154
- Source init_winner(const Source& root)
155
- {
156
- if (root >= k_)
157
- return root;
158
-
159
- Source left = init_winner(2 * root);
160
- Source right = init_winner(2 * root + 1);
161
- if (losers_[right].sup ||
162
- (!losers_[left].sup &&
163
- !cmp_(losers_[right].key, losers_[left].key)))
164
- {
165
- // left one is less or equal
166
- losers_[root] = losers_[right];
167
- return left;
168
- }
169
-
170
- // right one is less
171
- losers_[root] = losers_[left];
172
- return right;
173
- }
174
-
175
- void init()
176
- {
177
- if (TLX_UNLIKELY(k_ == 0))
178
- return;
179
- losers_[0] = losers_[init_winner(1)];
180
- }
181
- };
182
-
183
- /*!
184
- * Guarded loser tree/tournament tree, either copying the whole element into the
185
- * tree structure, or looking up the element via the index.
186
- *
187
- * Unstable specialization of LoserTreeCopyBase.
188
- *
189
- * Guarding is done explicitly through one flag sup per element, inf is not
190
- * needed due to a better initialization routine. This is a well-performing
191
- * variant.
192
- *
193
- * \tparam ValueType the element type
194
- * \tparam Comparator comparator to use for binary comparisons.
195
- */
196
- template <bool Stable /* == false */, typename ValueType,
197
- typename Comparator = std::less<ValueType> >
198
- class LoserTreeCopy : public LoserTreeCopyBase<ValueType, Comparator>
199
- {
200
- public:
201
- using Super = LoserTreeCopyBase<ValueType, Comparator>;
202
- using Source = typename Super::Source;
203
-
204
- protected:
205
- using Super::cmp_;
206
- using Super::k_;
207
- using Super::losers_;
208
-
209
- public:
210
- explicit LoserTreeCopy(const Source& k,
211
- const Comparator& cmp = Comparator())
212
- : Super(k, cmp)
213
- {
214
- }
215
-
216
- // do not pass const reference since key will be used as local variable
217
- void delete_min_insert(const ValueType* keyp, bool sup)
218
- {
219
- using std::swap;
220
- assert(sup == (keyp == nullptr));
221
-
222
- Source source = losers_[0].source;
223
- ValueType key = keyp ? *keyp : ValueType();
224
- Source pos = (k_ + source) / 2;
225
-
226
- while (pos > 0)
227
- {
228
- if (TLX_UNLIKELY(sup))
229
- {
230
- // the other candidate is smaller
231
- swap(losers_[pos].sup, sup);
232
- swap(losers_[pos].source, source);
233
- swap(losers_[pos].key, key);
234
- }
235
- else if (TLX_UNLIKELY(losers_[pos].sup))
236
- {
237
- // this candidate is smaller
238
- }
239
- else if (cmp_(losers_[pos].key, key))
240
- {
241
- // the other one is smaller
242
- swap(losers_[pos].source, source);
243
- swap(losers_[pos].key, key);
244
- }
245
- else
246
- {
247
- // this candidate is smaller
248
- }
249
- pos /= 2;
250
- }
251
-
252
- losers_[0].sup = sup;
253
- losers_[0].source = source;
254
- losers_[0].key = key;
255
- }
256
- };
257
-
258
- /*!
259
- * Guarded loser tree/tournament tree, either copying the whole element into the
260
- * tree structure, or looking up the element via the index.
261
- *
262
- * Stable specialization of LoserTreeCopyBase.
263
- *
264
- * Guarding is done explicitly through one flag sup per element, inf is not
265
- * needed due to a better initialization routine. This is a well-performing
266
- * variant.
267
- *
268
- * \tparam ValueType the element type
269
- * \tparam Comparator comparator to use for binary comparisons.
270
- */
271
- template <typename ValueType, typename Comparator>
272
- class LoserTreeCopy</* Stable == */ true, ValueType, Comparator>
273
- : public LoserTreeCopyBase<ValueType, Comparator>
274
- {
275
- public:
276
- using Super = LoserTreeCopyBase<ValueType, Comparator>;
277
- using Source = typename Super::Source;
278
-
279
- protected:
280
- using Super::cmp_;
281
- using Super::k_;
282
- using Super::losers_;
283
-
284
- public:
285
- explicit LoserTreeCopy(const Source& k,
286
- const Comparator& cmp = Comparator())
287
- : Super(k, cmp)
288
- {
289
- }
290
-
291
- // do not pass const reference since key will be used as local variable
292
- void delete_min_insert(const ValueType* keyp, bool sup)
293
- {
294
- using std::swap;
295
- assert(sup == (keyp == nullptr));
296
-
297
- Source source = losers_[0].source;
298
- ValueType key = keyp ? *keyp : ValueType();
299
- Source pos = (k_ + source) / 2;
300
-
301
- while (pos > 0)
302
- {
303
- if ((TLX_UNLIKELY(sup) && (!TLX_UNLIKELY(losers_[pos].sup) ||
304
- losers_[pos].source < source)) ||
305
- (!TLX_UNLIKELY(sup) && !TLX_UNLIKELY(losers_[pos].sup) &&
306
- ((cmp_(losers_[pos].key, key)) ||
307
- (!cmp_(key, losers_[pos].key) &&
308
- losers_[pos].source < source))))
309
- {
310
- // the other one is smaller
311
- swap(losers_[pos].sup, sup);
312
- swap(losers_[pos].source, source);
313
- swap(losers_[pos].key, key);
314
- }
315
- pos /= 2;
316
- }
317
-
318
- losers_[0].sup = sup;
319
- losers_[0].source = source;
320
- losers_[0].key = key;
321
- }
322
- };
323
-
324
- /*!
325
- * Guarded loser tree, using pointers to the elements instead of copying them
326
- * into the tree nodes.
327
- *
328
- * This is a base class for the LoserTreePointer\<true> and \<false> classes.
329
- *
330
- * Guarding is done explicitly through one flag sup per element, inf is not
331
- * needed due to a better initialization routine. This is a well-performing
332
- * variant.
333
- */
334
- template <typename ValueType, typename Comparator = std::less<ValueType> >
335
- class LoserTreePointerBase
336
- {
337
- public:
338
- //! size of counters and array indexes
339
- using Source = std::uint32_t;
340
-
341
- //! sentinel for invalid or finished Sources
342
- static constexpr Source invalid_ = Source(-1);
343
-
344
- protected:
345
- //! Internal representation of a loser tree player/node
346
- struct Loser
347
- {
348
- //! index of source
349
- Source source;
350
- //! pointer to key value of the element in this node
351
- const ValueType* keyp;
352
- };
353
-
354
- // NOLINTBEGIN(cppcoreguidelines-non-private-member-variables-in-classes)
355
-
356
- //! number of nodes
357
- const Source ik_;
358
- //! log_2(ik) next greater power of 2
359
- const Source k_;
360
- //! array containing loser tree nodes
361
- SimpleVector<Loser> losers_;
362
- //! the comparator object
363
- Comparator cmp_;
364
-
365
- // NOLINTEND(cppcoreguidelines-non-private-member-variables-in-classes)
366
- public:
367
- explicit LoserTreePointerBase(Source k,
368
- const Comparator& cmp = Comparator())
369
- : ik_(k), k_(round_up_to_power_of_two(ik_)), losers_(k_ * 2), cmp_(cmp)
370
- {
371
- for (Source i = ik_ - 1; i < k_; i++)
372
- {
373
- losers_[i + k_].keyp = nullptr;
374
- losers_[i + k_].source = invalid_;
375
- }
376
- }
377
-
378
- LoserTreePointerBase(const LoserTreePointerBase&) = delete;
379
- LoserTreePointerBase& operator=(const LoserTreePointerBase&) = delete;
380
- LoserTreePointerBase(LoserTreePointerBase&&) = default;
381
- LoserTreePointerBase& operator=(LoserTreePointerBase&&) = default;
382
-
383
- //! return the index of the player with the smallest element.
384
- Source min_source()
385
- {
386
- return losers_[0].keyp ? losers_[0].source : invalid_;
387
- }
388
-
389
- /*!
390
- * Initializes the player source with the element key.
391
- *
392
- * \param keyp the element to insert
393
- * \param source index of the player
394
- * \param sup flag that determines whether the value to insert is an
395
- * explicit supremum sentinel.
396
- */
397
- void insert_start(const ValueType* keyp, const Source& source, bool sup)
398
- {
399
- Source pos = k_ + source;
400
-
401
- assert(pos < losers_.size());
402
- assert(sup == (keyp == nullptr));
403
- unused(sup);
404
-
405
- losers_[pos].source = source;
406
- losers_[pos].keyp = keyp;
407
- }
408
-
409
- /*!
410
- * Computes the winner of the competition at player root. Called
411
- * recursively (starting at 0) to build the initial tree.
412
- *
413
- * \param root index of the game to start.
414
- */
415
- Source init_winner(const Source& root)
416
- {
417
- if (root >= k_)
418
- return root;
419
-
420
- Source left = init_winner(2 * root);
421
- Source right = init_winner(2 * root + 1);
422
- if (!losers_[right].keyp ||
423
- (losers_[left].keyp &&
424
- !cmp_(*losers_[right].keyp, *losers_[left].keyp)))
425
- {
426
- // left one is less or equal
427
- losers_[root] = losers_[right];
428
- return left;
429
- }
430
-
431
- // right one is less
432
- losers_[root] = losers_[left];
433
- return right;
434
- }
435
-
436
- void init()
437
- {
438
- if (TLX_UNLIKELY(k_ == 0))
439
- return;
440
- losers_[0] = losers_[init_winner(1)];
441
- }
442
- };
443
-
444
- /*!
445
- * Guarded loser tree, using pointers to the elements instead of copying them
446
- * into the tree nodes.
447
- *
448
- * Unstable specialization of LoserTreeCopyBase.
449
- *
450
- * Guarding is done explicitly through one flag sup per element, inf is not
451
- * needed due to a better initialization routine. This is a well-performing
452
- * variant.
453
- */
454
- template <bool Stable /* == false */, typename ValueType,
455
- typename Comparator = std::less<ValueType> >
456
- class LoserTreePointer : public LoserTreePointerBase<ValueType, Comparator>
457
- {
458
- public:
459
- using Super = LoserTreePointerBase<ValueType, Comparator>;
460
- using Source = typename Super::Source;
461
-
462
- protected:
463
- using Super::cmp_;
464
- using Super::k_;
465
- using Super::losers_;
466
-
467
- public:
468
- explicit LoserTreePointer(Source k, const Comparator& cmp = Comparator())
469
- : Super(k, cmp)
470
- {
471
- }
472
-
473
- void delete_min_insert(const ValueType* keyp, bool sup)
474
- {
475
- using std::swap;
476
- assert(sup == (keyp == nullptr));
477
- unused(sup);
478
-
479
- Source source = losers_[0].source;
480
- Source pos = (k_ + source) / 2;
481
-
482
- while (pos > 0)
483
- {
484
- if (TLX_UNLIKELY(!keyp))
485
- {
486
- // the other candidate is smaller
487
- swap(losers_[pos].source, source);
488
- swap(losers_[pos].keyp, keyp);
489
- }
490
- else if (TLX_UNLIKELY(!losers_[pos].keyp))
491
- {
492
- // this candidate is smaller
493
- }
494
- else if (cmp_(*losers_[pos].keyp, *keyp))
495
- {
496
- // the other one is smaller
497
- swap(losers_[pos].source, source);
498
- swap(losers_[pos].keyp, keyp);
499
- }
500
- else
501
- {
502
- // this candidate is smaller
503
- }
504
- pos /= 2;
505
- }
506
-
507
- losers_[0].source = source;
508
- losers_[0].keyp = keyp;
509
- }
510
- };
511
-
512
- /*!
513
- * Guarded loser tree, using pointers to the elements instead of copying them
514
- * into the tree nodes.
515
- *
516
- * Unstable specialization of LoserTreeCopyBase.
517
- *
518
- * Guarding is done explicitly through one flag sup per element, inf is not
519
- * needed due to a better initialization routine. This is a well-performing
520
- * variant.
521
- */
522
- template <typename ValueType, typename Comparator>
523
- class LoserTreePointer</* Stable == */ true, ValueType, Comparator>
524
- : public LoserTreePointerBase<ValueType, Comparator>
525
- {
526
- public:
527
- using Super = LoserTreePointerBase<ValueType, Comparator>;
528
- using Source = typename Super::Source;
529
-
530
- protected:
531
- using Super::cmp_;
532
- using Super::k_;
533
- using Super::losers_;
534
-
535
- public:
536
- explicit LoserTreePointer(Source k, const Comparator& cmp = Comparator())
537
- : Super(k, cmp)
538
- {
539
- }
540
-
541
- void delete_min_insert(const ValueType* keyp, bool sup)
542
- {
543
- using std::swap;
544
- assert(sup == (keyp == nullptr));
545
- unused(sup);
546
-
547
- Source source = losers_[0].source;
548
- for (Source pos = (k_ + source) / 2; pos > 0; pos /= 2)
549
- {
550
- // the smaller one gets promoted, ties are broken by source
551
- if ((!keyp &&
552
- (losers_[pos].keyp || losers_[pos].source < source)) ||
553
- (keyp && losers_[pos].keyp &&
554
- ((cmp_(*losers_[pos].keyp, *keyp)) ||
555
- (!cmp_(*keyp, *losers_[pos].keyp) &&
556
- losers_[pos].source < source))))
557
- {
558
- // the other one is smaller
559
- swap(losers_[pos].source, source);
560
- swap(losers_[pos].keyp, keyp);
561
- }
562
- }
563
-
564
- losers_[0].source = source;
565
- losers_[0].keyp = keyp;
566
- }
567
- };
568
-
569
- /*!
570
- * Unguarded loser tree, copying the whole element into the tree structure.
571
- *
572
- * This is a base class for the LoserTreeCopyUnguarded\<true> and \<false>
573
- * classes.
574
- *
575
- * No guarding is done, therefore not a single input sequence must run empty.
576
- * This is a very fast variant.
577
- */
578
- template <typename ValueType, typename Comparator = std::less<ValueType> >
579
- class LoserTreeCopyUnguardedBase
580
- {
581
- public:
582
- //! size of counters and array indexes
583
- using Source = std::uint32_t;
584
-
585
- //! sentinel for invalid or finished Sources
586
- static constexpr Source invalid_ = Source(-1);
587
-
588
- protected:
589
- //! Internal representation of a loser tree player/node
590
- struct Loser
591
- {
592
- //! index of source
593
- Source source;
594
- //! copy of key value of the element in this node
595
- ValueType key;
596
- };
597
-
598
- // NOLINTBEGIN(cppcoreguidelines-non-private-member-variables-in-classes)
599
-
600
- //! number of nodes
601
- Source ik_;
602
- //! log_2(ik) next greater power of 2
603
- Source k_;
604
- //! array containing loser tree nodes
605
- SimpleVector<Loser> losers_;
606
- //! the comparator object
607
- Comparator cmp_;
608
-
609
- // NOLINTEND(cppcoreguidelines-non-private-member-variables-in-classes)
610
- public:
611
- LoserTreeCopyUnguardedBase(Source k, const ValueType& sentinel,
612
- const Comparator& cmp = Comparator())
613
- : ik_(k), k_(round_up_to_power_of_two(ik_)), losers_(k_ * 2), cmp_(cmp)
614
- {
615
- for (Source i = 0; i < 2 * k_; i++)
616
- {
617
- losers_[i].source = invalid_;
618
- losers_[i].key = sentinel;
619
- }
620
- }
621
-
622
- //! return the index of the player with the smallest element.
623
- Source min_source()
624
- {
625
- assert(losers_[0].source != invalid_ &&
626
- "Data underrun in unguarded merging.");
627
- return losers_[0].source;
628
- }
629
-
630
- void insert_start(const ValueType* keyp, const Source& source, bool sup)
631
- {
632
- Source pos = k_ + source;
633
-
634
- assert(pos < losers_.size());
635
- assert(sup == (keyp == nullptr));
636
- unused(sup);
637
-
638
- losers_[pos].source = source;
639
- losers_[pos].key = *keyp;
640
- }
641
-
642
- Source init_winner(const Source& root)
643
- {
644
- if (root >= k_)
645
- return root;
646
-
647
- Source left = init_winner(2 * root);
648
- Source right = init_winner(2 * root + 1);
649
- if (!cmp_(losers_[right].key, losers_[left].key))
650
- {
651
- // left one is less or equal
652
- losers_[root] = losers_[right];
653
- return left;
654
- }
655
-
656
- // right one is less
657
- losers_[root] = losers_[left];
658
- return right;
659
- }
660
-
661
- void init()
662
- {
663
- if (TLX_UNLIKELY(k_ == 0))
664
- return;
665
- losers_[0] = losers_[init_winner(1)];
666
- }
667
- };
668
-
669
- template <bool Stable /* == false */, typename ValueType,
670
- typename Comparator = std::less<ValueType> >
671
- class LoserTreeCopyUnguarded
672
- : public LoserTreeCopyUnguardedBase<ValueType, Comparator>
673
- {
674
- public:
675
- using Super = LoserTreeCopyUnguardedBase<ValueType, Comparator>;
676
- using Source = typename Super::Source;
677
-
678
- private:
679
- using Super::cmp_;
680
- using Super::k_;
681
- using Super::losers_;
682
-
683
- public:
684
- LoserTreeCopyUnguarded(Source k, const ValueType& sentinel,
685
- const Comparator& cmp = Comparator())
686
- : Super(k, sentinel, cmp)
687
- {
688
- }
689
-
690
- // do not pass const reference since key will be used as local variable
691
- void delete_min_insert(const ValueType* keyp, bool sup)
692
- {
693
- using std::swap;
694
- assert(sup == (keyp == nullptr));
695
- unused(sup);
696
-
697
- Source source = losers_[0].source;
698
- ValueType key = keyp ? *keyp : ValueType();
699
-
700
- for (Source pos = (k_ + source) / 2; pos > 0; pos /= 2)
701
- {
702
- // the smaller one gets promoted
703
- if (cmp_(losers_[pos].key, key))
704
- {
705
- // the other one is smaller
706
- swap(losers_[pos].source, source);
707
- swap(losers_[pos].key, key);
708
- }
709
- }
710
-
711
- losers_[0].source = source;
712
- losers_[0].key = key;
713
- }
714
- };
715
-
716
- template <typename ValueType, typename Comparator>
717
- class LoserTreeCopyUnguarded</* Stable == */ true, ValueType, Comparator>
718
- : public LoserTreeCopyUnguardedBase<ValueType, Comparator>
719
- {
720
- public:
721
- using Super = LoserTreeCopyUnguardedBase<ValueType, Comparator>;
722
- using Source = typename Super::Source;
723
-
724
- private:
725
- using Super::cmp_;
726
- using Super::k_;
727
- using Super::losers_;
728
-
729
- public:
730
- LoserTreeCopyUnguarded(Source k, const ValueType& sentinel,
731
- const Comparator& comp = Comparator())
732
- : Super(k, sentinel, comp)
733
- {
734
- }
735
-
736
- // do not pass const reference since key will be used as local variable
737
- void delete_min_insert(const ValueType* keyp, bool sup)
738
- {
739
- using std::swap;
740
- assert(sup == (keyp == nullptr));
741
- unused(sup);
742
-
743
- Source source = losers_[0].source;
744
- ValueType key = keyp ? *keyp : ValueType();
745
-
746
- for (Source pos = (k_ + source) / 2; pos > 0; pos /= 2)
747
- {
748
- if (cmp_(losers_[pos].key, key) ||
749
- (!cmp_(key, losers_[pos].key) && losers_[pos].source < source))
750
- {
751
- // the other one is smaller
752
- swap(losers_[pos].source, source);
753
- swap(losers_[pos].key, key);
754
- }
755
- }
756
-
757
- losers_[0].source = source;
758
- losers_[0].key = key;
759
- }
760
- };
761
-
762
- /*!
763
- * Unguarded loser tree, keeping only pointers to the elements in the tree
764
- * structure.
765
- *
766
- * This is a base class for the LoserTreePointerUnguarded\<true> and \<false>
767
- * classes.
768
- *
769
- * No guarding is done, therefore not a single input sequence must run empty.
770
- * This is a very fast variant.
771
- */
772
- template <typename ValueType, typename Comparator = std::less<ValueType> >
773
- class LoserTreePointerUnguardedBase
774
- {
775
- public:
776
- //! size of counters and array indexes
777
- using Source = std::uint32_t;
778
-
779
- //! sentinel for invalid or finished Sources
780
- static constexpr Source invalid_ = Source(-1);
781
-
782
- protected:
783
- //! Internal representation of a loser tree player/node
784
- struct Loser
785
- {
786
- //! index of source
787
- Source source;
788
- //! copy of key value of the element in this node
789
- const ValueType* keyp;
790
- };
791
-
792
- // NOLINTBEGIN(cppcoreguidelines-non-private-member-variables-in-classes)
793
-
794
- //! number of nodes
795
- Source ik_;
796
- //! log_2(ik) next greater power of 2
797
- Source k_;
798
- //! array containing loser tree nodes
799
- SimpleVector<Loser> losers_;
800
- //! the comparator object
801
- Comparator cmp_;
802
-
803
- // NOLINTEND(cppcoreguidelines-non-private-member-variables-in-classes)
804
- public:
805
- LoserTreePointerUnguardedBase(const Source& k, const ValueType& sentinel,
806
- const Comparator& cmp = Comparator())
807
- : ik_(k), k_(round_up_to_power_of_two(ik_)), losers_(k_ * 2), cmp_(cmp)
808
- {
809
- for (Source i = ik_ - 1; i < k_; i++)
810
- {
811
- losers_[i + k_].source = invalid_;
812
- losers_[i + k_].keyp = &sentinel;
813
- }
814
- }
815
-
816
- // non construction-copyable
817
- LoserTreePointerUnguardedBase(const LoserTreePointerUnguardedBase& other) =
818
- delete;
819
- // non copyable
820
- LoserTreePointerUnguardedBase& operator=(
821
- const LoserTreePointerUnguardedBase&) = delete;
822
-
823
- Source min_source()
824
- {
825
- return losers_[0].source;
826
- }
827
-
828
- void insert_start(const ValueType* keyp, const Source& source, bool sup)
829
- {
830
- Source pos = k_ + source;
831
-
832
- assert(pos < losers_.size());
833
- assert(sup == (keyp == nullptr));
834
- unused(sup);
835
-
836
- losers_[pos].source = source;
837
- losers_[pos].keyp = keyp;
838
- }
839
-
840
- Source init_winner(const Source& root)
841
- {
842
- if (root >= k_)
843
- return root;
844
-
845
- Source left = init_winner(2 * root);
846
- Source right = init_winner(2 * root + 1);
847
- if (!cmp_(*losers_[right].keyp, *losers_[left].keyp))
848
- {
849
- // left one is less or equal
850
- losers_[root] = losers_[right];
851
- return left;
852
- }
853
-
854
- // right one is less
855
- losers_[root] = losers_[left];
856
- return right;
857
- }
858
-
859
- void init()
860
- {
861
- if (TLX_UNLIKELY(k_ == 0))
862
- return;
863
- losers_[0] = losers_[init_winner(1)];
864
- }
865
- };
866
-
867
- template <bool Stable /* == false */, typename ValueType,
868
- typename Comparator = std::less<ValueType> >
869
- class LoserTreePointerUnguarded
870
- : public LoserTreePointerUnguardedBase<ValueType, Comparator>
871
- {
872
- public:
873
- using Super = LoserTreePointerUnguardedBase<ValueType, Comparator>;
874
- using Source = typename Super::Source;
875
-
876
- protected:
877
- using Super::cmp_;
878
- using Super::k_;
879
- using Super::losers_;
880
-
881
- public:
882
- LoserTreePointerUnguarded(const Source& k, const ValueType& sentinel,
883
- const Comparator& cmp = Comparator())
884
- : Super(k, sentinel, cmp)
885
- {
886
- }
887
-
888
- void delete_min_insert(const ValueType* keyp, bool sup)
889
- {
890
- using std::swap;
891
- assert(sup == (keyp == nullptr));
892
- unused(sup);
893
-
894
- Source source = losers_[0].source;
895
- for (Source pos = (k_ + source) / 2; pos > 0; pos /= 2)
896
- {
897
- // the smaller one gets promoted
898
- if (cmp_(*losers_[pos].keyp, *keyp))
899
- {
900
- // the other one is smaller
901
- swap(losers_[pos].source, source);
902
- swap(losers_[pos].keyp, keyp);
903
- }
904
- }
905
-
906
- losers_[0].source = source;
907
- losers_[0].keyp = keyp;
908
- }
909
- };
910
-
911
- template <typename ValueType, typename Comparator>
912
- class LoserTreePointerUnguarded</* Stable == */ true, ValueType, Comparator>
913
- : public LoserTreePointerUnguardedBase<ValueType, Comparator>
914
- {
915
- public:
916
- using Super = LoserTreePointerUnguardedBase<ValueType, Comparator>;
917
- using Source = typename Super::Source;
918
-
919
- protected:
920
- using Super::cmp_;
921
- using Super::k_;
922
- using Super::losers_;
923
-
924
- public:
925
- LoserTreePointerUnguarded(const Source& k, const ValueType& sentinel,
926
- const Comparator& cmp = Comparator())
927
- : Super(k, sentinel, cmp)
928
- {
929
- }
930
-
931
- void delete_min_insert(const ValueType* keyp, bool sup)
932
- {
933
- using std::swap;
934
- assert(sup == (keyp == nullptr));
935
- unused(sup);
936
-
937
- Source source = losers_[0].source;
938
- for (Source pos = (k_ + source) / 2; pos > 0; pos /= 2)
939
- {
940
- // the smaller one gets promoted, ties are broken by source
941
- if (cmp_(*losers_[pos].keyp, *keyp) ||
942
- (!cmp_(*keyp, *losers_[pos].keyp) &&
943
- losers_[pos].source < source))
944
- {
945
- // the other one is smaller
946
- swap(losers_[pos].source, source);
947
- swap(losers_[pos].keyp, keyp);
948
- }
949
- }
950
-
951
- losers_[0].source = source;
952
- losers_[0].keyp = keyp;
953
- }
954
- };
955
-
956
- /******************************************************************************/
957
- // LoserTreeSwitch selects loser tree by size of value type
958
-
959
- template <bool Stable, typename ValueType, typename Comparator,
960
- typename Enable = void>
961
- class LoserTreeSwitch
962
- {
963
- public:
964
- using Type = LoserTreePointer<Stable, ValueType, Comparator>;
965
- };
966
-
967
- template <bool Stable, typename ValueType, typename Comparator>
968
- class LoserTreeSwitch<
969
- Stable, ValueType, Comparator,
970
- typename std::enable_if<sizeof(ValueType) <= 2 * sizeof(size_t)>::type>
971
- {
972
- public:
973
- using Type = LoserTreeCopy<Stable, ValueType, Comparator>;
974
- };
975
-
976
- template <bool Stable, typename ValueType, typename Comparator>
977
- using LoserTree = typename LoserTreeSwitch<Stable, ValueType, Comparator>::Type;
978
-
979
- /*----------------------------------------------------------------------------*/
980
-
981
- template <bool Stable, typename ValueType, typename Comparator,
982
- typename Enable = void>
983
- class LoserTreeUnguardedSwitch
984
- {
985
- public:
986
- using Type = LoserTreePointerUnguarded<Stable, ValueType, Comparator>;
987
- };
988
-
989
- template <bool Stable, typename ValueType, typename Comparator>
990
- class LoserTreeUnguardedSwitch<
991
- Stable, ValueType, Comparator,
992
- typename std::enable_if<sizeof(ValueType) <= 2 * sizeof(size_t)>::type>
993
- {
994
- public:
995
- using Type = LoserTreeCopyUnguarded<Stable, ValueType, Comparator>;
996
- };
997
-
998
- template <bool Stable, typename ValueType, typename Comparator>
999
- using LoserTreeUnguarded =
1000
- typename LoserTreeUnguardedSwitch<Stable, ValueType, Comparator>::Type;
1001
-
1002
- //! \}
1003
- //! \}
1004
-
1005
- } // namespace tlx
1006
-
1007
- #endif // !TLX_CONTAINER_LOSER_TREE_HEADER
1008
-
1009
- /******************************************************************************/