@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,311 @@
1
+ /*******************************************************************************
2
+ * tlx/die/core.hpp
3
+ *
4
+ * Part of tlx - http://panthema.net/tlx
5
+ *
6
+ * Copyright (C) 2016-2018 Timo Bingmann <tb@panthema.net>
7
+ *
8
+ * All rights reserved. Published under the Boost Software License, Version 1.0
9
+ ******************************************************************************/
10
+
11
+ #ifndef TLX_DIE_CORE_HEADER
12
+ #define TLX_DIE_CORE_HEADER
13
+
14
+ #include <cstring>
15
+ #include <iomanip> // NOLINT(misc-include-cleaner)
16
+ #include <sstream> // NOLINT(misc-include-cleaner)
17
+ #include <stdexcept>
18
+ #include <string>
19
+
20
+ namespace tlx {
21
+
22
+ /******************************************************************************/
23
+ // die macros
24
+
25
+ //! die with message - either throw an exception or die via std::terminate()
26
+ void die_with_message(const std::string& msg);
27
+
28
+ //! die with message - either throw an exception or die via std::terminate()
29
+ void die_with_message(const char* msg, const char* file, size_t line);
30
+
31
+ //! die with message - either throw an exception or die via std::terminate()
32
+ void die_with_message(const std::string& msg, const char* file, size_t line);
33
+
34
+ //! Instead of std::terminate(), throw the output the message via an exception.
35
+ #define tlx_die_with_sstream(msg) \
36
+ do \
37
+ { \
38
+ std::ostringstream oss__; \
39
+ oss__ << msg << " @ " << __FILE__ << ':' << __LINE__; \
40
+ ::tlx::die_with_message(oss__.str()); \
41
+ std::terminate(); /* tell compiler this never returns */ \
42
+ } while (false)
43
+
44
+ //! Instead of std::terminate(), throw the output the message via an exception.
45
+ #define tlx_die(msg) \
46
+ do \
47
+ { \
48
+ tlx_die_with_sstream("DIE: " << msg); \
49
+ } while (false)
50
+
51
+ //! Exception thrown by die_with_message() if
52
+ class DieException : public std::runtime_error
53
+ {
54
+ public:
55
+ explicit DieException(const std::string& message);
56
+ };
57
+
58
+ //! Switch between dying via std::terminate() and throwing an exception.
59
+ //! Alternatively define the macro TLX_DIE_WITH_EXCEPTION=1
60
+ bool set_die_with_exception(bool b);
61
+
62
+ /******************************************************************************/
63
+ // die_unless() and die_if()
64
+
65
+ //! Check condition X and die miserably if false. Same as assert() except this
66
+ //! is also active in Release mode.
67
+ #define tlx_die_unless(X) \
68
+ do \
69
+ { \
70
+ if (!(X)) /* NOLINT(readability-simplify-boolean-expr) */ \
71
+ { \
72
+ ::tlx::die_with_message("DIE: Assertion \"" #X "\" failed!", \
73
+ __FILE__, __LINE__); \
74
+ } \
75
+ } while (false)
76
+
77
+ //! Check condition X and die miserably if true. Opposite of assert() except
78
+ //! this is also active in Release mode.
79
+ #define tlx_die_if(X) \
80
+ do \
81
+ { \
82
+ if (X) \
83
+ { \
84
+ ::tlx::die_with_message("DIE: Assertion \"" #X "\" succeeded!", \
85
+ __FILE__, __LINE__); \
86
+ } \
87
+ } while (false)
88
+
89
+ //! Check condition X and die miserably if false. Same as tlx_die_unless()
90
+ //! except the user additionally passes a message.
91
+ #define tlx_die_verbose_unless(X, msg) \
92
+ do \
93
+ { \
94
+ if (!(X)) /* NOLINT(readability-simplify-boolean-expr) */ \
95
+ { \
96
+ tlx_die_with_sstream("DIE: Assertion \"" #X "\" failed!\n" \
97
+ << msg << '\n'); \
98
+ } \
99
+ } while (false)
100
+
101
+ //! Check condition X and die miserably if false. Same as tlx_die_if()
102
+ //! except the user additionally passes a message.
103
+ #define tlx_die_verbose_if(X, msg) \
104
+ do \
105
+ { \
106
+ if ((X)) \
107
+ { \
108
+ tlx_die_with_sstream("DIE: Assertion \"" #X "\" succeeded!\n" \
109
+ << msg << '\n'); \
110
+ } \
111
+ } while (false)
112
+
113
+ /******************************************************************************/
114
+ // die_unequal()
115
+
116
+ //! helper method to compare two values in die_unequal()
117
+ template <typename TypeA, typename TypeB>
118
+ inline bool die_equal_compare(TypeA a, TypeB b)
119
+ {
120
+ return a == b;
121
+ }
122
+
123
+ template <>
124
+ inline bool die_equal_compare(const char* a, const char* b)
125
+ {
126
+ // compare string contents
127
+ return std::strcmp(a, b) == 0;
128
+ }
129
+
130
+ template <>
131
+ inline bool die_equal_compare(float a, float b)
132
+ {
133
+ // special case for NAN
134
+ return a != a ? b != b : a == b;
135
+ }
136
+
137
+ template <>
138
+ inline bool die_equal_compare(double a, double b)
139
+ {
140
+ // special case for NAN
141
+ return a != a ? b != b : a == b;
142
+ }
143
+
144
+ //! Check that X == Y or die miserably, but output the values of X and Y for
145
+ //! better debugging.
146
+ #define tlx_die_unequal(X, Y) \
147
+ do \
148
+ { \
149
+ auto x__ = (X); /* NOLINT */ \
150
+ auto y__ = (Y); /* NOLINT */ \
151
+ if (!::tlx::die_equal_compare(x__, y__)) \
152
+ { \
153
+ tlx_die_with_sstream("DIE-UNEQUAL: " #X " != " #Y " : " \
154
+ "\"" \
155
+ << x__ << "\" != \"" << y__ << "\""); \
156
+ } \
157
+ } while (false)
158
+
159
+ //! Check that X == Y or die miserably, but output the values of X and Y for
160
+ //! better debugging. Only active if NDEBUG is not defined.
161
+ #ifdef NDEBUG
162
+ #define tlx_assert_equal(X, Y)
163
+ #else
164
+ #define tlx_assert_equal(X, Y) die_unequal(X, Y)
165
+ #endif
166
+
167
+ //! Check that X == Y or die miserably, but output the values of X and Y for
168
+ //! better debugging. Same as tlx_die_unequal() except the user additionally
169
+ //! pass a message.
170
+ #define tlx_die_verbose_unequal(X, Y, msg) \
171
+ do \
172
+ { \
173
+ auto x__ = (X); /* NOLINT */ \
174
+ auto y__ = (Y); /* NOLINT */ \
175
+ if (!::tlx::die_equal_compare(x__, y__)) \
176
+ { \
177
+ tlx_die_with_sstream("DIE-UNEQUAL: " #X " != " #Y " : " \
178
+ "\"" \
179
+ << x__ << "\" != \"" << y__ << "\"\n" \
180
+ << msg << '\n'); \
181
+ } \
182
+ } while (false)
183
+
184
+ /******************************************************************************/
185
+ // die_unequal_eps()
186
+
187
+ //! simple replacement for std::abs
188
+ template <typename Type>
189
+ inline Type die_unequal_eps_abs(const Type& t)
190
+ {
191
+ return t < 0 ? -t : t;
192
+ }
193
+
194
+ //! helper method to compare two values in die_unequal_eps()
195
+ template <typename TypeA, typename TypeB>
196
+ inline bool die_equal_eps_compare(TypeA x, TypeB y, double eps)
197
+ {
198
+ // special case for NAN
199
+ return x != x ? y != y : die_unequal_eps_abs(x - y) <= eps;
200
+ }
201
+
202
+ //! Check that ABS(X - Y) <= eps or die miserably, but output the values of X
203
+ //! and Y for better debugging.
204
+ #define tlx_die_unequal_eps(X, Y, eps) \
205
+ do \
206
+ { \
207
+ auto x__ = (X); /* NOLINT */ \
208
+ auto y__ = (Y); /* NOLINT */ \
209
+ if (!::tlx::die_equal_eps_compare(x__, y__, eps)) \
210
+ { \
211
+ tlx_die("DIE-UNEQUAL-EPS: " #X " != " #Y " : " \
212
+ << std::setprecision(18) << "\"" << x__ << "\" != \"" \
213
+ << y__ << "\""); \
214
+ } \
215
+ } while (false)
216
+
217
+ //! Check that ABS(X - Y) <= eps or die miserably, but output the values of X
218
+ //! and Y for better debugging. Same as tlx_die_unequal_eps() except the user
219
+ //! additionally passes a message.
220
+ #define tlx_die_verbose_unequal_eps(X, Y, eps, msg) \
221
+ do \
222
+ { \
223
+ auto x__ = (X); /* NOLINT */ \
224
+ auto y__ = (Y); /* NOLINT */ \
225
+ if (!::tlx::die_equal_eps_compare(x__, y__, eps)) \
226
+ { \
227
+ tlx_die("DIE-UNEQUAL-EPS: " #X " != " #Y " : " \
228
+ << std::setprecision(18) << "\"" << x__ << "\" != \"" \
229
+ << y__ << "\"\n" \
230
+ << msg << '\n'); \
231
+ } \
232
+ } while (false)
233
+
234
+ //! Check that ABS(X - Y) <= 0.000001 or die miserably, but output the values of
235
+ //! X and Y for better debugging.
236
+ #define tlx_die_unequal_eps6(X, Y) die_unequal_eps(X, Y, 1e-6)
237
+
238
+ //! Check that ABS(X - Y) <= 0.000001 or die miserably, but output the values of
239
+ //! X and Y for better debugging. Same as tlx_die_unequal_eps6() except the user
240
+ //! additionally passes a message.
241
+ #define tlx_die_verbose_unequal_eps6(X, Y, msg) \
242
+ die_verbose_unequal_eps(X, Y, 1e-6, msg)
243
+
244
+ /******************************************************************************/
245
+ // die_equal()
246
+
247
+ //! Die miserably if X == Y, but first output the values of X and Y for better
248
+ //! debugging.
249
+ #define tlx_die_equal(X, Y) \
250
+ do \
251
+ { \
252
+ auto x__ = (X); /* NOLINT */ \
253
+ auto y__ = (Y); /* NOLINT */ \
254
+ if (::tlx::die_equal_compare(x__, y__)) \
255
+ { \
256
+ tlx_die_with_sstream("DIE-EQUAL: " #X " == " #Y " : " \
257
+ "\"" \
258
+ << x__ << "\" == \"" << y__ << "\""); \
259
+ } \
260
+ } while (false)
261
+
262
+ //! Die miserably if X == Y, but first output the values of X and Y for better
263
+ //! debugging. Only active if NDEBUG is not defined.
264
+ #ifdef NDEBUG
265
+ #define tlx_assert_unequal(X, Y)
266
+ #else
267
+ #define tlx_assert_unequal(X, Y) die_equal(X, Y)
268
+ #endif
269
+
270
+ //! Die miserably if X == Y, but first output the values of X and Y for better
271
+ //! debugging. Same as tlx_die_equal() except the user additionally passes a
272
+ //! message.
273
+ #define tlx_die_verbose_equal(X, Y, msg) \
274
+ do \
275
+ { \
276
+ auto x__ = (X); /* NOLINT */ \
277
+ auto y__ = (Y); /* NOLINT */ \
278
+ if (::tlx::die_equal_compare(x__, y__)) \
279
+ { \
280
+ tlx_die_with_sstream("DIE-EQUAL: " #X " == " #Y " : " \
281
+ "\"" \
282
+ << x__ << "\" == \"" << y__ << "\"\n" \
283
+ << msg << '\n'); \
284
+ } \
285
+ } while (false)
286
+
287
+ /******************************************************************************/
288
+ // die_unless_throws()
289
+
290
+ //! Define to check that [code] throws and exception of given type
291
+ #define tlx_die_unless_throws(code, exception_type) \
292
+ do \
293
+ { \
294
+ try \
295
+ { \
296
+ code; \
297
+ } \
298
+ catch (const exception_type&) \
299
+ { \
300
+ break; \
301
+ } \
302
+ ::tlx::die_with_message("DIE-UNLESS-THROWS: " #code \
303
+ " - NO EXCEPTION " #exception_type, \
304
+ __FILE__, __LINE__); \
305
+ } while (false)
306
+
307
+ } // namespace tlx
308
+
309
+ #endif // !TLX_DIE_CORE_HEADER
310
+
311
+ /******************************************************************************/
@@ -0,0 +1,106 @@
1
+ /*******************************************************************************
2
+ * tlx/die.hpp
3
+ *
4
+ * Part of tlx - http://panthema.net/tlx
5
+ *
6
+ * Copyright (C) 2018 Timo Bingmann <tb@panthema.net>
7
+ *
8
+ * All rights reserved. Published under the Boost Software License, Version 1.0
9
+ ******************************************************************************/
10
+
11
+ #ifndef TLX_DIE_HEADER
12
+ #define TLX_DIE_HEADER
13
+
14
+ #include <tlx/die/core.hpp>
15
+
16
+ namespace tlx {
17
+
18
+ /******************************************************************************/
19
+ // die macros
20
+
21
+ //! Instead of std::terminate(), throw the output the message via an exception.
22
+ #define die(msg) tlx_die(msg)
23
+
24
+ //! Check condition X and die miserably if false. Same as assert() except this
25
+ //! is also active in Release mode.
26
+ #define die_unless(X) tlx_die_unless(X)
27
+
28
+ //! Check condition X and die miserably if true. Opposite of assert() except
29
+ //! this is also active in Release mode.
30
+ #define die_if(X) tlx_die_if(X)
31
+
32
+ //! Check condition X and die miserably if false. Same as die_unless() except
33
+ //! the user additionally passes a message.
34
+ #define die_verbose_unless(X, msg) tlx_die_verbose_unless(X, msg)
35
+
36
+ //! Check condition X and die miserably if false. Same as die_if() except the
37
+ //! the user additionally passes a message.
38
+ #define die_verbose_if(X, msg) tlx_die_verbose_if(X, msg)
39
+
40
+ /******************************************************************************/
41
+ // die_unequal()
42
+
43
+ //! Check that X == Y or die miserably, but output the values of X and Y for
44
+ //! better debugging.
45
+ #define die_unequal(X, Y) tlx_die_unequal(X, Y)
46
+
47
+ //! Check that X == Y or die miserably, but output the values of X and Y for
48
+ //! better debugging. Only active if NDEBUG is not defined.
49
+ #define assert_equal(X, Y) tlx_assert_equal(X, Y)
50
+
51
+ //! Check that X == Y or die miserably, but output the values of X and Y for
52
+ //! better debugging. Same as die_unequal() except the user additionally passes
53
+ //! a message.
54
+ #define die_verbose_unequal(X, Y, msg) tlx_die_verbose_unequal(X, Y, msg)
55
+
56
+ /******************************************************************************/
57
+ // die_unequal_eps()
58
+
59
+ //! Check that ABS(X - Y) <= eps or die miserably, but output the values of X
60
+ //! and Y for better debugging.
61
+ #define die_unequal_eps(X, Y, eps) tlx_die_unequal_eps(X, Y, eps)
62
+
63
+ //! Check that ABS(X - Y) <= eps or die miserably, but output the values of X
64
+ //! and Y for better debugging. Same as die_unequal_eps() except the user
65
+ //! additionally passes a message.
66
+ #define die_verbose_unequal_eps(X, Y, eps, msg) \
67
+ tlx_die_verbose_unequal_eps(X, Y, eps, msg)
68
+
69
+ //! Check that ABS(X - Y) <= 0.000001 or die miserably, but output the values of
70
+ //! X and Y for better debugging.
71
+ #define die_unequal_eps6(X, Y) tlx_die_unequal_eps6(X, Y)
72
+
73
+ //! Check that ABS(X - Y) <= 0.000001 or die miserably, but output the values of
74
+ //! X and Y for better debugging. Same as die_unequal_eps6() except the user
75
+ //! additionally passes a message.
76
+ #define die_verbose_unequal_eps6(X, Y, msg) \
77
+ tlx_die_verbose_unequal_eps6(X, Y, msg)
78
+
79
+ /******************************************************************************/
80
+ // die_equal()
81
+
82
+ //! Die miserably if X == Y, but first output the values of X and Y for better
83
+ //! debugging.
84
+ #define die_equal(X, Y) tlx_die_equal(X, Y)
85
+
86
+ //! Die miserably if X == Y, but first output the values of X and Y for better
87
+ //! debugging. Only active if NDEBUG is not defined.
88
+ #define assert_unequal(X, Y) tlx_assert_unequal(X, Y)
89
+
90
+ //! Die miserably if X == Y, but first output the values of X and Y for better
91
+ //! debugging. Same as die_equal() except the user additionally passes a
92
+ //! message.
93
+ #define die_verbose_equal(X, Y, msg) tlx_die_verbose_equal(X, Y, msg)
94
+
95
+ /******************************************************************************/
96
+ // die_unless_throws()
97
+
98
+ //! Define to check that [code] throws and exception of given type
99
+ #define die_unless_throws(code, exception_type) \
100
+ tlx_die_unless_throws(code, exception_type)
101
+
102
+ } // namespace tlx
103
+
104
+ #endif // !TLX_DIE_HEADER
105
+
106
+ /******************************************************************************/
@@ -0,0 +1,81 @@
1
+ /*******************************************************************************
2
+ * tlx/digest/md5.hpp
3
+ *
4
+ * Public domain implementation of MD-5 processor. Based on LibTomCrypt from
5
+ * https://github.com/libtom/libtomcrypt.git
6
+ *
7
+ * Part of tlx - http://panthema.net/tlx
8
+ *
9
+ * Copyright (C) 2018-2024 Timo Bingmann <tb@panthema.net>
10
+ *
11
+ * All rights reserved. Published under the Boost Software License, Version 1.0
12
+ ******************************************************************************/
13
+
14
+ #ifndef TLX_DIGEST_MD5_HEADER
15
+ #define TLX_DIGEST_MD5_HEADER
16
+
17
+ #include <tlx/container/string_view.hpp>
18
+ #include <cstddef>
19
+ #include <cstdint>
20
+ #include <string>
21
+
22
+ namespace tlx {
23
+
24
+ //! \addtogroup tlx_digest
25
+ //! \{
26
+
27
+ /*!
28
+ * MD-5 processor without external dependencies.
29
+ */
30
+ class MD5
31
+ {
32
+ public:
33
+ //! construct empty object.
34
+ MD5();
35
+ //! construct context and process data range
36
+ MD5(const void* data, std::uint32_t size);
37
+ //! construct context and process string
38
+ explicit MD5(tlx::string_view str);
39
+
40
+ //! process more data
41
+ void process(const void* data, std::uint32_t size);
42
+ //! process more data
43
+ void process(tlx::string_view str);
44
+
45
+ //! digest length in bytes
46
+ static constexpr size_t kDigestLength = 16;
47
+
48
+ //! finalize computation and output 16 byte (128 bit) digest
49
+ void finalize(void* digest);
50
+
51
+ //! finalize computation and return 16 byte (128 bit) digest
52
+ std::string digest();
53
+ //! finalize computation and return 16 byte (128 bit) digest hex encoded
54
+ std::string digest_hex();
55
+ //! finalize computation and return 16 byte (128 bit) digest upper-case hex
56
+ std::string digest_hex_uc();
57
+
58
+ private:
59
+ std::uint64_t length_ = 0;
60
+ std::uint32_t state_[4];
61
+ std::uint32_t curlen_ = 0;
62
+ std::uint8_t buf_[64];
63
+ };
64
+
65
+ //! process data and return 16 byte (128 bit) digest hex encoded
66
+ std::string md5_hex(const void* data, std::uint32_t size);
67
+ //! process data and return 16 byte (128 bit) digest hex encoded
68
+ std::string md5_hex(tlx::string_view str);
69
+
70
+ //! process data and return 16 byte (128 bit) digest upper-case hex encoded
71
+ std::string md5_hex_uc(const void* data, std::uint32_t size);
72
+ //! process data and return 16 byte (128 bit) digest upper-case hex encoded
73
+ std::string md5_hex_uc(tlx::string_view str);
74
+
75
+ //! \}
76
+
77
+ } // namespace tlx
78
+
79
+ #endif // !TLX_DIGEST_MD5_HEADER
80
+
81
+ /******************************************************************************/
@@ -0,0 +1,81 @@
1
+ /*******************************************************************************
2
+ * tlx/digest/sha1.hpp
3
+ *
4
+ * Public domain implementation of SHA-1 processor. Based on LibTomCrypt from
5
+ * https://github.com/libtom/libtomcrypt.git
6
+ *
7
+ * Part of tlx - http://panthema.net/tlx
8
+ *
9
+ * Copyright (C) 2018-2024 Timo Bingmann <tb@panthema.net>
10
+ *
11
+ * All rights reserved. Published under the Boost Software License, Version 1.0
12
+ ******************************************************************************/
13
+
14
+ #ifndef TLX_DIGEST_SHA1_HEADER
15
+ #define TLX_DIGEST_SHA1_HEADER
16
+
17
+ #include <tlx/container/string_view.hpp>
18
+ #include <cstddef>
19
+ #include <cstdint>
20
+ #include <string>
21
+
22
+ namespace tlx {
23
+
24
+ //! \addtogroup tlx_digest
25
+ //! \{
26
+
27
+ /*!
28
+ * SHA-1 processor without external dependencies.
29
+ */
30
+ class SHA1
31
+ {
32
+ public:
33
+ //! construct empty object.
34
+ SHA1();
35
+ //! construct context and process data range
36
+ SHA1(const void* data, std::uint32_t size);
37
+ //! construct context and process string
38
+ explicit SHA1(tlx::string_view str);
39
+
40
+ //! process more data
41
+ void process(const void* data, std::uint32_t size);
42
+ //! process more data
43
+ void process(tlx::string_view str);
44
+
45
+ //! digest length in bytes
46
+ static constexpr size_t kDigestLength = 20;
47
+
48
+ //! finalize computation and output 20 byte (160 bit) digest
49
+ void finalize(void* digest);
50
+
51
+ //! finalize computation and return 20 byte (160 bit) digest
52
+ std::string digest();
53
+ //! finalize computation and return 20 byte (160 bit) digest hex encoded
54
+ std::string digest_hex();
55
+ //! finalize computation and return 20 byte (160 bit) digest upper-case hex
56
+ std::string digest_hex_uc();
57
+
58
+ private:
59
+ std::uint64_t length_ = 0;
60
+ std::uint32_t state_[5];
61
+ std::uint32_t curlen_ = 0;
62
+ std::uint8_t buf_[64];
63
+ };
64
+
65
+ //! process data and return 20 byte (160 bit) digest hex encoded
66
+ std::string sha1_hex(const void* data, std::uint32_t size);
67
+ //! process data and return 20 byte (160 bit) digest hex encoded
68
+ std::string sha1_hex(tlx::string_view str);
69
+
70
+ //! process data and return 20 byte (160 bit) digest upper-case hex encoded
71
+ std::string sha1_hex_uc(const void* data, std::uint32_t size);
72
+ //! process data and return 20 byte (160 bit) digest upper-case hex encoded
73
+ std::string sha1_hex_uc(tlx::string_view str);
74
+
75
+ //! \}
76
+
77
+ } // namespace tlx
78
+
79
+ #endif // !TLX_DIGEST_SHA1_HEADER
80
+
81
+ /******************************************************************************/
@@ -0,0 +1,81 @@
1
+ /*******************************************************************************
2
+ * tlx/digest/sha256.hpp
3
+ *
4
+ * Public domain implementation of SHA-256 (SHA-2) processor. Copied from
5
+ * https://github.com/kalven/sha-2, which is based on LibTomCrypt.
6
+ *
7
+ * Part of tlx - http://panthema.net/tlx
8
+ *
9
+ * Copyright (C) 2018-2024 Timo Bingmann <tb@panthema.net>
10
+ *
11
+ * All rights reserved. Published under the Boost Software License, Version 1.0
12
+ ******************************************************************************/
13
+
14
+ #ifndef TLX_DIGEST_SHA256_HEADER
15
+ #define TLX_DIGEST_SHA256_HEADER
16
+
17
+ #include <tlx/container/string_view.hpp>
18
+ #include <cstddef>
19
+ #include <cstdint>
20
+ #include <string>
21
+
22
+ namespace tlx {
23
+
24
+ //! \addtogroup tlx_digest
25
+ //! \{
26
+
27
+ /*!
28
+ * SHA-256 processor without external dependencies.
29
+ */
30
+ class SHA256
31
+ {
32
+ public:
33
+ //! construct empty object.
34
+ SHA256();
35
+ //! construct context and process data range
36
+ SHA256(const void* data, std::uint32_t size);
37
+ //! construct context and process string
38
+ explicit SHA256(tlx::string_view str);
39
+
40
+ //! process more data
41
+ void process(const void* data, std::uint32_t size);
42
+ //! process more data
43
+ void process(tlx::string_view str);
44
+
45
+ //! digest length in bytes
46
+ static constexpr size_t kDigestLength = 32;
47
+
48
+ //! finalize computation and output 32 byte (256 bit) digest
49
+ void finalize(void* digest);
50
+
51
+ //! finalize computation and return 32 byte (256 bit) digest
52
+ std::string digest();
53
+ //! finalize computation and return 32 byte (256 bit) digest hex encoded
54
+ std::string digest_hex();
55
+ //! finalize computation and return 32 byte (256 bit) digest upper-case hex
56
+ std::string digest_hex_uc();
57
+
58
+ private:
59
+ std::uint64_t length_ = 0;
60
+ std::uint32_t state_[8];
61
+ std::uint32_t curlen_ = 0;
62
+ std::uint8_t buf_[64];
63
+ };
64
+
65
+ //! process data and return 32 byte (256 bit) digest hex encoded
66
+ std::string sha256_hex(const void* data, std::uint32_t size);
67
+ //! process data and return 32 byte (256 bit) digest hex encoded
68
+ std::string sha256_hex(tlx::string_view str);
69
+
70
+ //! process data and return 32 byte (256 bit) digest upper-case hex encoded
71
+ std::string sha256_hex_uc(const void* data, std::uint32_t size);
72
+ //! process data and return 32 byte (256 bit) digest upper-case hex encoded
73
+ std::string sha256_hex_uc(tlx::string_view str);
74
+
75
+ //! \}
76
+
77
+ } // namespace tlx
78
+
79
+ #endif // !TLX_DIGEST_SHA256_HEADER
80
+
81
+ /******************************************************************************/