@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,857 +0,0 @@
1
- /*
2
- * QuadNode.hpp
3
- *
4
- * Created on: 21.05.2014
5
- * Author: Moritz v. Looz
6
- */
7
-
8
- #ifndef NETWORKIT_GENERATORS_QUADTREE_QUAD_NODE_HPP_
9
- #define NETWORKIT_GENERATORS_QUADTREE_QUAD_NODE_HPP_
10
-
11
- #include <algorithm>
12
- #include <cassert>
13
- #include <functional>
14
- #include <vector>
15
-
16
- #include <networkit/auxiliary/Log.hpp>
17
- #include <networkit/auxiliary/Parallel.hpp>
18
- #include <networkit/geometric/HyperbolicSpace.hpp>
19
-
20
- using std::cos;
21
- using std::max;
22
- using std::min;
23
- using std::vector;
24
-
25
- namespace NetworKit {
26
-
27
- template <class T, bool poincare = true>
28
- class QuadNode final {
29
- friend class QuadTreeGTest;
30
-
31
- double leftAngle;
32
- double minR;
33
- double rightAngle;
34
- double maxR;
35
- Point2DWithIndex<double> a, b, c, d;
36
- unsigned capacity;
37
- static constexpr unsigned coarsenLimit = 4;
38
- count subTreeSize;
39
- std::vector<T> content;
40
- std::vector<Point2DWithIndex<double>> positions;
41
- std::vector<double> angles;
42
- std::vector<double> radii;
43
- bool isLeaf;
44
- bool splitTheoretical;
45
- double alpha;
46
- double balance;
47
- index ID;
48
- double lowerBoundR;
49
-
50
- public:
51
- std::vector<QuadNode> children;
52
-
53
- QuadNode() {
54
- // This should never be called.
55
- leftAngle = 0;
56
- rightAngle = 0;
57
- minR = 0;
58
- maxR = 0;
59
- capacity = 20;
60
- isLeaf = true;
61
- subTreeSize = 0;
62
- balance = 0.5;
63
- splitTheoretical = false;
64
- alpha = 1;
65
- lowerBoundR = maxR;
66
- ID = 0;
67
- }
68
-
69
- /**
70
- * Construct a QuadNode for polar coordinates.
71
- *
72
- * @param leftAngle Minimal angular coordinate of region, in radians from 0 to 2\pi
73
- * @param minR Minimal radial coordinate of region, between 0 and 1
74
- * @param rightAngle Maximal angular coordinate of region, in radians from 0 to 2\pi
75
- * @param maxR Maximal radial coordinate of region, between 0 and 1
76
- * @param capacity Number of points a leaf cell can store before splitting
77
- * @param minDiameter Minimal diameter of a quadtree node. If the node is already smaller, don't
78
- * split even if over capacity. Default is 0
79
- * @param splitTheoretical Whether to split in a theoretically optimal way or in a way to
80
- * decrease measured running times
81
- * @param alpha dispersion Parameter of the point distribution. Only has an effect if
82
- * theoretical split is true
83
- * @param diagnostics Count how many necessary and unnecessary comparisons happen in leaf cells?
84
- * Will cause race condition and false sharing in parallel use
85
- *
86
- */
87
- QuadNode(double leftAngle, double minR, double rightAngle, double maxR,
88
- unsigned capacity = 1000, bool splitTheoretical = false, double alpha = 1,
89
- double balance = 0.5) {
90
- if (balance <= 0 || balance >= 1)
91
- throw std::runtime_error("Quadtree balance parameter must be between 0 and 1.");
92
- if (poincare && maxR > 1)
93
- throw std::runtime_error(
94
- "The Poincare disk has a radius of 1, cannot create quadtree larger than that!");
95
- this->leftAngle = leftAngle;
96
- this->minR = minR;
97
- this->maxR = maxR;
98
- this->rightAngle = rightAngle;
99
- this->a = HyperbolicSpace::polarToCartesian(leftAngle, minR);
100
- this->b = HyperbolicSpace::polarToCartesian(rightAngle, minR);
101
- this->c = HyperbolicSpace::polarToCartesian(rightAngle, maxR);
102
- this->d = HyperbolicSpace::polarToCartesian(leftAngle, maxR);
103
- this->capacity = capacity;
104
- this->alpha = alpha;
105
- this->splitTheoretical = splitTheoretical;
106
- this->balance = balance;
107
- this->lowerBoundR = maxR;
108
- this->ID = 0;
109
- isLeaf = true;
110
- subTreeSize = 0;
111
- }
112
-
113
- void split() {
114
- assert(isLeaf);
115
- // heavy lifting: split up!
116
- double middleAngle = (rightAngle - leftAngle) / 2 + leftAngle;
117
- /**
118
- * we want to make sure the space is evenly divided to obtain a balanced tree
119
- * Simply halving the radius will cause a larger space for the outer Quadnode, resulting in
120
- * an unbalanced tree
121
- */
122
-
123
- double middleR;
124
-
125
- if (poincare) {
126
- if (splitTheoretical) {
127
- double hyperbolicOuter = HyperbolicSpace::EuclideanRadiusToHyperbolic(maxR);
128
- double hyperbolicInner = HyperbolicSpace::EuclideanRadiusToHyperbolic(minR);
129
- double hyperbolicMiddle =
130
- std::acosh((1 - balance) * std::cosh(alpha * hyperbolicOuter)
131
- + balance * std::cosh(alpha * hyperbolicInner))
132
- / alpha;
133
- middleR = HyperbolicSpace::hyperbolicRadiusToEuclidean(hyperbolicMiddle);
134
- } else {
135
- double nom = maxR - minR;
136
- double denom = std::pow((1 - maxR * maxR) / (1 - minR * minR), 0.5) + 1;
137
- middleR = nom / denom + minR;
138
- }
139
- } else {
140
- middleR = std::acosh((1 - balance) * std::cosh(alpha * maxR)
141
- + balance * std::cosh(alpha * minR))
142
- / alpha;
143
- }
144
-
145
- assert(middleR < maxR);
146
- assert(middleR > minR);
147
-
148
- QuadNode<index, poincare> southwest(leftAngle, minR, middleAngle, middleR, capacity,
149
- splitTheoretical, alpha, balance);
150
- QuadNode<index, poincare> southeast(middleAngle, minR, rightAngle, middleR, capacity,
151
- splitTheoretical, alpha, balance);
152
- QuadNode<index, poincare> northwest(leftAngle, middleR, middleAngle, maxR, capacity,
153
- splitTheoretical, alpha, balance);
154
- QuadNode<index, poincare> northeast(middleAngle, middleR, rightAngle, maxR, capacity,
155
- splitTheoretical, alpha, balance);
156
- children = {southwest, southeast, northwest, northeast};
157
- isLeaf = false;
158
- }
159
-
160
- /**
161
- * Add a point at polar coordinates (angle, R) with content input. May split node if capacity is
162
- * full
163
- *
164
- * @param input arbitrary content, in our case an index
165
- * @param angle angular coordinate of point, between 0 and 2 pi.
166
- * @param R radial coordinate of point, between 0 and 1.
167
- */
168
- void addContent(T input, double angle, double R) {
169
- assert(this->responsible(angle, R));
170
- if (lowerBoundR > R)
171
- lowerBoundR = R;
172
- if (isLeaf) {
173
- if (content.size() + 1 < capacity) {
174
- content.push_back(input);
175
- angles.push_back(angle);
176
- radii.push_back(R);
177
- Point2DWithIndex<double> pos = HyperbolicSpace::polarToCartesian(angle, R);
178
- positions.push_back(pos);
179
- } else {
180
-
181
- split();
182
-
183
- for (index i = 0; i < content.size(); i++) {
184
- this->addContent(content[i], angles[i], radii[i]);
185
- }
186
- assert(subTreeSize == content.size()); // we have added everything twice
187
- subTreeSize = content.size();
188
- content.clear();
189
- angles.clear();
190
- radii.clear();
191
- positions.clear();
192
- this->addContent(input, angle, R);
193
- }
194
- } else {
195
- assert(!children.empty());
196
- for (index i = 0; i < children.size(); i++) {
197
- if (children[i].responsible(angle, R)) {
198
- children[i].addContent(input, angle, R);
199
- break;
200
- }
201
- }
202
- subTreeSize++;
203
- }
204
- }
205
-
206
- /**
207
- * Remove content at polar coordinates (angle, R). May cause coarsening of the quadtree
208
- *
209
- * @param input Content to be removed
210
- * @param angle Angular coordinate
211
- * @param R Radial coordinate
212
- *
213
- * @return True if content was found and removed, false otherwise
214
- */
215
- bool removeContent(T input, double angle, double R) {
216
- if (!responsible(angle, R))
217
- return false;
218
- if (isLeaf) {
219
- index i = 0;
220
- for (; i < content.size(); i++) {
221
- if (content[i] == input)
222
- break;
223
- }
224
- if (i < content.size()) {
225
- assert(angles[i] == angle);
226
- assert(radii[i] == R);
227
- // remove element
228
- content.erase(content.begin() + i);
229
- positions.erase(positions.begin() + i);
230
- angles.erase(angles.begin() + i);
231
- radii.erase(radii.begin() + i);
232
- return true;
233
- } else {
234
- return false;
235
- }
236
- } else {
237
- bool removed = false;
238
- bool allLeaves = true;
239
- assert(!children.empty());
240
- for (index i = 0; i < children.size(); i++) {
241
- if (!children[i].isLeaf)
242
- allLeaves = false;
243
- if (children[i].removeContent(input, angle, R)) {
244
- assert(!removed);
245
- removed = true;
246
- }
247
- }
248
- if (removed)
249
- subTreeSize--;
250
- // coarsen?
251
- if (removed && allLeaves && size() < coarsenLimit) {
252
- // coarsen!!
253
- // why not assert empty containers and then insert directly?
254
- vector<T> allContent;
255
- vector<Point2DWithIndex<double>> allPositions;
256
- vector<double> allAngles;
257
- vector<double> allRadii;
258
- for (index i = 0; i < children.size(); i++) {
259
- allContent.insert(allContent.end(), children[i].content.begin(),
260
- children[i].content.end());
261
- allPositions.insert(allPositions.end(), children[i].positions.begin(),
262
- children[i].positions.end());
263
- allAngles.insert(allAngles.end(), children[i].angles.begin(),
264
- children[i].angles.end());
265
- allRadii.insert(allRadii.end(), children[i].radii.begin(),
266
- children[i].radii.end());
267
- }
268
- assert(subTreeSize == allContent.size());
269
- assert(subTreeSize == allPositions.size());
270
- assert(subTreeSize == allAngles.size());
271
- assert(subTreeSize == allRadii.size());
272
- children.clear();
273
- content.swap(allContent);
274
- positions.swap(allPositions);
275
- angles.swap(allAngles);
276
- radii.swap(allRadii);
277
- isLeaf = true;
278
- }
279
-
280
- return removed;
281
- }
282
- }
283
-
284
- /**
285
- * Check whether the region managed by this node lies outside of an Euclidean circle.
286
- *
287
- * @param query Center of the Euclidean query circle, given in Cartesian coordinates
288
- * @param radius Radius of the Euclidean query circle
289
- *
290
- * @return True if the region managed by this node lies completely outside of the circle
291
- */
292
- bool outOfReach(Point2DWithIndex<double> query, double radius) const {
293
- double phi, r;
294
- HyperbolicSpace::cartesianToPolar(query, phi, r);
295
- if (responsible(phi, r))
296
- return false;
297
-
298
- // if using native coordinates, call distance calculation
299
- if (!poincare)
300
- return hyperbolicDistances(phi, r).first > radius;
301
-
302
- // get four edge points
303
- double topDistance, bottomDistance, leftDistance, rightDistance;
304
-
305
- if (phi < leftAngle || phi > rightAngle) {
306
- topDistance = std::min(c.distance(query), d.distance(query));
307
- } else {
308
- topDistance = std::abs(r - maxR);
309
- }
310
- if (topDistance <= radius)
311
- return false;
312
- if (phi < leftAngle || phi > rightAngle) {
313
- bottomDistance = std::min(a.distance(query), b.distance(query));
314
- } else {
315
- bottomDistance = std::abs(r - minR);
316
- }
317
- if (bottomDistance <= radius)
318
- return false;
319
-
320
- double minDistanceR = r * std::cos(std::abs(phi - leftAngle));
321
- if (minDistanceR > minR && minDistanceR < maxR) {
322
- leftDistance = query.distance(HyperbolicSpace::polarToCartesian(phi, minDistanceR));
323
- } else {
324
- leftDistance = std::min(a.distance(query), d.distance(query));
325
- }
326
- if (leftDistance <= radius)
327
- return false;
328
-
329
- minDistanceR = r * std::cos(std::abs(phi - rightAngle));
330
- if (minDistanceR > minR && minDistanceR < maxR) {
331
- rightDistance = query.distance(HyperbolicSpace::polarToCartesian(phi, minDistanceR));
332
- } else {
333
- rightDistance = std::min(b.distance(query), c.distance(query));
334
- }
335
- if (rightDistance <= radius)
336
- return false;
337
- return true;
338
- }
339
-
340
- /**
341
- * Check whether the region managed by this node lies outside of an Euclidean circle.
342
- * Functionality is the same as in the method above, but it takes polar coordinates instead of
343
- * Cartesian ones
344
- *
345
- * @param angle_c Angular coordinate of the Euclidean query circle's center
346
- * @param r_c Radial coordinate of the Euclidean query circle's center
347
- * @param radius Radius of the Euclidean query circle
348
- *
349
- * @return True if the region managed by this node lies completely outside of the circle
350
- */
351
- bool outOfReach(double angle_c, double r_c, double radius) const {
352
- if (responsible(angle_c, r_c))
353
- return false;
354
- Point2DWithIndex<double> query = HyperbolicSpace::polarToCartesian(angle_c, r_c);
355
- return outOfReach(query, radius);
356
- }
357
-
358
- /**
359
- * @param phi Angular coordinate of query point
360
- * @param r_h radial coordinate of query point in poincare disk
361
- */
362
- std::pair<double, double> hyperbolicDistances(double phi, double r) const {
363
- double minRHyper, maxRHyper, r_h;
364
- if (poincare) {
365
- minRHyper = HyperbolicSpace::EuclideanRadiusToHyperbolic(this->minR);
366
- maxRHyper = HyperbolicSpace::EuclideanRadiusToHyperbolic(this->maxR);
367
- r_h = HyperbolicSpace::EuclideanRadiusToHyperbolic(r);
368
- } else {
369
- minRHyper = this->minR;
370
- maxRHyper = this->maxR;
371
- r_h = r;
372
- }
373
-
374
- double coshr = std::cosh(r_h);
375
- double sinhr = std::sinh(r_h);
376
- double coshMinR = std::cosh(minRHyper);
377
- double coshMaxR = std::cosh(maxRHyper);
378
- double sinhMinR = std::sinh(minRHyper);
379
- double sinhMaxR = std::sinh(maxRHyper);
380
- double cosDiffLeft = std::cos(phi - leftAngle);
381
- double cosDiffRight = std::cos(phi - rightAngle);
382
-
383
- /**
384
- * If the query point is not within the quadnode, the distance minimum is on the border.
385
- * Need to check whether extremum is between corners:
386
- */
387
-
388
- double coshMinDistance, coshMaxDistance;
389
-
390
- // Left border
391
- double lowerLeftDistance = coshMinR * coshr - sinhMinR * sinhr * cosDiffLeft;
392
- double upperLeftDistance = coshMaxR * coshr - sinhMaxR * sinhr * cosDiffLeft;
393
- if (responsible(phi, r))
394
- coshMinDistance = 1; // strictly speaking, this is wrong
395
- else
396
- coshMinDistance = std::min(lowerLeftDistance, upperLeftDistance);
397
-
398
- coshMaxDistance = std::max(lowerLeftDistance, upperLeftDistance);
399
- // double a = std::cosh(r_h);
400
- double b = sinhr * cosDiffLeft;
401
- double extremum = std::log((coshr + b) / (coshr - b)) / 2;
402
- if (extremum < maxRHyper && extremum >= minRHyper) {
403
- double extremeDistance =
404
- std::cosh(extremum) * coshr - std::sinh(extremum) * sinhr * cosDiffLeft;
405
- coshMinDistance = std::min(coshMinDistance, extremeDistance);
406
- coshMaxDistance = std::max(coshMaxDistance, extremeDistance);
407
- }
408
- /**
409
- * cosh is a function from [0,\infty) to [1, \infty)
410
- * Variables thus need
411
- */
412
- assert(coshMaxDistance >= 1);
413
- assert(coshMinDistance >= 1);
414
-
415
- // Right border
416
- double lowerRightDistance = coshMinR * coshr - sinhMinR * sinhr * cosDiffRight;
417
- double upperRightDistance = coshMaxR * coshr - sinhMaxR * sinhr * cosDiffRight;
418
- coshMinDistance = std::min(coshMinDistance, lowerRightDistance);
419
- coshMinDistance = std::min(coshMinDistance, upperRightDistance);
420
- coshMaxDistance = std::max(coshMaxDistance, lowerRightDistance);
421
- coshMaxDistance = std::max(coshMaxDistance, upperRightDistance);
422
-
423
- b = sinhr * cosDiffRight;
424
- extremum = std::log((coshr + b) / (coshr - b)) / 2;
425
- if (extremum < maxRHyper && extremum >= minRHyper) {
426
- double extremeDistance =
427
- std::cosh(extremum) * coshr - std::sinh(extremum) * sinhr * cosDiffRight;
428
- coshMinDistance = std::min(coshMinDistance, extremeDistance);
429
- coshMaxDistance = std::max(coshMaxDistance, extremeDistance);
430
- }
431
-
432
- assert(coshMaxDistance >= 1);
433
- assert(coshMinDistance >= 1);
434
-
435
- // upper and lower borders
436
- if (phi >= leftAngle && phi < rightAngle) {
437
- double lower = std::cosh(std::abs(r_h - minRHyper));
438
- double upper = std::cosh(std::abs(r_h - maxRHyper));
439
- coshMinDistance = std::min(coshMinDistance, lower);
440
- coshMinDistance = std::min(coshMinDistance, upper);
441
- coshMaxDistance = std::max(coshMaxDistance, upper);
442
- coshMaxDistance = std::max(coshMaxDistance, lower);
443
- }
444
-
445
- assert(coshMaxDistance >= 1);
446
- assert(coshMinDistance >= 1);
447
-
448
- // again with mirrored phi
449
- double mirrorphi;
450
- if (phi >= PI)
451
- mirrorphi = phi - PI;
452
- else
453
- mirrorphi = phi + PI;
454
- if (mirrorphi >= leftAngle && mirrorphi < rightAngle) {
455
- double lower = coshMinR * coshr + sinhMinR * sinhr;
456
- double upper = coshMaxR * coshr + sinhMaxR * sinhr;
457
- coshMinDistance = std::min(coshMinDistance, lower);
458
- coshMinDistance = std::min(coshMinDistance, upper);
459
- coshMaxDistance = std::max(coshMaxDistance, upper);
460
- coshMaxDistance = std::max(coshMaxDistance, lower);
461
- }
462
-
463
- assert(coshMaxDistance >= 1);
464
- assert(coshMinDistance >= 1);
465
-
466
- double minDistance, maxDistance;
467
- minDistance = std::acosh(coshMinDistance);
468
- maxDistance = std::acosh(coshMaxDistance);
469
- assert(maxDistance >= 0);
470
- assert(minDistance >= 0);
471
- return std::pair<double, double>(minDistance, maxDistance);
472
- }
473
-
474
- /**
475
- * Does the point at (angle, r) fall inside the region managed by this QuadNode?
476
- *
477
- * @param angle Angular coordinate of input point
478
- * @param r Radial coordinate of input points
479
- *
480
- * @return True if input point lies within the region of this QuadNode
481
- */
482
- bool responsible(double angle, double r) const {
483
- return (angle >= leftAngle && angle < rightAngle && r >= minR && r < maxR);
484
- }
485
-
486
- /**
487
- * Get all Elements in this QuadNode or a descendant of it
488
- *
489
- * @return vector of content type T
490
- */
491
- std::vector<T> getElements() const {
492
- if (isLeaf) {
493
- return content;
494
- } else {
495
- assert(content.size() == 0);
496
- assert(angles.empty());
497
- assert(radii.empty());
498
- vector<T> result;
499
- for (index i = 0; i < children.size(); i++) {
500
- std::vector<T> subresult = children[i].getElements();
501
- result.insert(result.end(), subresult.begin(), subresult.end());
502
- }
503
- return result;
504
- }
505
- }
506
-
507
- void getCoordinates(vector<double> &anglesContainer, vector<double> &radiiContainer) const {
508
- assert(angles.size() == radii.size());
509
- if (isLeaf) {
510
- anglesContainer.insert(anglesContainer.end(), angles.begin(), angles.end());
511
- radiiContainer.insert(radiiContainer.end(), radii.begin(), radii.end());
512
- } else {
513
- assert(content.size() == 0);
514
- assert(angles.empty());
515
- assert(radii.empty());
516
- for (index i = 0; i < children.size(); i++) {
517
- children[i].getCoordinates(anglesContainer, radiiContainer);
518
- }
519
- }
520
- }
521
-
522
- /**
523
- * Don't use this!
524
- * Code is still in here for a unit test.
525
- *
526
- * Get copy of the leaf cell responsible for a point at (angle, r).
527
- * Expensive because it copies the whole subtree, causes assertion failure if called with the
528
- * wrong arguments
529
- *
530
- * @param angle Angular coordinate of point
531
- * @param r Radial coordinate of point
532
- *
533
- * @return Copy of leaf cell containing point, or dummy cell not responsible for point
534
- *
535
- */
536
- QuadNode<T> &getAppropriateLeaf(double angle, double r) {
537
- assert(this->responsible(angle, r));
538
- if (isLeaf)
539
- return *this; // will this return the reference to the subtree itself or to a copy?
540
- else {
541
- for (index i = 0; i < children.size(); i++) {
542
- if (children[i].responsible(angle, r))
543
- return children[i].getAppropriateLeaf(angle, r);
544
- }
545
- throw std::runtime_error("No responsible child found.");
546
- }
547
- }
548
-
549
- /**
550
- * Main query method, get points lying in a Euclidean circle around the center point.
551
- * Optional limits can be given to get a different result or to reduce unnecessary comparisons
552
- *
553
- * Elements are pushed onto a vector which is a required argument. This is done to reduce
554
- * copying
555
- *
556
- * Safe to call in parallel if diagnostics are disabled
557
- *
558
- * @param center Center of the query circle
559
- * @param radius Radius of the query circle
560
- * @param result Reference to the vector where the results will be stored
561
- * @param minAngle Optional value for the minimum angular coordinate of the query region
562
- * @param maxAngle Optional value for the maximum angular coordinate of the query region
563
- * @param lowR Optional value for the minimum radial coordinate of the query region
564
- * @param highR Optional value for the maximum radial coordinate of the query region
565
- */
566
- void getElementsInEuclideanCircle(Point2DWithIndex<double> center, double radius,
567
- vector<T> &result, double minAngle = 0,
568
- double maxAngle = 2 * PI, double lowR = 0,
569
- double highR = 1) const {
570
- if (!poincare)
571
- throw std::runtime_error(
572
- "Euclidean query circles not yet implemented for native hyperbolic coordinates.");
573
- if (minAngle >= rightAngle || maxAngle <= leftAngle || lowR >= maxR || highR < lowerBoundR)
574
- return;
575
- if (outOfReach(center, radius)) {
576
- return;
577
- }
578
-
579
- if (isLeaf) {
580
- const double rsq = radius * radius;
581
- const double queryX = center[0];
582
- const double queryY = center[1];
583
- const count cSize = content.size();
584
-
585
- for (index i = 0; i < cSize; i++) {
586
- const double deltaX = positions[i].getX() - queryX;
587
- const double deltaY = positions[i].getY() - queryY;
588
- if (deltaX * deltaX + deltaY * deltaY < rsq) {
589
- result.push_back(content[i]);
590
- }
591
- }
592
- } else {
593
- for (index i = 0; i < children.size(); i++) {
594
- children[i].getElementsInEuclideanCircle(center, radius, result, minAngle, maxAngle,
595
- lowR, highR);
596
- }
597
- }
598
- }
599
-
600
- count getElementsProbabilistically(Point2DWithIndex<double> euQuery,
601
- std::function<double(double)> prob, bool suppressLeft,
602
- vector<T> &result) const {
603
- double phi_q, r_q;
604
- HyperbolicSpace::cartesianToPolar(euQuery, phi_q, r_q);
605
- if (suppressLeft && phi_q > rightAngle)
606
- return 0;
607
- TRACE("Getting hyperbolic distances");
608
- auto distancePair = hyperbolicDistances(phi_q, r_q);
609
- double probUB = prob(distancePair.first);
610
- double probLB = prob(distancePair.second);
611
- #ifndef NDEBUG
612
- assert(probLB <= probUB);
613
- #else
614
- ((void)(probLB));
615
- #endif // NDEBUG
616
- if (probUB > 0.5)
617
- // if we are going to take every second element anyway, no use in calculating expensive
618
- // jumps
619
- probUB = 1;
620
- if (probUB == 0)
621
- return 0;
622
- // TODO: return whole if probLB == 1
623
- double probdenom = std::log(1 - probUB);
624
- if (probdenom == 0) {
625
- DEBUG(probUB, " not zero, but too small too process. Ignoring.");
626
- return 0;
627
- }
628
- TRACE("probUB: ", probUB, ", probdenom: ", probdenom);
629
-
630
- count expectedNeighbours = probUB * size();
631
- count candidatesTested = 0;
632
-
633
- if (isLeaf) {
634
- const count lsize = content.size();
635
- TRACE("Leaf of size ", lsize);
636
- for (index i = 0; i < lsize; i++) {
637
- // jump!
638
- if (probUB < 1) {
639
- double random = Aux::Random::real();
640
- double delta = std::log(random) / probdenom;
641
- assert(delta == delta);
642
- assert(delta >= 0);
643
- i += delta;
644
- if (i >= lsize)
645
- break;
646
- TRACE("Jumped with delta ", delta, " arrived at ", i);
647
- }
648
-
649
- // see where we've arrived
650
- candidatesTested++;
651
- double distance;
652
- if (poincare) {
653
- distance = HyperbolicSpace::poincareMetric(positions[i], euQuery);
654
- } else {
655
- distance = HyperbolicSpace::nativeDistance(angles[i], radii[i], phi_q, r_q);
656
- }
657
- assert(distance >= distancePair.first);
658
-
659
- double q = prob(distance);
660
- // since the candidate was selected by the jumping process, we have to adjust the
661
- // probabilities
662
- q = q / probUB;
663
-
664
- assert(q <= 1);
665
- assert(q >= 0);
666
-
667
- // accept?
668
- double acc = Aux::Random::real();
669
- if (acc < q) {
670
- TRACE("Accepted node ", i, " with probability ", q, ".");
671
- result.push_back(content[i]);
672
- }
673
- }
674
- } else {
675
- if (expectedNeighbours
676
- < 1) { // select candidates directly instead of calling recursively
677
- TRACE("probUB = ", probUB, ", switching to direct candidate selection.");
678
- assert(probUB < 1);
679
- const count stsize = size();
680
- for (index i = 0; i < stsize; i++) {
681
- double delta = std::log(Aux::Random::real()) / probdenom;
682
- assert(delta >= 0);
683
- i += delta;
684
- TRACE("Jumped with delta ", delta, " arrived at ", i,
685
- ". Calling maybeGetKthElement.");
686
- if (i < size())
687
- // this could be optimized. As of now, the offset is subtracted separately
688
- // for each point
689
- maybeGetKthElement(probUB, euQuery, prob, i, result);
690
-
691
- else
692
- break;
693
- candidatesTested++;
694
- }
695
- } else { // carry on as normal
696
- for (index i = 0; i < children.size(); i++) {
697
- TRACE("Recursively calling child ", i);
698
- candidatesTested += children[i].getElementsProbabilistically(
699
- euQuery, prob, suppressLeft, result);
700
- }
701
- }
702
- }
703
- return candidatesTested;
704
- }
705
-
706
- void maybeGetKthElement(double upperBound, Point2DWithIndex<double> euQuery,
707
- std::function<double(double)> prob, index k,
708
- vector<T> &circleDenizens) const {
709
- TRACE("Maybe get element ", k, " with upper Bound ", upperBound);
710
- assert(k < size());
711
- if (isLeaf) {
712
- double distance;
713
- if (poincare) {
714
- distance = HyperbolicSpace::poincareMetric(positions[k], euQuery);
715
- } else {
716
- double phi_q, r_q;
717
- HyperbolicSpace::cartesianToPolar(euQuery, phi_q, r_q);
718
- distance = HyperbolicSpace::nativeDistance(angles[k], radii[k], phi_q, r_q);
719
- }
720
- double acceptance = prob(distance) / upperBound;
721
- TRACE("Is leaf, accept with ", acceptance);
722
- if (Aux::Random::real() < acceptance)
723
- circleDenizens.push_back(content[k]);
724
- } else {
725
- TRACE("Call recursively.");
726
- index offset = 0;
727
- for (index i = 0; i < children.size(); i++) {
728
- count childsize = children[i].size();
729
- if (k - offset < childsize) {
730
- children[i].maybeGetKthElement(upperBound, euQuery, prob, k - offset,
731
- circleDenizens);
732
- break;
733
- }
734
- offset += childsize;
735
- }
736
- }
737
- }
738
-
739
- /**
740
- * Shrink all vectors in this subtree to fit the content.
741
- * Call after quadtree construction is complete, causes better memory usage and cache efficiency
742
- */
743
- void trim() {
744
- content.shrink_to_fit();
745
- positions.shrink_to_fit();
746
- angles.shrink_to_fit();
747
- radii.shrink_to_fit();
748
- if (!isLeaf) {
749
- for (index i = 0; i < children.size(); i++) {
750
- children[i].trim();
751
- }
752
- }
753
- }
754
-
755
- /**
756
- * Number of points lying in the region managed by this QuadNode
757
- */
758
- count size() const { return isLeaf ? content.size() : subTreeSize; }
759
-
760
- void recount() {
761
- subTreeSize = 0;
762
- for (index i = 0; i < children.size(); i++) {
763
- children[i].recount();
764
- subTreeSize += children[i].size();
765
- }
766
- }
767
-
768
- /**
769
- * Height of subtree hanging from this QuadNode
770
- */
771
- count height() const {
772
- count result = 1; // if leaf node, the children loop will not execute
773
- for (auto child : children)
774
- result = std::max(result, child.height() + 1);
775
- return result;
776
- }
777
-
778
- /**
779
- * Leaf cells in the subtree hanging from this QuadNode
780
- */
781
- count countLeaves() const {
782
- if (isLeaf)
783
- return 1;
784
- return std::accumulate(
785
- children.begin(), children.end(), count{0},
786
- [](count result, const auto &child) -> count { return result + child.countLeaves(); });
787
- }
788
-
789
- double getLeftAngle() const { return leftAngle; }
790
-
791
- double getRightAngle() const { return rightAngle; }
792
-
793
- double getMinR() const { return minR; }
794
-
795
- double getMaxR() const { return maxR; }
796
-
797
- index getID() const { return ID; }
798
-
799
- index indexSubtree(index nextID) {
800
- index result = nextID;
801
- assert(children.size() == 4 || children.size() == 0);
802
- for (index i = 0; i < children.size(); i++) {
803
- result = children[i].indexSubtree(result);
804
- }
805
- this->ID = result;
806
- return result + 1;
807
- }
808
-
809
- index getCellID(double phi, double r) const {
810
- if (!responsible(phi, r))
811
- return none;
812
- if (isLeaf)
813
- return getID();
814
- else {
815
- for (index i = 0; i < children.size(); i++) {
816
- index childresult = children[i].getCellID(phi, r);
817
- if (childresult != none)
818
- return childresult;
819
- }
820
- throw std::runtime_error(
821
- "No responsible child node found even though this node is responsible.");
822
- }
823
- }
824
-
825
- index getMaxIDInSubtree() const {
826
- if (isLeaf)
827
- return getID();
828
- else {
829
- index result = -1;
830
- for (int i = 0; i < 4; i++) {
831
- result = std::max(children[i].getMaxIDInSubtree(), result);
832
- }
833
- return std::max(result, getID());
834
- }
835
- }
836
-
837
- count reindex(count offset) {
838
- if (isLeaf) {
839
- #ifndef NETWORKIT_OMP2
840
- #pragma omp task
841
- #endif // NETWORKIT_OMP2
842
- {
843
- index p = offset;
844
- std::generate(content.begin(), content.end(), [&p]() { return p++; });
845
- }
846
- offset += size();
847
- } else {
848
- for (int i = 0; i < 4; i++) {
849
- offset = children[i].reindex(offset);
850
- }
851
- }
852
- return offset;
853
- }
854
- };
855
- } // namespace NetworKit
856
-
857
- #endif // NETWORKIT_GENERATORS_QUADTREE_QUAD_NODE_HPP_