@ladybugmem/icebug 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (624) hide show
  1. package/README.md +14 -0
  2. package/binding.gyp +54 -0
  3. package/build/Release/.deps/Release/icebug.node.d +1 -0
  4. package/build/Release/.deps/Release/obj.target/icebug/src/addon.o.d +291 -0
  5. package/build/Release/icebug.node +0 -0
  6. package/build/Release/obj.target/icebug/src/addon.o +0 -0
  7. package/lib/index.d.ts +361 -0
  8. package/lib/index.js +102 -0
  9. package/package.json +42 -0
  10. package/src/addon.cpp +1253 -0
  11. package/vendor/include/networkit/GlobalState.hpp +86 -0
  12. package/vendor/include/networkit/Globals.hpp +41 -0
  13. package/vendor/include/networkit/algebraic/AlgebraicGlobals.hpp +27 -0
  14. package/vendor/include/networkit/algebraic/CSRGeneralMatrix.hpp +1292 -0
  15. package/vendor/include/networkit/algebraic/CSRMatrix.hpp +11 -0
  16. package/vendor/include/networkit/algebraic/DenseMatrix.hpp +537 -0
  17. package/vendor/include/networkit/algebraic/DynamicMatrix.hpp +514 -0
  18. package/vendor/include/networkit/algebraic/GraphBLAS.hpp +323 -0
  19. package/vendor/include/networkit/algebraic/MatrixTools.hpp +156 -0
  20. package/vendor/include/networkit/algebraic/Semirings.hpp +171 -0
  21. package/vendor/include/networkit/algebraic/SparseAccumulator.hpp +111 -0
  22. package/vendor/include/networkit/algebraic/Vector.hpp +371 -0
  23. package/vendor/include/networkit/algebraic/algorithms/AlgebraicBFS.hpp +72 -0
  24. package/vendor/include/networkit/algebraic/algorithms/AlgebraicBellmanFord.hpp +88 -0
  25. package/vendor/include/networkit/algebraic/algorithms/AlgebraicMatchingCoarsening.hpp +96 -0
  26. package/vendor/include/networkit/algebraic/algorithms/AlgebraicPageRank.hpp +145 -0
  27. package/vendor/include/networkit/algebraic/algorithms/AlgebraicSpanningEdgeCentrality.hpp +122 -0
  28. package/vendor/include/networkit/algebraic/algorithms/AlgebraicTriangleCounting.hpp +76 -0
  29. package/vendor/include/networkit/auxiliary/AlignedAllocator.hpp +113 -0
  30. package/vendor/include/networkit/auxiliary/ArrayTools.hpp +85 -0
  31. package/vendor/include/networkit/auxiliary/BloomFilter.hpp +70 -0
  32. package/vendor/include/networkit/auxiliary/BucketPQ.hpp +142 -0
  33. package/vendor/include/networkit/auxiliary/Enforce.hpp +117 -0
  34. package/vendor/include/networkit/auxiliary/FunctionTraits.hpp +74 -0
  35. package/vendor/include/networkit/auxiliary/HashUtils.hpp +28 -0
  36. package/vendor/include/networkit/auxiliary/IncrementalUniformRandomSelector.hpp +52 -0
  37. package/vendor/include/networkit/auxiliary/Log.hpp +119 -0
  38. package/vendor/include/networkit/auxiliary/MissingMath.hpp +48 -0
  39. package/vendor/include/networkit/auxiliary/Multiprecision.hpp +17 -0
  40. package/vendor/include/networkit/auxiliary/NumberParsing.hpp +307 -0
  41. package/vendor/include/networkit/auxiliary/NumericTools.hpp +57 -0
  42. package/vendor/include/networkit/auxiliary/Parallel.hpp +56 -0
  43. package/vendor/include/networkit/auxiliary/Parallelism.hpp +33 -0
  44. package/vendor/include/networkit/auxiliary/PrioQueue.hpp +252 -0
  45. package/vendor/include/networkit/auxiliary/Random.hpp +122 -0
  46. package/vendor/include/networkit/auxiliary/SetIntersector.hpp +72 -0
  47. package/vendor/include/networkit/auxiliary/SignalHandling.hpp +39 -0
  48. package/vendor/include/networkit/auxiliary/SortedList.hpp +128 -0
  49. package/vendor/include/networkit/auxiliary/SparseVector.hpp +215 -0
  50. package/vendor/include/networkit/auxiliary/SpinLock.hpp +23 -0
  51. package/vendor/include/networkit/auxiliary/StringBuilder.hpp +322 -0
  52. package/vendor/include/networkit/auxiliary/StringTools.hpp +76 -0
  53. package/vendor/include/networkit/auxiliary/TemplateUtils.hpp +76 -0
  54. package/vendor/include/networkit/auxiliary/Timer.hpp +145 -0
  55. package/vendor/include/networkit/auxiliary/VectorComparator.hpp +32 -0
  56. package/vendor/include/networkit/base/Algorithm.hpp +41 -0
  57. package/vendor/include/networkit/base/DynAlgorithm.hpp +31 -0
  58. package/vendor/include/networkit/centrality/ApproxBetweenness.hpp +62 -0
  59. package/vendor/include/networkit/centrality/ApproxCloseness.hpp +136 -0
  60. package/vendor/include/networkit/centrality/ApproxElectricalCloseness.hpp +156 -0
  61. package/vendor/include/networkit/centrality/ApproxGroupBetweenness.hpp +124 -0
  62. package/vendor/include/networkit/centrality/ApproxSpanningEdge.hpp +84 -0
  63. package/vendor/include/networkit/centrality/Betweenness.hpp +47 -0
  64. package/vendor/include/networkit/centrality/Centrality.hpp +98 -0
  65. package/vendor/include/networkit/centrality/Closeness.hpp +107 -0
  66. package/vendor/include/networkit/centrality/ComplexPaths.hpp +113 -0
  67. package/vendor/include/networkit/centrality/CoreDecomposition.hpp +161 -0
  68. package/vendor/include/networkit/centrality/DegreeCentrality.hpp +55 -0
  69. package/vendor/include/networkit/centrality/DynApproxBetweenness.hpp +95 -0
  70. package/vendor/include/networkit/centrality/DynBetweenness.hpp +99 -0
  71. package/vendor/include/networkit/centrality/DynBetweennessOneNode.hpp +98 -0
  72. package/vendor/include/networkit/centrality/DynKatzCentrality.hpp +115 -0
  73. package/vendor/include/networkit/centrality/DynTopHarmonicCloseness.hpp +223 -0
  74. package/vendor/include/networkit/centrality/EigenvectorCentrality.hpp +41 -0
  75. package/vendor/include/networkit/centrality/EstimateBetweenness.hpp +51 -0
  76. package/vendor/include/networkit/centrality/ForestCentrality.hpp +112 -0
  77. package/vendor/include/networkit/centrality/GedWalk.hpp +225 -0
  78. package/vendor/include/networkit/centrality/GroupCloseness.hpp +115 -0
  79. package/vendor/include/networkit/centrality/GroupClosenessGrowShrink.hpp +78 -0
  80. package/vendor/include/networkit/centrality/GroupClosenessLocalSearch.hpp +77 -0
  81. package/vendor/include/networkit/centrality/GroupClosenessLocalSwaps.hpp +106 -0
  82. package/vendor/include/networkit/centrality/GroupDegree.hpp +155 -0
  83. package/vendor/include/networkit/centrality/GroupHarmonicCloseness.hpp +83 -0
  84. package/vendor/include/networkit/centrality/HarmonicCloseness.hpp +48 -0
  85. package/vendor/include/networkit/centrality/KPathCentrality.hpp +52 -0
  86. package/vendor/include/networkit/centrality/KadabraBetweenness.hpp +242 -0
  87. package/vendor/include/networkit/centrality/KatzCentrality.hpp +62 -0
  88. package/vendor/include/networkit/centrality/LaplacianCentrality.hpp +44 -0
  89. package/vendor/include/networkit/centrality/LocalClusteringCoefficient.hpp +60 -0
  90. package/vendor/include/networkit/centrality/LocalPartitionCoverage.hpp +43 -0
  91. package/vendor/include/networkit/centrality/LocalSquareClusteringCoefficient.hpp +42 -0
  92. package/vendor/include/networkit/centrality/PageRank.hpp +101 -0
  93. package/vendor/include/networkit/centrality/PermanenceCentrality.hpp +48 -0
  94. package/vendor/include/networkit/centrality/Sfigality.hpp +45 -0
  95. package/vendor/include/networkit/centrality/SpanningEdgeCentrality.hpp +86 -0
  96. package/vendor/include/networkit/centrality/TopCloseness.hpp +136 -0
  97. package/vendor/include/networkit/centrality/TopHarmonicCloseness.hpp +151 -0
  98. package/vendor/include/networkit/clique/MaximalCliques.hpp +83 -0
  99. package/vendor/include/networkit/coarsening/ClusteringProjector.hpp +59 -0
  100. package/vendor/include/networkit/coarsening/CoarsenedGraphView.hpp +156 -0
  101. package/vendor/include/networkit/coarsening/GraphCoarsening.hpp +57 -0
  102. package/vendor/include/networkit/coarsening/MatchingCoarsening.hpp +43 -0
  103. package/vendor/include/networkit/coarsening/ParallelPartitionCoarsening.hpp +33 -0
  104. package/vendor/include/networkit/coarsening/ParallelPartitionCoarseningView.hpp +62 -0
  105. package/vendor/include/networkit/community/AdjustedRandMeasure.hpp +31 -0
  106. package/vendor/include/networkit/community/ClusteringGenerator.hpp +75 -0
  107. package/vendor/include/networkit/community/CommunityDetectionAlgorithm.hpp +58 -0
  108. package/vendor/include/networkit/community/Conductance.hpp +32 -0
  109. package/vendor/include/networkit/community/CoverF1Similarity.hpp +53 -0
  110. package/vendor/include/networkit/community/CoverHubDominance.hpp +38 -0
  111. package/vendor/include/networkit/community/Coverage.hpp +25 -0
  112. package/vendor/include/networkit/community/CutClustering.hpp +62 -0
  113. package/vendor/include/networkit/community/DissimilarityMeasure.hpp +31 -0
  114. package/vendor/include/networkit/community/DynamicNMIDistance.hpp +44 -0
  115. package/vendor/include/networkit/community/EdgeCut.hpp +24 -0
  116. package/vendor/include/networkit/community/GraphClusteringTools.hpp +103 -0
  117. package/vendor/include/networkit/community/GraphStructuralRandMeasure.hpp +28 -0
  118. package/vendor/include/networkit/community/HubDominance.hpp +46 -0
  119. package/vendor/include/networkit/community/IntrapartitionDensity.hpp +44 -0
  120. package/vendor/include/networkit/community/IsolatedInterpartitionConductance.hpp +40 -0
  121. package/vendor/include/networkit/community/IsolatedInterpartitionExpansion.hpp +40 -0
  122. package/vendor/include/networkit/community/JaccardMeasure.hpp +25 -0
  123. package/vendor/include/networkit/community/LFM.hpp +49 -0
  124. package/vendor/include/networkit/community/LPDegreeOrdered.hpp +48 -0
  125. package/vendor/include/networkit/community/LocalCommunityEvaluation.hpp +100 -0
  126. package/vendor/include/networkit/community/LocalCoverEvaluation.hpp +31 -0
  127. package/vendor/include/networkit/community/LocalPartitionEvaluation.hpp +31 -0
  128. package/vendor/include/networkit/community/LouvainMapEquation.hpp +135 -0
  129. package/vendor/include/networkit/community/Modularity.hpp +54 -0
  130. package/vendor/include/networkit/community/NMIDistance.hpp +28 -0
  131. package/vendor/include/networkit/community/NodeStructuralRandMeasure.hpp +27 -0
  132. package/vendor/include/networkit/community/OverlappingCommunityDetectionAlgorithm.hpp +51 -0
  133. package/vendor/include/networkit/community/OverlappingNMIDistance.hpp +175 -0
  134. package/vendor/include/networkit/community/PLM.hpp +89 -0
  135. package/vendor/include/networkit/community/PLP.hpp +83 -0
  136. package/vendor/include/networkit/community/ParallelAgglomerativeClusterer.hpp +37 -0
  137. package/vendor/include/networkit/community/ParallelLeiden.hpp +96 -0
  138. package/vendor/include/networkit/community/ParallelLeidenView.hpp +138 -0
  139. package/vendor/include/networkit/community/PartitionFragmentation.hpp +30 -0
  140. package/vendor/include/networkit/community/PartitionHubDominance.hpp +37 -0
  141. package/vendor/include/networkit/community/PartitionIntersection.hpp +25 -0
  142. package/vendor/include/networkit/community/QualityMeasure.hpp +27 -0
  143. package/vendor/include/networkit/community/SampledGraphStructuralRandMeasure.hpp +40 -0
  144. package/vendor/include/networkit/community/SampledNodeStructuralRandMeasure.hpp +40 -0
  145. package/vendor/include/networkit/community/StablePartitionNodes.hpp +48 -0
  146. package/vendor/include/networkit/components/BiconnectedComponents.hpp +116 -0
  147. package/vendor/include/networkit/components/ComponentDecomposition.hpp +72 -0
  148. package/vendor/include/networkit/components/ConnectedComponents.hpp +55 -0
  149. package/vendor/include/networkit/components/DynConnectedComponents.hpp +71 -0
  150. package/vendor/include/networkit/components/DynWeaklyConnectedComponents.hpp +73 -0
  151. package/vendor/include/networkit/components/ParallelConnectedComponents.hpp +44 -0
  152. package/vendor/include/networkit/components/RandomSpanningForest.hpp +36 -0
  153. package/vendor/include/networkit/components/StronglyConnectedComponents.hpp +50 -0
  154. package/vendor/include/networkit/components/WeaklyConnectedComponents.hpp +59 -0
  155. package/vendor/include/networkit/correlation/Assortativity.hpp +64 -0
  156. package/vendor/include/networkit/distance/APSP.hpp +70 -0
  157. package/vendor/include/networkit/distance/AStar.hpp +68 -0
  158. package/vendor/include/networkit/distance/AStarGeneral.hpp +110 -0
  159. package/vendor/include/networkit/distance/AdamicAdarDistance.hpp +52 -0
  160. package/vendor/include/networkit/distance/AffectedNodes.hpp +130 -0
  161. package/vendor/include/networkit/distance/AlgebraicDistance.hpp +63 -0
  162. package/vendor/include/networkit/distance/BFS.hpp +43 -0
  163. package/vendor/include/networkit/distance/BidirectionalBFS.hpp +51 -0
  164. package/vendor/include/networkit/distance/BidirectionalDijkstra.hpp +69 -0
  165. package/vendor/include/networkit/distance/CommuteTimeDistance.hpp +89 -0
  166. package/vendor/include/networkit/distance/Diameter.hpp +97 -0
  167. package/vendor/include/networkit/distance/Dijkstra.hpp +50 -0
  168. package/vendor/include/networkit/distance/DynAPSP.hpp +67 -0
  169. package/vendor/include/networkit/distance/DynBFS.hpp +56 -0
  170. package/vendor/include/networkit/distance/DynDijkstra.hpp +57 -0
  171. package/vendor/include/networkit/distance/DynPrunedLandmarkLabeling.hpp +67 -0
  172. package/vendor/include/networkit/distance/DynSSSP.hpp +87 -0
  173. package/vendor/include/networkit/distance/Eccentricity.hpp +32 -0
  174. package/vendor/include/networkit/distance/EffectiveDiameter.hpp +47 -0
  175. package/vendor/include/networkit/distance/EffectiveDiameterApproximation.hpp +57 -0
  176. package/vendor/include/networkit/distance/FloydWarshall.hpp +93 -0
  177. package/vendor/include/networkit/distance/GraphDistance.hpp +49 -0
  178. package/vendor/include/networkit/distance/HopPlotApproximation.hpp +62 -0
  179. package/vendor/include/networkit/distance/IncompleteDijkstra.hpp +66 -0
  180. package/vendor/include/networkit/distance/IncompleteSSSP.hpp +41 -0
  181. package/vendor/include/networkit/distance/JaccardDistance.hpp +57 -0
  182. package/vendor/include/networkit/distance/MultiTargetBFS.hpp +32 -0
  183. package/vendor/include/networkit/distance/MultiTargetDijkstra.hpp +40 -0
  184. package/vendor/include/networkit/distance/NeighborhoodFunction.hpp +47 -0
  185. package/vendor/include/networkit/distance/NeighborhoodFunctionApproximation.hpp +56 -0
  186. package/vendor/include/networkit/distance/NeighborhoodFunctionHeuristic.hpp +56 -0
  187. package/vendor/include/networkit/distance/NodeDistance.hpp +54 -0
  188. package/vendor/include/networkit/distance/PrunedLandmarkLabeling.hpp +76 -0
  189. package/vendor/include/networkit/distance/ReverseBFS.hpp +46 -0
  190. package/vendor/include/networkit/distance/SPSP.hpp +143 -0
  191. package/vendor/include/networkit/distance/SSSP.hpp +216 -0
  192. package/vendor/include/networkit/distance/STSP.hpp +193 -0
  193. package/vendor/include/networkit/distance/Volume.hpp +66 -0
  194. package/vendor/include/networkit/dynamics/DGSStreamParser.hpp +40 -0
  195. package/vendor/include/networkit/dynamics/DGSWriter.hpp +30 -0
  196. package/vendor/include/networkit/dynamics/GraphDifference.hpp +110 -0
  197. package/vendor/include/networkit/dynamics/GraphEvent.hpp +55 -0
  198. package/vendor/include/networkit/dynamics/GraphEventHandler.hpp +39 -0
  199. package/vendor/include/networkit/dynamics/GraphEventProxy.hpp +55 -0
  200. package/vendor/include/networkit/dynamics/GraphUpdater.hpp +38 -0
  201. package/vendor/include/networkit/edgescores/ChibaNishizekiQuadrangleEdgeScore.hpp +26 -0
  202. package/vendor/include/networkit/edgescores/ChibaNishizekiTriangleEdgeScore.hpp +33 -0
  203. package/vendor/include/networkit/edgescores/EdgeScore.hpp +50 -0
  204. package/vendor/include/networkit/edgescores/EdgeScoreAsWeight.hpp +33 -0
  205. package/vendor/include/networkit/edgescores/EdgeScoreBlender.hpp +33 -0
  206. package/vendor/include/networkit/edgescores/EdgeScoreLinearizer.hpp +32 -0
  207. package/vendor/include/networkit/edgescores/EdgeScoreNormalizer.hpp +35 -0
  208. package/vendor/include/networkit/edgescores/GeometricMeanScore.hpp +29 -0
  209. package/vendor/include/networkit/edgescores/PrefixJaccardScore.hpp +23 -0
  210. package/vendor/include/networkit/edgescores/TriangleEdgeScore.hpp +39 -0
  211. package/vendor/include/networkit/embedding/Node2Vec.hpp +83 -0
  212. package/vendor/include/networkit/flow/EdmondsKarp.hpp +112 -0
  213. package/vendor/include/networkit/generators/BarabasiAlbertGenerator.hpp +87 -0
  214. package/vendor/include/networkit/generators/ChungLuGenerator.hpp +46 -0
  215. package/vendor/include/networkit/generators/ChungLuGeneratorAlamEtAl.hpp +63 -0
  216. package/vendor/include/networkit/generators/ClusteredRandomGraphGenerator.hpp +56 -0
  217. package/vendor/include/networkit/generators/ConfigurationModel.hpp +36 -0
  218. package/vendor/include/networkit/generators/DorogovtsevMendesGenerator.hpp +33 -0
  219. package/vendor/include/networkit/generators/DynamicBarabasiAlbertGenerator.hpp +33 -0
  220. package/vendor/include/networkit/generators/DynamicDGSParser.hpp +51 -0
  221. package/vendor/include/networkit/generators/DynamicDorogovtsevMendesGenerator.hpp +34 -0
  222. package/vendor/include/networkit/generators/DynamicForestFireGenerator.hpp +55 -0
  223. package/vendor/include/networkit/generators/DynamicGraphGenerator.hpp +40 -0
  224. package/vendor/include/networkit/generators/DynamicGraphSource.hpp +79 -0
  225. package/vendor/include/networkit/generators/DynamicHyperbolicGenerator.hpp +143 -0
  226. package/vendor/include/networkit/generators/DynamicPathGenerator.hpp +26 -0
  227. package/vendor/include/networkit/generators/DynamicPubWebGenerator.hpp +54 -0
  228. package/vendor/include/networkit/generators/EdgeSwitchingMarkovChainGenerator.hpp +65 -0
  229. package/vendor/include/networkit/generators/ErdosRenyiEnumerator.hpp +318 -0
  230. package/vendor/include/networkit/generators/ErdosRenyiGenerator.hpp +56 -0
  231. package/vendor/include/networkit/generators/HavelHakimiGenerator.hpp +48 -0
  232. package/vendor/include/networkit/generators/HyperbolicGenerator.hpp +236 -0
  233. package/vendor/include/networkit/generators/LFRGenerator.hpp +175 -0
  234. package/vendor/include/networkit/generators/MocnikGenerator.hpp +147 -0
  235. package/vendor/include/networkit/generators/MocnikGeneratorBasic.hpp +58 -0
  236. package/vendor/include/networkit/generators/PowerlawDegreeSequence.hpp +128 -0
  237. package/vendor/include/networkit/generators/PubWebGenerator.hpp +94 -0
  238. package/vendor/include/networkit/generators/RegularRingLatticeGenerator.hpp +37 -0
  239. package/vendor/include/networkit/generators/RmatGenerator.hpp +67 -0
  240. package/vendor/include/networkit/generators/StaticDegreeSequenceGenerator.hpp +42 -0
  241. package/vendor/include/networkit/generators/StaticGraphGenerator.hpp +30 -0
  242. package/vendor/include/networkit/generators/StochasticBlockmodel.hpp +41 -0
  243. package/vendor/include/networkit/generators/WattsStrogatzGenerator.hpp +43 -0
  244. package/vendor/include/networkit/generators/quadtree/QuadNode.hpp +857 -0
  245. package/vendor/include/networkit/generators/quadtree/QuadNodeCartesianEuclid.hpp +587 -0
  246. package/vendor/include/networkit/generators/quadtree/QuadNodePolarEuclid.hpp +726 -0
  247. package/vendor/include/networkit/generators/quadtree/Quadtree.hpp +232 -0
  248. package/vendor/include/networkit/generators/quadtree/QuadtreeCartesianEuclid.hpp +149 -0
  249. package/vendor/include/networkit/generators/quadtree/QuadtreePolarEuclid.hpp +143 -0
  250. package/vendor/include/networkit/geometric/HyperbolicSpace.hpp +248 -0
  251. package/vendor/include/networkit/geometric/Point2DWithIndex.hpp +145 -0
  252. package/vendor/include/networkit/global/ClusteringCoefficient.hpp +42 -0
  253. package/vendor/include/networkit/global/GlobalClusteringCoefficient.hpp +24 -0
  254. package/vendor/include/networkit/graph/Attributes.hpp +568 -0
  255. package/vendor/include/networkit/graph/BFS.hpp +111 -0
  256. package/vendor/include/networkit/graph/DFS.hpp +71 -0
  257. package/vendor/include/networkit/graph/Dijkstra.hpp +83 -0
  258. package/vendor/include/networkit/graph/EdgeIterators.hpp +171 -0
  259. package/vendor/include/networkit/graph/Graph.hpp +2083 -0
  260. package/vendor/include/networkit/graph/GraphBuilder.hpp +289 -0
  261. package/vendor/include/networkit/graph/GraphR.hpp +133 -0
  262. package/vendor/include/networkit/graph/GraphTools.hpp +589 -0
  263. package/vendor/include/networkit/graph/GraphW.hpp +1236 -0
  264. package/vendor/include/networkit/graph/KruskalMSF.hpp +50 -0
  265. package/vendor/include/networkit/graph/NeighborIterators.hpp +163 -0
  266. package/vendor/include/networkit/graph/NodeIterators.hpp +127 -0
  267. package/vendor/include/networkit/graph/PrimMSF.hpp +66 -0
  268. package/vendor/include/networkit/graph/RandomMaximumSpanningForest.hpp +133 -0
  269. package/vendor/include/networkit/graph/SpanningForest.hpp +41 -0
  270. package/vendor/include/networkit/graph/TopologicalSort.hpp +87 -0
  271. package/vendor/include/networkit/graph/UnionMaximumSpanningForest.hpp +126 -0
  272. package/vendor/include/networkit/graph/test/GraphBuilderBenchmark.hpp +68 -0
  273. package/vendor/include/networkit/independentset/IndependentSetFinder.hpp +44 -0
  274. package/vendor/include/networkit/independentset/Luby.hpp +27 -0
  275. package/vendor/include/networkit/io/BinaryEdgeListPartitionReader.hpp +45 -0
  276. package/vendor/include/networkit/io/BinaryEdgeListPartitionWriter.hpp +47 -0
  277. package/vendor/include/networkit/io/BinaryPartitionReader.hpp +41 -0
  278. package/vendor/include/networkit/io/BinaryPartitionWriter.hpp +44 -0
  279. package/vendor/include/networkit/io/CoverReader.hpp +27 -0
  280. package/vendor/include/networkit/io/CoverWriter.hpp +21 -0
  281. package/vendor/include/networkit/io/DGSReader.hpp +39 -0
  282. package/vendor/include/networkit/io/DibapGraphReader.hpp +43 -0
  283. package/vendor/include/networkit/io/DotGraphWriter.hpp +39 -0
  284. package/vendor/include/networkit/io/DotPartitionWriter.hpp +23 -0
  285. package/vendor/include/networkit/io/DynamicGraphReader.hpp +29 -0
  286. package/vendor/include/networkit/io/EdgeListCoverReader.hpp +35 -0
  287. package/vendor/include/networkit/io/EdgeListPartitionReader.hpp +43 -0
  288. package/vendor/include/networkit/io/EdgeListReader.hpp +61 -0
  289. package/vendor/include/networkit/io/EdgeListWriter.hpp +48 -0
  290. package/vendor/include/networkit/io/GMLGraphReader.hpp +33 -0
  291. package/vendor/include/networkit/io/GMLGraphWriter.hpp +33 -0
  292. package/vendor/include/networkit/io/GraphIO.hpp +52 -0
  293. package/vendor/include/networkit/io/GraphReader.hpp +40 -0
  294. package/vendor/include/networkit/io/GraphToolBinaryReader.hpp +71 -0
  295. package/vendor/include/networkit/io/GraphToolBinaryWriter.hpp +61 -0
  296. package/vendor/include/networkit/io/GraphWriter.hpp +27 -0
  297. package/vendor/include/networkit/io/KONECTGraphReader.hpp +44 -0
  298. package/vendor/include/networkit/io/LineFileReader.hpp +42 -0
  299. package/vendor/include/networkit/io/METISGraphReader.hpp +36 -0
  300. package/vendor/include/networkit/io/METISGraphWriter.hpp +29 -0
  301. package/vendor/include/networkit/io/METISParser.hpp +63 -0
  302. package/vendor/include/networkit/io/MTXGraphReader.hpp +31 -0
  303. package/vendor/include/networkit/io/MTXParser.hpp +87 -0
  304. package/vendor/include/networkit/io/MatrixMarketReader.hpp +33 -0
  305. package/vendor/include/networkit/io/MatrixReader.hpp +33 -0
  306. package/vendor/include/networkit/io/MemoryMappedFile.hpp +80 -0
  307. package/vendor/include/networkit/io/NetworkitBinaryGraph.hpp +144 -0
  308. package/vendor/include/networkit/io/NetworkitBinaryReader.hpp +50 -0
  309. package/vendor/include/networkit/io/NetworkitBinaryWriter.hpp +71 -0
  310. package/vendor/include/networkit/io/PartitionReader.hpp +34 -0
  311. package/vendor/include/networkit/io/PartitionWriter.hpp +31 -0
  312. package/vendor/include/networkit/io/RBGraphReader.hpp +37 -0
  313. package/vendor/include/networkit/io/RBMatrixReader.hpp +49 -0
  314. package/vendor/include/networkit/io/RasterReader.hpp +40 -0
  315. package/vendor/include/networkit/io/SNAPEdgeListPartitionReader.hpp +28 -0
  316. package/vendor/include/networkit/io/SNAPGraphReader.hpp +53 -0
  317. package/vendor/include/networkit/io/SNAPGraphWriter.hpp +53 -0
  318. package/vendor/include/networkit/io/ThrillGraphBinaryReader.hpp +44 -0
  319. package/vendor/include/networkit/io/ThrillGraphBinaryWriter.hpp +27 -0
  320. package/vendor/include/networkit/layout/LayoutAlgorithm.hpp +39 -0
  321. package/vendor/include/networkit/linkprediction/AdamicAdarIndex.hpp +37 -0
  322. package/vendor/include/networkit/linkprediction/AdjustedRandIndex.hpp +36 -0
  323. package/vendor/include/networkit/linkprediction/AlgebraicDistanceIndex.hpp +70 -0
  324. package/vendor/include/networkit/linkprediction/CommonNeighborsIndex.hpp +39 -0
  325. package/vendor/include/networkit/linkprediction/EvaluationMetric.hpp +135 -0
  326. package/vendor/include/networkit/linkprediction/JaccardIndex.hpp +44 -0
  327. package/vendor/include/networkit/linkprediction/KatzIndex.hpp +84 -0
  328. package/vendor/include/networkit/linkprediction/LinkPredictor.hpp +98 -0
  329. package/vendor/include/networkit/linkprediction/LinkThresholder.hpp +56 -0
  330. package/vendor/include/networkit/linkprediction/MissingLinksFinder.hpp +60 -0
  331. package/vendor/include/networkit/linkprediction/NeighborhoodDistanceIndex.hpp +42 -0
  332. package/vendor/include/networkit/linkprediction/NeighborhoodUtility.hpp +54 -0
  333. package/vendor/include/networkit/linkprediction/NeighborsMeasureIndex.hpp +48 -0
  334. package/vendor/include/networkit/linkprediction/PrecisionRecallMetric.hpp +40 -0
  335. package/vendor/include/networkit/linkprediction/PredictionsSorter.hpp +66 -0
  336. package/vendor/include/networkit/linkprediction/PreferentialAttachmentIndex.hpp +37 -0
  337. package/vendor/include/networkit/linkprediction/ROCMetric.hpp +39 -0
  338. package/vendor/include/networkit/linkprediction/RandomLinkSampler.hpp +47 -0
  339. package/vendor/include/networkit/linkprediction/ResourceAllocationIndex.hpp +38 -0
  340. package/vendor/include/networkit/linkprediction/SameCommunityIndex.hpp +50 -0
  341. package/vendor/include/networkit/linkprediction/TotalNeighborsIndex.hpp +39 -0
  342. package/vendor/include/networkit/linkprediction/UDegreeIndex.hpp +35 -0
  343. package/vendor/include/networkit/linkprediction/VDegreeIndex.hpp +35 -0
  344. package/vendor/include/networkit/matching/BMatcher.hpp +52 -0
  345. package/vendor/include/networkit/matching/BMatching.hpp +115 -0
  346. package/vendor/include/networkit/matching/BSuitorMatcher.hpp +170 -0
  347. package/vendor/include/networkit/matching/DynamicBSuitorMatcher.hpp +78 -0
  348. package/vendor/include/networkit/matching/LocalMaxMatcher.hpp +35 -0
  349. package/vendor/include/networkit/matching/Matcher.hpp +55 -0
  350. package/vendor/include/networkit/matching/Matching.hpp +111 -0
  351. package/vendor/include/networkit/matching/PathGrowingMatcher.hpp +46 -0
  352. package/vendor/include/networkit/matching/SuitorMatcher.hpp +62 -0
  353. package/vendor/include/networkit/numerics/ConjugateGradient.hpp +163 -0
  354. package/vendor/include/networkit/numerics/GaussSeidelRelaxation.hpp +99 -0
  355. package/vendor/include/networkit/numerics/LAMG/LAMGSettings.hpp +70 -0
  356. package/vendor/include/networkit/numerics/LAMG/Lamg.hpp +460 -0
  357. package/vendor/include/networkit/numerics/LAMG/Level/EliminationStage.hpp +47 -0
  358. package/vendor/include/networkit/numerics/LAMG/Level/Level.hpp +56 -0
  359. package/vendor/include/networkit/numerics/LAMG/Level/LevelAggregation.hpp +52 -0
  360. package/vendor/include/networkit/numerics/LAMG/Level/LevelElimination.hpp +133 -0
  361. package/vendor/include/networkit/numerics/LAMG/Level/LevelFinest.hpp +28 -0
  362. package/vendor/include/networkit/numerics/LAMG/LevelHierarchy.hpp +165 -0
  363. package/vendor/include/networkit/numerics/LAMG/MultiLevelSetup.hpp +1090 -0
  364. package/vendor/include/networkit/numerics/LAMG/SolverLamg.hpp +316 -0
  365. package/vendor/include/networkit/numerics/LinearSolver.hpp +151 -0
  366. package/vendor/include/networkit/numerics/Preconditioner/DiagonalPreconditioner.hpp +61 -0
  367. package/vendor/include/networkit/numerics/Preconditioner/IdentityPreconditioner.hpp +36 -0
  368. package/vendor/include/networkit/numerics/Smoother.hpp +37 -0
  369. package/vendor/include/networkit/overlap/HashingOverlapper.hpp +28 -0
  370. package/vendor/include/networkit/overlap/Overlapper.hpp +27 -0
  371. package/vendor/include/networkit/planarity/LeftRightPlanarityCheck.hpp +113 -0
  372. package/vendor/include/networkit/randomization/Curveball.hpp +49 -0
  373. package/vendor/include/networkit/randomization/CurveballGlobalTradeGenerator.hpp +39 -0
  374. package/vendor/include/networkit/randomization/CurveballUniformTradeGenerator.hpp +39 -0
  375. package/vendor/include/networkit/randomization/DegreePreservingShuffle.hpp +82 -0
  376. package/vendor/include/networkit/randomization/EdgeSwitching.hpp +157 -0
  377. package/vendor/include/networkit/randomization/GlobalCurveball.hpp +69 -0
  378. package/vendor/include/networkit/randomization/GlobalTradeSequence.hpp +303 -0
  379. package/vendor/include/networkit/reachability/AllSimplePaths.hpp +122 -0
  380. package/vendor/include/networkit/reachability/ReachableNodes.hpp +83 -0
  381. package/vendor/include/networkit/scd/ApproximatePageRank.hpp +51 -0
  382. package/vendor/include/networkit/scd/CliqueDetect.hpp +55 -0
  383. package/vendor/include/networkit/scd/CombinedSCD.hpp +51 -0
  384. package/vendor/include/networkit/scd/GCE.hpp +42 -0
  385. package/vendor/include/networkit/scd/LFMLocal.hpp +54 -0
  386. package/vendor/include/networkit/scd/LocalT.hpp +40 -0
  387. package/vendor/include/networkit/scd/LocalTightnessExpansion.hpp +46 -0
  388. package/vendor/include/networkit/scd/PageRankNibble.hpp +55 -0
  389. package/vendor/include/networkit/scd/RandomBFS.hpp +33 -0
  390. package/vendor/include/networkit/scd/SCDGroundTruthComparison.hpp +121 -0
  391. package/vendor/include/networkit/scd/SelectiveCommunityDetector.hpp +76 -0
  392. package/vendor/include/networkit/scd/SetConductance.hpp +47 -0
  393. package/vendor/include/networkit/scd/TCE.hpp +41 -0
  394. package/vendor/include/networkit/scd/TwoPhaseL.hpp +40 -0
  395. package/vendor/include/networkit/scoring/EdgeScoring.hpp +44 -0
  396. package/vendor/include/networkit/scoring/ModularityScoring.hpp +79 -0
  397. package/vendor/include/networkit/simulation/EpidemicSimulationSEIR.hpp +59 -0
  398. package/vendor/include/networkit/sparsification/ChanceCorrectedTriangleScore.hpp +28 -0
  399. package/vendor/include/networkit/sparsification/ForestFireScore.hpp +34 -0
  400. package/vendor/include/networkit/sparsification/GlobalThresholdFilter.hpp +40 -0
  401. package/vendor/include/networkit/sparsification/LocalDegreeScore.hpp +30 -0
  402. package/vendor/include/networkit/sparsification/LocalFilterScore.hpp +124 -0
  403. package/vendor/include/networkit/sparsification/LocalSimilarityScore.hpp +63 -0
  404. package/vendor/include/networkit/sparsification/MultiscaleScore.hpp +38 -0
  405. package/vendor/include/networkit/sparsification/RandomEdgeScore.hpp +33 -0
  406. package/vendor/include/networkit/sparsification/RandomNodeEdgeScore.hpp +29 -0
  407. package/vendor/include/networkit/sparsification/SCANStructuralSimilarityScore.hpp +23 -0
  408. package/vendor/include/networkit/sparsification/SimmelianOverlapScore.hpp +35 -0
  409. package/vendor/include/networkit/sparsification/SimmelianScore.hpp +92 -0
  410. package/vendor/include/networkit/sparsification/Sparsifiers.hpp +166 -0
  411. package/vendor/include/networkit/structures/Cover.hpp +248 -0
  412. package/vendor/include/networkit/structures/LocalCommunity.hpp +363 -0
  413. package/vendor/include/networkit/structures/Partition.hpp +335 -0
  414. package/vendor/include/networkit/structures/UnionFind.hpp +66 -0
  415. package/vendor/include/networkit/viz/GraphLayoutAlgorithm.hpp +157 -0
  416. package/vendor/include/networkit/viz/MaxentStress.hpp +346 -0
  417. package/vendor/include/networkit/viz/Octree.hpp +428 -0
  418. package/vendor/include/networkit/viz/PivotMDS.hpp +63 -0
  419. package/vendor/include/networkit/viz/Point.hpp +415 -0
  420. package/vendor/include/networkit/viz/PostscriptWriter.hpp +78 -0
  421. package/vendor/include/tlx/algorithm/exclusive_scan.hpp +56 -0
  422. package/vendor/include/tlx/algorithm/is_sorted_cmp.hpp +56 -0
  423. package/vendor/include/tlx/algorithm/merge_advance.hpp +177 -0
  424. package/vendor/include/tlx/algorithm/merge_combine.hpp +76 -0
  425. package/vendor/include/tlx/algorithm/multisequence_partition.hpp +346 -0
  426. package/vendor/include/tlx/algorithm/multisequence_selection.hpp +351 -0
  427. package/vendor/include/tlx/algorithm/multiway_merge.hpp +1385 -0
  428. package/vendor/include/tlx/algorithm/multiway_merge_splitting.hpp +257 -0
  429. package/vendor/include/tlx/algorithm/parallel_multiway_merge.hpp +408 -0
  430. package/vendor/include/tlx/algorithm/random_bipartition_shuffle.hpp +116 -0
  431. package/vendor/include/tlx/algorithm.hpp +36 -0
  432. package/vendor/include/tlx/allocator_base.hpp +100 -0
  433. package/vendor/include/tlx/backtrace.hpp +54 -0
  434. package/vendor/include/tlx/cmdline_parser.hpp +498 -0
  435. package/vendor/include/tlx/container/btree.hpp +3977 -0
  436. package/vendor/include/tlx/container/btree_map.hpp +634 -0
  437. package/vendor/include/tlx/container/btree_multimap.hpp +627 -0
  438. package/vendor/include/tlx/container/btree_multiset.hpp +612 -0
  439. package/vendor/include/tlx/container/btree_set.hpp +612 -0
  440. package/vendor/include/tlx/container/d_ary_addressable_int_heap.hpp +416 -0
  441. package/vendor/include/tlx/container/d_ary_heap.hpp +311 -0
  442. package/vendor/include/tlx/container/loser_tree.hpp +1009 -0
  443. package/vendor/include/tlx/container/lru_cache.hpp +319 -0
  444. package/vendor/include/tlx/container/radix_heap.hpp +735 -0
  445. package/vendor/include/tlx/container/ring_buffer.hpp +428 -0
  446. package/vendor/include/tlx/container/simple_vector.hpp +304 -0
  447. package/vendor/include/tlx/container/splay_tree.hpp +399 -0
  448. package/vendor/include/tlx/container/string_view.hpp +805 -0
  449. package/vendor/include/tlx/container.hpp +40 -0
  450. package/vendor/include/tlx/counting_ptr.hpp +522 -0
  451. package/vendor/include/tlx/define/attribute_always_inline.hpp +34 -0
  452. package/vendor/include/tlx/define/attribute_fallthrough.hpp +36 -0
  453. package/vendor/include/tlx/define/attribute_format_printf.hpp +34 -0
  454. package/vendor/include/tlx/define/attribute_packed.hpp +34 -0
  455. package/vendor/include/tlx/define/attribute_warn_unused_result.hpp +34 -0
  456. package/vendor/include/tlx/define/constexpr.hpp +31 -0
  457. package/vendor/include/tlx/define/deprecated.hpp +39 -0
  458. package/vendor/include/tlx/define/endian.hpp +49 -0
  459. package/vendor/include/tlx/define/likely.hpp +33 -0
  460. package/vendor/include/tlx/define/visibility_hidden.hpp +34 -0
  461. package/vendor/include/tlx/define.hpp +36 -0
  462. package/vendor/include/tlx/delegate.hpp +524 -0
  463. package/vendor/include/tlx/die/core.hpp +311 -0
  464. package/vendor/include/tlx/die.hpp +106 -0
  465. package/vendor/include/tlx/digest/md5.hpp +81 -0
  466. package/vendor/include/tlx/digest/sha1.hpp +81 -0
  467. package/vendor/include/tlx/digest/sha256.hpp +81 -0
  468. package/vendor/include/tlx/digest/sha512.hpp +81 -0
  469. package/vendor/include/tlx/digest.hpp +30 -0
  470. package/vendor/include/tlx/logger/all.hpp +33 -0
  471. package/vendor/include/tlx/logger/array.hpp +43 -0
  472. package/vendor/include/tlx/logger/core.hpp +287 -0
  473. package/vendor/include/tlx/logger/deque.hpp +42 -0
  474. package/vendor/include/tlx/logger/map.hpp +65 -0
  475. package/vendor/include/tlx/logger/set.hpp +60 -0
  476. package/vendor/include/tlx/logger/tuple.hpp +66 -0
  477. package/vendor/include/tlx/logger/unordered_map.hpp +68 -0
  478. package/vendor/include/tlx/logger/unordered_set.hpp +64 -0
  479. package/vendor/include/tlx/logger/wrap_unprintable.hpp +75 -0
  480. package/vendor/include/tlx/logger.hpp +44 -0
  481. package/vendor/include/tlx/math/abs_diff.hpp +35 -0
  482. package/vendor/include/tlx/math/aggregate.hpp +231 -0
  483. package/vendor/include/tlx/math/aggregate_min_max.hpp +116 -0
  484. package/vendor/include/tlx/math/bswap.hpp +148 -0
  485. package/vendor/include/tlx/math/bswap_be.hpp +79 -0
  486. package/vendor/include/tlx/math/bswap_le.hpp +79 -0
  487. package/vendor/include/tlx/math/clz.hpp +174 -0
  488. package/vendor/include/tlx/math/ctz.hpp +174 -0
  489. package/vendor/include/tlx/math/div_ceil.hpp +36 -0
  490. package/vendor/include/tlx/math/ffs.hpp +123 -0
  491. package/vendor/include/tlx/math/integer_log2.hpp +189 -0
  492. package/vendor/include/tlx/math/is_power_of_two.hpp +74 -0
  493. package/vendor/include/tlx/math/polynomial_regression.hpp +243 -0
  494. package/vendor/include/tlx/math/popcount.hpp +173 -0
  495. package/vendor/include/tlx/math/power_to_the.hpp +44 -0
  496. package/vendor/include/tlx/math/rol.hpp +112 -0
  497. package/vendor/include/tlx/math/ror.hpp +112 -0
  498. package/vendor/include/tlx/math/round_to_power_of_two.hpp +121 -0
  499. package/vendor/include/tlx/math/round_up.hpp +36 -0
  500. package/vendor/include/tlx/math/sgn.hpp +38 -0
  501. package/vendor/include/tlx/math.hpp +46 -0
  502. package/vendor/include/tlx/meta/apply_tuple.hpp +55 -0
  503. package/vendor/include/tlx/meta/call_for_range.hpp +78 -0
  504. package/vendor/include/tlx/meta/call_foreach.hpp +60 -0
  505. package/vendor/include/tlx/meta/call_foreach_tuple.hpp +60 -0
  506. package/vendor/include/tlx/meta/call_foreach_tuple_with_index.hpp +61 -0
  507. package/vendor/include/tlx/meta/call_foreach_with_index.hpp +64 -0
  508. package/vendor/include/tlx/meta/enable_if.hpp +37 -0
  509. package/vendor/include/tlx/meta/fold_left.hpp +63 -0
  510. package/vendor/include/tlx/meta/fold_left_tuple.hpp +60 -0
  511. package/vendor/include/tlx/meta/fold_right.hpp +63 -0
  512. package/vendor/include/tlx/meta/fold_right_tuple.hpp +60 -0
  513. package/vendor/include/tlx/meta/function_chain.hpp +197 -0
  514. package/vendor/include/tlx/meta/function_stack.hpp +189 -0
  515. package/vendor/include/tlx/meta/has_member.hpp +80 -0
  516. package/vendor/include/tlx/meta/has_method.hpp +117 -0
  517. package/vendor/include/tlx/meta/index_sequence.hpp +66 -0
  518. package/vendor/include/tlx/meta/is_std_array.hpp +40 -0
  519. package/vendor/include/tlx/meta/is_std_pair.hpp +39 -0
  520. package/vendor/include/tlx/meta/is_std_tuple.hpp +39 -0
  521. package/vendor/include/tlx/meta/is_std_vector.hpp +39 -0
  522. package/vendor/include/tlx/meta/log2.hpp +101 -0
  523. package/vendor/include/tlx/meta/no_operation.hpp +55 -0
  524. package/vendor/include/tlx/meta/static_index.hpp +42 -0
  525. package/vendor/include/tlx/meta/vexpand.hpp +34 -0
  526. package/vendor/include/tlx/meta/vmap_for_range.hpp +84 -0
  527. package/vendor/include/tlx/meta/vmap_foreach.hpp +63 -0
  528. package/vendor/include/tlx/meta/vmap_foreach_tuple.hpp +59 -0
  529. package/vendor/include/tlx/meta/vmap_foreach_tuple_with_index.hpp +62 -0
  530. package/vendor/include/tlx/meta/vmap_foreach_with_index.hpp +70 -0
  531. package/vendor/include/tlx/meta.hpp +55 -0
  532. package/vendor/include/tlx/multi_timer.hpp +148 -0
  533. package/vendor/include/tlx/port/setenv.hpp +31 -0
  534. package/vendor/include/tlx/port.hpp +27 -0
  535. package/vendor/include/tlx/semaphore.hpp +119 -0
  536. package/vendor/include/tlx/simple_vector.hpp +20 -0
  537. package/vendor/include/tlx/siphash.hpp +282 -0
  538. package/vendor/include/tlx/sort/networks/best.hpp +611 -0
  539. package/vendor/include/tlx/sort/networks/bose_nelson.hpp +412 -0
  540. package/vendor/include/tlx/sort/networks/bose_nelson_parameter.hpp +507 -0
  541. package/vendor/include/tlx/sort/networks/cswap.hpp +60 -0
  542. package/vendor/include/tlx/sort/parallel_mergesort.hpp +398 -0
  543. package/vendor/include/tlx/sort/strings/insertion_sort.hpp +232 -0
  544. package/vendor/include/tlx/sort/strings/multikey_quicksort.hpp +185 -0
  545. package/vendor/include/tlx/sort/strings/parallel_sample_sort.hpp +1647 -0
  546. package/vendor/include/tlx/sort/strings/radix_sort.hpp +934 -0
  547. package/vendor/include/tlx/sort/strings/sample_sort_tools.hpp +756 -0
  548. package/vendor/include/tlx/sort/strings/string_ptr.hpp +426 -0
  549. package/vendor/include/tlx/sort/strings/string_set.hpp +800 -0
  550. package/vendor/include/tlx/sort/strings.hpp +329 -0
  551. package/vendor/include/tlx/sort/strings_parallel.hpp +325 -0
  552. package/vendor/include/tlx/sort.hpp +29 -0
  553. package/vendor/include/tlx/stack_allocator.hpp +226 -0
  554. package/vendor/include/tlx/string/appendline.hpp +35 -0
  555. package/vendor/include/tlx/string/base64.hpp +87 -0
  556. package/vendor/include/tlx/string/bitdump.hpp +139 -0
  557. package/vendor/include/tlx/string/compare_icase.hpp +42 -0
  558. package/vendor/include/tlx/string/contains.hpp +36 -0
  559. package/vendor/include/tlx/string/contains_word.hpp +42 -0
  560. package/vendor/include/tlx/string/ends_with.hpp +79 -0
  561. package/vendor/include/tlx/string/equal_icase.hpp +42 -0
  562. package/vendor/include/tlx/string/erase_all.hpp +70 -0
  563. package/vendor/include/tlx/string/escape_html.hpp +34 -0
  564. package/vendor/include/tlx/string/escape_uri.hpp +34 -0
  565. package/vendor/include/tlx/string/expand_environment_variables.hpp +49 -0
  566. package/vendor/include/tlx/string/extract_between.hpp +40 -0
  567. package/vendor/include/tlx/string/format_iec_units.hpp +32 -0
  568. package/vendor/include/tlx/string/format_si_iec_units.hpp +19 -0
  569. package/vendor/include/tlx/string/format_si_units.hpp +32 -0
  570. package/vendor/include/tlx/string/hash_djb2.hpp +87 -0
  571. package/vendor/include/tlx/string/hash_sdbm.hpp +86 -0
  572. package/vendor/include/tlx/string/hexdump.hpp +154 -0
  573. package/vendor/include/tlx/string/index_of.hpp +56 -0
  574. package/vendor/include/tlx/string/join.hpp +65 -0
  575. package/vendor/include/tlx/string/join_generic.hpp +89 -0
  576. package/vendor/include/tlx/string/join_quoted.hpp +46 -0
  577. package/vendor/include/tlx/string/less_icase.hpp +64 -0
  578. package/vendor/include/tlx/string/levenshtein.hpp +193 -0
  579. package/vendor/include/tlx/string/pad.hpp +39 -0
  580. package/vendor/include/tlx/string/parse_si_iec_units.hpp +46 -0
  581. package/vendor/include/tlx/string/parse_uri.hpp +66 -0
  582. package/vendor/include/tlx/string/parse_uri_form_data.hpp +136 -0
  583. package/vendor/include/tlx/string/replace.hpp +141 -0
  584. package/vendor/include/tlx/string/split.hpp +170 -0
  585. package/vendor/include/tlx/string/split_quoted.hpp +49 -0
  586. package/vendor/include/tlx/string/split_view.hpp +218 -0
  587. package/vendor/include/tlx/string/split_words.hpp +53 -0
  588. package/vendor/include/tlx/string/ssprintf.hpp +45 -0
  589. package/vendor/include/tlx/string/ssprintf_generic.hpp +95 -0
  590. package/vendor/include/tlx/string/starts_with.hpp +44 -0
  591. package/vendor/include/tlx/string/to_lower.hpp +47 -0
  592. package/vendor/include/tlx/string/to_upper.hpp +47 -0
  593. package/vendor/include/tlx/string/trim.hpp +298 -0
  594. package/vendor/include/tlx/string/union_words.hpp +33 -0
  595. package/vendor/include/tlx/string/word_wrap.hpp +35 -0
  596. package/vendor/include/tlx/string.hpp +68 -0
  597. package/vendor/include/tlx/thread_barrier_mutex.hpp +109 -0
  598. package/vendor/include/tlx/thread_barrier_spin.hpp +127 -0
  599. package/vendor/include/tlx/thread_pool.hpp +151 -0
  600. package/vendor/include/tlx/timestamp.hpp +23 -0
  601. package/vendor/include/tlx/unused.hpp +28 -0
  602. package/vendor/include/tlx/vector_free.hpp +30 -0
  603. package/vendor/include/tlx/version.hpp +49 -0
  604. package/vendor/include/ttmath/ttmath.h +2881 -0
  605. package/vendor/include/ttmath/ttmathbig.h +6111 -0
  606. package/vendor/include/ttmath/ttmathdec.h +419 -0
  607. package/vendor/include/ttmath/ttmathint.h +1923 -0
  608. package/vendor/include/ttmath/ttmathmisc.h +250 -0
  609. package/vendor/include/ttmath/ttmathobjects.h +812 -0
  610. package/vendor/include/ttmath/ttmathparser.h +2791 -0
  611. package/vendor/include/ttmath/ttmaththreads.h +252 -0
  612. package/vendor/include/ttmath/ttmathtypes.h +707 -0
  613. package/vendor/include/ttmath/ttmathuint.h +4190 -0
  614. package/vendor/include/ttmath/ttmathuint_noasm.h +1038 -0
  615. package/vendor/include/ttmath/ttmathuint_x86.h +1620 -0
  616. package/vendor/include/ttmath/ttmathuint_x86_64.h +1177 -0
  617. package/vendor/lib/cmake/tlx/tlx-config.cmake +51 -0
  618. package/vendor/lib/cmake/tlx/tlx-targets-release.cmake +19 -0
  619. package/vendor/lib/cmake/tlx/tlx-targets.cmake +106 -0
  620. package/vendor/lib/cmake/tlx/tlx-version.cmake +11 -0
  621. package/vendor/lib/libnetworkit.dylib +0 -0
  622. package/vendor/lib/libtlx.a +0 -0
  623. package/vendor/lib/pkgconfig/networkit.pc +11 -0
  624. package/vendor/lib/pkgconfig/tlx.pc +11 -0
@@ -0,0 +1,55 @@
1
+ /*******************************************************************************
2
+ * tlx/meta/apply_tuple.hpp
3
+ *
4
+ * Part of tlx - http://panthema.net/tlx
5
+ *
6
+ * Copyright (C) 2016-2017 Timo Bingmann <tb@panthema.net>
7
+ *
8
+ * All rights reserved. Published under the Boost Software License, Version 1.0
9
+ ******************************************************************************/
10
+
11
+ #ifndef TLX_META_APPLY_TUPLE_HEADER
12
+ #define TLX_META_APPLY_TUPLE_HEADER
13
+
14
+ #include <tlx/meta/index_sequence.hpp>
15
+ #include <cstddef>
16
+ #include <tuple>
17
+ #include <type_traits>
18
+ #include <utility>
19
+
20
+ namespace tlx {
21
+
22
+ //! \addtogroup tlx_meta
23
+ //! \{
24
+
25
+ /******************************************************************************/
26
+ // Tuple Applier: takes a std::tuple<> and applies a variadic template function
27
+ // to it. Hence, this expands the content of the tuple as the arguments.
28
+
29
+ namespace meta_detail {
30
+
31
+ template <typename Functor, typename Tuple, std::size_t... Is>
32
+ auto apply_tuple_impl(Functor&& f, Tuple&& t, index_sequence<Is...>)
33
+ {
34
+ return std::forward<Functor>(f)(std::get<Is>(std::forward<Tuple>(t))...);
35
+ }
36
+
37
+ } // namespace meta_detail
38
+
39
+ //! Call the functor f with the contents of t as arguments.
40
+ template <typename Functor, typename Tuple>
41
+ auto apply_tuple(Functor&& f, Tuple&& t)
42
+ {
43
+ using Indices = make_index_sequence<
44
+ std::tuple_size<typename std::decay<Tuple>::type>::value>;
45
+ return meta_detail::apply_tuple_impl(std::forward<Functor>(f),
46
+ std::forward<Tuple>(t), Indices());
47
+ }
48
+
49
+ //! \}
50
+
51
+ } // namespace tlx
52
+
53
+ #endif // !TLX_META_APPLY_TUPLE_HEADER
54
+
55
+ /******************************************************************************/
@@ -0,0 +1,78 @@
1
+ /*******************************************************************************
2
+ * tlx/meta/call_for_range.hpp
3
+ *
4
+ * Part of tlx - http://panthema.net/tlx
5
+ *
6
+ * Copyright (C) 2016-2017 Timo Bingmann <tb@panthema.net>
7
+ *
8
+ * All rights reserved. Published under the Boost Software License, Version 1.0
9
+ ******************************************************************************/
10
+
11
+ #ifndef TLX_META_CALL_FOR_RANGE_HEADER
12
+ #define TLX_META_CALL_FOR_RANGE_HEADER
13
+
14
+ #include <tlx/meta/static_index.hpp>
15
+ #include <cstddef>
16
+ #include <utility>
17
+
18
+ namespace tlx {
19
+
20
+ //! \addtogroup tlx_meta
21
+ //! \{
22
+
23
+ /******************************************************************************/
24
+ // Variadic Template Enumerator: run a generic templated functor (like a generic
25
+ // lambda) for the integers 0 .. Size-1 or more general [Begin,End).
26
+ //
27
+ // Called with func(StaticIndex<> index).
28
+
29
+ namespace meta_detail {
30
+
31
+ //! helper for call_for_range: general recursive case
32
+ template <size_t Index, size_t Size, typename Functor>
33
+ class CallForRangeImpl
34
+ {
35
+ public:
36
+ static void call(Functor&& f)
37
+ {
38
+ std::forward<Functor>(f)(StaticIndex<Index>());
39
+ CallForRangeImpl<Index + 1, Size - 1, Functor>::call(
40
+ std::forward<Functor>(f));
41
+ }
42
+ };
43
+
44
+ //! helper for call_for_range: base case
45
+ template <size_t Index, typename Functor>
46
+ class CallForRangeImpl<Index, 0, Functor>
47
+ {
48
+ public:
49
+ static void call(Functor&& /* f */)
50
+ {
51
+ }
52
+ };
53
+
54
+ } // namespace meta_detail
55
+
56
+ //! Call a generic functor (like a generic lambda) for the integers [0,Size).
57
+ template <size_t Size, typename Functor>
58
+ void call_for_range(Functor&& f)
59
+ {
60
+ meta_detail::CallForRangeImpl<0, Size, Functor>::call(
61
+ std::forward<Functor>(f));
62
+ }
63
+
64
+ //! Call a generic functor (like a generic lambda) for the integers [Begin,End).
65
+ template <size_t Begin, size_t End, typename Functor>
66
+ void call_for_range(Functor&& f)
67
+ {
68
+ meta_detail::CallForRangeImpl<Begin, End - Begin, Functor>::call(
69
+ std::forward<Functor>(f));
70
+ }
71
+
72
+ //! \}
73
+
74
+ } // namespace tlx
75
+
76
+ #endif // !TLX_META_CALL_FOR_RANGE_HEADER
77
+
78
+ /******************************************************************************/
@@ -0,0 +1,60 @@
1
+ /*******************************************************************************
2
+ * tlx/meta/call_foreach.hpp
3
+ *
4
+ * Part of tlx - http://panthema.net/tlx
5
+ *
6
+ * Copyright (C) 2016-2017 Timo Bingmann <tb@panthema.net>
7
+ *
8
+ * All rights reserved. Published under the Boost Software License, Version 1.0
9
+ ******************************************************************************/
10
+
11
+ #ifndef TLX_META_CALL_FOREACH_HEADER
12
+ #define TLX_META_CALL_FOREACH_HEADER
13
+
14
+ #include <utility>
15
+
16
+ namespace tlx {
17
+
18
+ //! \addtogroup tlx_meta
19
+ //! \{
20
+
21
+ /******************************************************************************/
22
+ // Variadic Template Expander: run a generic templated functor (like a generic
23
+ // lambda) for each of the variadic template parameters.
24
+
25
+ namespace meta_detail {
26
+
27
+ //! helper for call_foreach: base case
28
+ template <typename Functor, typename Arg>
29
+ void call_foreach_impl(Functor&& f, Arg&& arg)
30
+ {
31
+ std::forward<Functor>(f)(std::forward<Arg>(arg));
32
+ }
33
+
34
+ //! helper for call_foreach: general recursive case
35
+ template <typename Functor, typename Arg, typename... MoreArgs>
36
+ void call_foreach_impl(Functor&& f, Arg&& arg, MoreArgs&&... rest)
37
+ {
38
+ std::forward<Functor>(f)(std::forward<Arg>(arg));
39
+ call_foreach_impl(std::forward<Functor>(f),
40
+ std::forward<MoreArgs>(rest)...);
41
+ }
42
+
43
+ } // namespace meta_detail
44
+
45
+ //! Call a generic functor (like a generic lambda) for each variadic template
46
+ //! argument.
47
+ template <typename Functor, typename... Args>
48
+ void call_foreach(Functor&& f, Args&&... args)
49
+ {
50
+ meta_detail::call_foreach_impl(std::forward<Functor>(f),
51
+ std::forward<Args>(args)...);
52
+ }
53
+
54
+ //! \}
55
+
56
+ } // namespace tlx
57
+
58
+ #endif // !TLX_META_CALL_FOREACH_HEADER
59
+
60
+ /******************************************************************************/
@@ -0,0 +1,60 @@
1
+ /*******************************************************************************
2
+ * tlx/meta/call_foreach_tuple.hpp
3
+ *
4
+ * Part of tlx - http://panthema.net/tlx
5
+ *
6
+ * Copyright (C) 2016-2017 Timo Bingmann <tb@panthema.net>
7
+ *
8
+ * All rights reserved. Published under the Boost Software License, Version 1.0
9
+ ******************************************************************************/
10
+
11
+ #ifndef TLX_META_CALL_FOREACH_TUPLE_HEADER
12
+ #define TLX_META_CALL_FOREACH_TUPLE_HEADER
13
+
14
+ #include <tlx/meta/call_foreach.hpp>
15
+ #include <tlx/meta/index_sequence.hpp>
16
+ #include <cstddef>
17
+ #include <tuple>
18
+ #include <type_traits>
19
+
20
+ namespace tlx {
21
+
22
+ //! \addtogroup tlx_meta
23
+ //! \{
24
+
25
+ /******************************************************************************/
26
+ // Variadic Template Expander: run a generic templated functor (like a generic
27
+ // lambda) for each component of a std::tuple.
28
+ //
29
+ // Called with func(Argument arg).
30
+
31
+ namespace meta_detail {
32
+
33
+ //! helper for call_foreach_tuple
34
+ template <typename Functor, typename Tuple, std::size_t... Is>
35
+ void call_foreach_tuple_impl(Functor&& f, Tuple&& t, index_sequence<Is...>)
36
+ {
37
+ return call_foreach(std::forward<Functor>(f),
38
+ std::get<Is>(std::forward<Tuple>(t))...);
39
+ }
40
+
41
+ } // namespace meta_detail
42
+
43
+ //! Call a generic functor (like a generic lambda) to each components of a tuple
44
+ //! together with its zero-based index.
45
+ template <typename Functor, typename Tuple>
46
+ void call_foreach_tuple(Functor&& f, Tuple&& t)
47
+ {
48
+ using Indices = make_index_sequence<
49
+ std::tuple_size<typename std::decay<Tuple>::type>::value>;
50
+ meta_detail::call_foreach_tuple_impl(std::forward<Functor>(f),
51
+ std::forward<Tuple>(t), Indices());
52
+ }
53
+
54
+ //! \}
55
+
56
+ } // namespace tlx
57
+
58
+ #endif // !TLX_META_CALL_FOREACH_TUPLE_HEADER
59
+
60
+ /******************************************************************************/
@@ -0,0 +1,61 @@
1
+ /*******************************************************************************
2
+ * tlx/meta/call_foreach_tuple_with_index.hpp
3
+ *
4
+ * Part of tlx - http://panthema.net/tlx
5
+ *
6
+ * Copyright (C) 2016-2017 Timo Bingmann <tb@panthema.net>
7
+ *
8
+ * All rights reserved. Published under the Boost Software License, Version 1.0
9
+ ******************************************************************************/
10
+
11
+ #ifndef TLX_META_CALL_FOREACH_TUPLE_WITH_INDEX_HEADER
12
+ #define TLX_META_CALL_FOREACH_TUPLE_WITH_INDEX_HEADER
13
+
14
+ #include <tlx/meta/call_foreach_with_index.hpp>
15
+ #include <tlx/meta/index_sequence.hpp>
16
+ #include <cstddef>
17
+ #include <tuple>
18
+ #include <type_traits>
19
+
20
+ namespace tlx {
21
+
22
+ //! \addtogroup tlx_meta
23
+ //! \{
24
+
25
+ /******************************************************************************/
26
+ // Variadic Template Expander: run a generic templated functor (like a generic
27
+ // lambda) for each component of a std::tuple.
28
+ //
29
+ // Called with func(StaticIndex<> index, Argument arg).
30
+
31
+ namespace meta_detail {
32
+
33
+ //! helper for call_foreach_tuple_with_index
34
+ template <typename Functor, typename Tuple, std::size_t... Is>
35
+ void call_foreach_tuple_with_index_impl(Functor&& f, Tuple&& t,
36
+ index_sequence<Is...>)
37
+ {
38
+ return call_foreach_with_index(std::forward<Functor>(f),
39
+ std::get<Is>(std::forward<Tuple>(t))...);
40
+ }
41
+
42
+ } // namespace meta_detail
43
+
44
+ //! Call a generic functor (like a generic lambda) to each components of a tuple
45
+ //! together with its zero-based index.
46
+ template <typename Functor, typename Tuple>
47
+ void call_foreach_tuple_with_index(Functor&& f, Tuple&& t)
48
+ {
49
+ using Indices = make_index_sequence<
50
+ std::tuple_size<typename std::decay<Tuple>::type>::value>;
51
+ meta_detail::call_foreach_tuple_with_index_impl(
52
+ std::forward<Functor>(f), std::forward<Tuple>(t), Indices());
53
+ }
54
+
55
+ //! \}
56
+
57
+ } // namespace tlx
58
+
59
+ #endif // !TLX_META_CALL_FOREACH_TUPLE_WITH_INDEX_HEADER
60
+
61
+ /******************************************************************************/
@@ -0,0 +1,64 @@
1
+ /*******************************************************************************
2
+ * tlx/meta/call_foreach_with_index.hpp
3
+ *
4
+ * Part of tlx - http://panthema.net/tlx
5
+ *
6
+ * Copyright (C) 2016-2017 Timo Bingmann <tb@panthema.net>
7
+ *
8
+ * All rights reserved. Published under the Boost Software License, Version 1.0
9
+ ******************************************************************************/
10
+
11
+ #ifndef TLX_META_CALL_FOREACH_WITH_INDEX_HEADER
12
+ #define TLX_META_CALL_FOREACH_WITH_INDEX_HEADER
13
+
14
+ #include <tlx/meta/static_index.hpp>
15
+ #include <cstddef>
16
+ #include <utility>
17
+
18
+ namespace tlx {
19
+
20
+ //! \addtogroup tlx_meta
21
+ //! \{
22
+
23
+ /******************************************************************************/
24
+ // Variadic Template Expander: run a generic templated functor (like a generic
25
+ // lambda) for each of the variadic template parameters.
26
+ //
27
+ // Called with func(StaticIndex<> index, Argument arg).
28
+
29
+ namespace meta_detail {
30
+
31
+ //! helper for call_foreach_with_index: base case
32
+ template <size_t Index, typename Functor, typename Arg>
33
+ void call_foreach_with_index_impl(Functor&& f, Arg&& arg)
34
+ {
35
+ std::forward<Functor>(f)(StaticIndex<Index>(), std::forward<Arg>(arg));
36
+ }
37
+
38
+ //! helper for call_foreach_with_index: general recursive case
39
+ template <size_t Index, typename Functor, typename Arg, typename... MoreArgs>
40
+ void call_foreach_with_index_impl(Functor&& f, Arg&& arg, MoreArgs&&... rest)
41
+ {
42
+ std::forward<Functor>(f)(StaticIndex<Index>(), std::forward<Arg>(arg));
43
+ call_foreach_with_index_impl<Index + 1>(std::forward<Functor>(f),
44
+ std::forward<MoreArgs>(rest)...);
45
+ }
46
+
47
+ } // namespace meta_detail
48
+
49
+ //! Call a generic functor (like a generic lambda) for each variadic template
50
+ //! argument together with its zero-based index.
51
+ template <typename Functor, typename... Args>
52
+ void call_foreach_with_index(Functor&& f, Args&&... args)
53
+ {
54
+ meta_detail::call_foreach_with_index_impl<0>(std::forward<Functor>(f),
55
+ std::forward<Args>(args)...);
56
+ }
57
+
58
+ //! \}
59
+
60
+ } // namespace tlx
61
+
62
+ #endif // !TLX_META_CALL_FOREACH_WITH_INDEX_HEADER
63
+
64
+ /******************************************************************************/
@@ -0,0 +1,37 @@
1
+ /*******************************************************************************
2
+ * tlx/meta/enable_if.hpp
3
+ *
4
+ * Part of tlx - http://panthema.net/tlx
5
+ *
6
+ * Copyright (C) 2019 Timo Bingmann <tb@panthema.net>
7
+ *
8
+ * All rights reserved. Published under the Boost Software License, Version 1.0
9
+ ******************************************************************************/
10
+
11
+ #ifndef TLX_META_ENABLE_IF_HEADER
12
+ #define TLX_META_ENABLE_IF_HEADER
13
+
14
+ namespace tlx {
15
+
16
+ //! \addtogroup tlx_meta
17
+ //! \{
18
+
19
+ //! SFINAE enable_if -- copy of std::enable_if<> with less extra cruft.
20
+ template <bool, typename T = void>
21
+ struct enable_if
22
+ {
23
+ };
24
+
25
+ template <typename T>
26
+ struct enable_if<true, T>
27
+ {
28
+ typedef T type;
29
+ };
30
+
31
+ //! \}
32
+
33
+ } // namespace tlx
34
+
35
+ #endif // !TLX_META_ENABLE_IF_HEADER
36
+
37
+ /******************************************************************************/
@@ -0,0 +1,63 @@
1
+ /*******************************************************************************
2
+ * tlx/meta/fold_left.hpp
3
+ *
4
+ * Part of tlx - http://panthema.net/tlx
5
+ *
6
+ * Copyright (C) 2018 Hung Tran <hung@ae.cs.uni-frankfurt.de>
7
+ *
8
+ * All rights reserved. Published under the Boost Software License, Version 1.0
9
+ ******************************************************************************/
10
+
11
+ #ifndef TLX_META_FOLD_LEFT_HEADER
12
+ #define TLX_META_FOLD_LEFT_HEADER
13
+
14
+ #include <utility>
15
+
16
+ namespace tlx {
17
+
18
+ //! \addtogroup tlx_meta
19
+ //! \{
20
+
21
+ /******************************************************************************/
22
+ // Variadic Template Expander: Implements fold_left() on the variadic template
23
+ // arguments. Implements (init ... op ... pack) of C++17.
24
+
25
+ namespace meta_detail {
26
+
27
+ //! helper for fold_left(): base case
28
+ template <typename Reduce, typename Initial, typename Arg>
29
+ auto fold_left_impl(Reduce&& r, Initial&& init, Arg&& arg)
30
+ {
31
+ return std::forward<Reduce>(r)(std::forward<Initial>(init),
32
+ std::forward<Arg>(arg));
33
+ }
34
+
35
+ //! helper for fold_left(): general recursive case
36
+ template <typename Reduce, typename Initial, typename Arg, typename... MoreArgs>
37
+ auto fold_left_impl(Reduce&& r, Initial&& init, Arg&& arg, MoreArgs&&... rest)
38
+ {
39
+ return fold_left_impl(std::forward<Reduce>(r),
40
+ std::forward<Reduce>(r)(std::forward<Initial>(init),
41
+ std::forward<Arg>(arg)),
42
+ std::forward<MoreArgs>(rest)...);
43
+ }
44
+
45
+ } // namespace meta_detail
46
+
47
+ //! Implements fold_left() -- ((a * b) * c) -- with a binary Reduce operation
48
+ //! and initial value.
49
+ template <typename Reduce, typename Initial, typename... Args>
50
+ auto fold_left(Reduce&& r, Initial&& init, Args&&... args)
51
+ {
52
+ return meta_detail::fold_left_impl(std::forward<Reduce>(r),
53
+ std::forward<Initial>(init),
54
+ std::forward<Args>(args)...);
55
+ }
56
+
57
+ //! \}
58
+
59
+ } // namespace tlx
60
+
61
+ #endif // !TLX_META_FOLD_LEFT_HEADER
62
+
63
+ /******************************************************************************/
@@ -0,0 +1,60 @@
1
+ /*******************************************************************************
2
+ * tlx/meta/fold_left_tuple.hpp
3
+ *
4
+ * Part of tlx - http://panthema.net/tlx
5
+ *
6
+ * Copyright (C) 2018 Hung Tran <hung@ae.cs.uni-frankfurt.de>
7
+ *
8
+ * All rights reserved. Published under the Boost Software License, Version 1.0
9
+ ******************************************************************************/
10
+
11
+ #ifndef TLX_META_FOLD_LEFT_TUPLE_HEADER
12
+ #define TLX_META_FOLD_LEFT_TUPLE_HEADER
13
+
14
+ #include <tlx/meta/fold_left.hpp>
15
+ #include <tlx/meta/index_sequence.hpp>
16
+ #include <cstddef>
17
+ #include <tuple>
18
+ #include <type_traits>
19
+
20
+ namespace tlx {
21
+
22
+ //! \addtogroup tlx_meta
23
+ //! \{
24
+
25
+ /******************************************************************************/
26
+ // Variadic Template Expander: Implements fold_left() on the components of a
27
+ // tuple.
28
+
29
+ namespace meta_detail {
30
+
31
+ //! helper for fold_left_tuple: forwards tuple entries
32
+ template <typename Reduce, typename Initial, typename Tuple, std::size_t... Is>
33
+ auto fold_left_tuple_impl(Reduce&& r, Initial&& init, Tuple&& t,
34
+ index_sequence<Is...>)
35
+ {
36
+ return fold_left(std::forward<Reduce>(r), std::forward<Initial>(init),
37
+ std::get<Is>(std::forward<Tuple>(t))...);
38
+ }
39
+
40
+ } // namespace meta_detail
41
+
42
+ //! Implements fold_left() -- ((a * b) * c) -- with a binary Reduce operation
43
+ //! and initial value on a tuple.
44
+ template <typename Reduce, typename Initial, typename Tuple>
45
+ auto fold_left_tuple(Reduce&& r, Initial&& init, Tuple&& t)
46
+ {
47
+ using Indices = make_index_sequence<
48
+ std::tuple_size<typename std::decay<Tuple>::type>::value>;
49
+ return meta_detail::fold_left_tuple_impl(std::forward<Reduce>(r),
50
+ std::forward<Initial>(init),
51
+ std::forward<Tuple>(t), Indices());
52
+ }
53
+
54
+ //! \}
55
+
56
+ } // namespace tlx
57
+
58
+ #endif // !TLX_META_FOLD_LEFT_TUPLE_HEADER
59
+
60
+ /******************************************************************************/
@@ -0,0 +1,63 @@
1
+ /*******************************************************************************
2
+ * tlx/meta/fold_right.hpp
3
+ *
4
+ * Part of tlx - http://panthema.net/tlx
5
+ *
6
+ * Copyright (C) 2018 Hung Tran <hung@ae.cs.uni-frankfurt.de>
7
+ *
8
+ * All rights reserved. Published under the Boost Software License, Version 1.0
9
+ ******************************************************************************/
10
+
11
+ #ifndef TLX_META_FOLD_RIGHT_HEADER
12
+ #define TLX_META_FOLD_RIGHT_HEADER
13
+
14
+ #include <utility>
15
+
16
+ namespace tlx {
17
+
18
+ //! \addtogroup tlx_meta
19
+ //! \{
20
+
21
+ /******************************************************************************/
22
+ // Variadic Template Expander: Implements fold_right() on the variadic template
23
+ // arguments. Implements (pack ... op ... init) of C++17.
24
+
25
+ namespace meta_detail {
26
+
27
+ //! helper for fold_right: base case
28
+ template <typename Reduce, typename Initial, typename Arg>
29
+ auto fold_right_impl(Reduce&& r, Initial&& init, Arg&& arg)
30
+ {
31
+ return std::forward<Reduce>(r)(std::forward<Arg>(arg),
32
+ std::forward<Initial>(init));
33
+ }
34
+
35
+ //! helper for fold_right: general recursive case
36
+ template <typename Reduce, typename Initial, typename Arg, typename... MoreArgs>
37
+ auto fold_right_impl(Reduce&& r, Initial&& init, Arg&& arg, MoreArgs&&... rest)
38
+ {
39
+ return std::forward<Reduce>(r)(
40
+ std::forward<Arg>(arg),
41
+ fold_right_impl(std::forward<Reduce>(r), std::forward<Initial>(init),
42
+ std::forward<MoreArgs>(rest)...));
43
+ }
44
+
45
+ } // namespace meta_detail
46
+
47
+ //! Implements fold_right() -- (a * (b * c)) -- with a binary Reduce operation
48
+ //! and initial value.
49
+ template <typename Reduce, typename Initial, typename... Args>
50
+ auto fold_right(Reduce&& r, Initial&& init, Args&&... args)
51
+ {
52
+ return meta_detail::fold_right_impl(std::forward<Reduce>(r),
53
+ std::forward<Initial>(init),
54
+ std::forward<Args>(args)...);
55
+ }
56
+
57
+ //! \}
58
+
59
+ } // namespace tlx
60
+
61
+ #endif // !TLX_META_FOLD_RIGHT_HEADER
62
+
63
+ /******************************************************************************/
@@ -0,0 +1,60 @@
1
+ /*******************************************************************************
2
+ * tlx/meta/fold_right_tuple.hpp
3
+ *
4
+ * Part of tlx - http://panthema.net/tlx
5
+ *
6
+ * Copyright (C) 2018 Hung Tran <hung@ae.cs.uni-frankfurt.de>
7
+ *
8
+ * All rights reserved. Published under the Boost Software License, Version 1.0
9
+ ******************************************************************************/
10
+
11
+ #ifndef TLX_META_FOLD_RIGHT_TUPLE_HEADER
12
+ #define TLX_META_FOLD_RIGHT_TUPLE_HEADER
13
+
14
+ #include <tlx/meta/fold_right.hpp>
15
+ #include <tlx/meta/index_sequence.hpp>
16
+ #include <cstddef>
17
+ #include <tuple>
18
+ #include <type_traits>
19
+
20
+ namespace tlx {
21
+
22
+ //! \addtogroup tlx_meta
23
+ //! \{
24
+
25
+ /******************************************************************************/
26
+ // Variadic Template Expander: Implements fold_right() on the components of a
27
+ // tuple.
28
+
29
+ namespace meta_detail {
30
+
31
+ //! helper for fold_right_tuple: forwards tuple entries
32
+ template <typename Reduce, typename Initial, typename Tuple, std::size_t... Is>
33
+ auto fold_right_tuple_impl(Reduce&& r, Initial&& init, Tuple&& t,
34
+ index_sequence<Is...>)
35
+ {
36
+ return fold_right(std::forward<Reduce>(r), std::forward<Initial>(init),
37
+ std::get<Is>(std::forward<Tuple>(t))...);
38
+ }
39
+
40
+ } // namespace meta_detail
41
+
42
+ //! Implements fold_right() -- (a * (b * c)) -- with a binary Reduce operation
43
+ //! and initial value on a tuple.
44
+ template <typename Reduce, typename Initial, typename Tuple>
45
+ auto fold_right_tuple(Reduce&& r, Initial&& init, Tuple&& t)
46
+ {
47
+ using Indices = make_index_sequence<
48
+ std::tuple_size<typename std::decay<Tuple>::type>::value>;
49
+ return meta_detail::fold_right_tuple_impl(
50
+ std::forward<Reduce>(r), std::forward<Initial>(init),
51
+ std::forward<Tuple>(t), Indices());
52
+ }
53
+
54
+ //! \}
55
+
56
+ } // namespace tlx
57
+
58
+ #endif // !TLX_META_FOLD_RIGHT_TUPLE_HEADER
59
+
60
+ /******************************************************************************/