@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,44 @@
1
+ /*
2
+ * JaccardIndex.hpp
3
+ *
4
+ * Created on: 23.03.2015
5
+ * Author: Kolja Esders
6
+ */
7
+
8
+ #ifndef NETWORKIT_LINKPREDICTION_JACCARD_INDEX_HPP_
9
+ #define NETWORKIT_LINKPREDICTION_JACCARD_INDEX_HPP_
10
+
11
+ #include <networkit/linkprediction/LinkPredictor.hpp>
12
+ #include <networkit/linkprediction/NeighborhoodUtility.hpp>
13
+
14
+ namespace NetworKit {
15
+
16
+ /**
17
+ * @ingroup linkprediction
18
+ *
19
+ * Implementation of the Jaccard index which normalizes the Common Neighbors Index.
20
+ * This is done through dividing the number of common neighbors by the number of nodes
21
+ * in the neighboorhood-union.
22
+ */
23
+ class JaccardIndex final : public LinkPredictor {
24
+ /**
25
+ * Returns the Jaccard index for the given node-pair (@a u, @a v).
26
+ * @param u First node
27
+ * @param v Second node
28
+ * @return the Jaccard index for the given node-pair (@a u, @a v)
29
+ */
30
+ double runImpl(node u, node v) override {
31
+ const auto unionSize = NeighborhoodUtility::getNeighborsUnion(*G, u, v).size();
32
+ if (unionSize == 0) {
33
+ return 0;
34
+ }
35
+ return 1.0 * NeighborhoodUtility::getCommonNeighbors(*G, u, v).size() / unionSize;
36
+ }
37
+
38
+ public:
39
+ using LinkPredictor::LinkPredictor;
40
+ };
41
+
42
+ } // namespace NetworKit
43
+
44
+ #endif // NETWORKIT_LINKPREDICTION_JACCARD_INDEX_HPP_
@@ -0,0 +1,84 @@
1
+ /*
2
+ * KatzIndex.hpp
3
+ *
4
+ * Created on: 30.01.2015
5
+ * Author: Kolja Esders
6
+ */
7
+
8
+ #ifndef NETWORKIT_LINKPREDICTION_KATZ_INDEX_HPP_
9
+ #define NETWORKIT_LINKPREDICTION_KATZ_INDEX_HPP_
10
+
11
+ #include <unordered_map>
12
+
13
+ #include <networkit/linkprediction/LinkPredictor.hpp>
14
+
15
+ namespace NetworKit {
16
+
17
+ /**
18
+ * @ingroup linkprediction
19
+ *
20
+ * Implementation of the Katz index.
21
+ * Katz index assigns a pair of nodes a similarity score
22
+ * that is based on the sum of the weighted number of paths of length l
23
+ * where l is smaller than a given limit.
24
+ */
25
+ class KatzIndex final : public LinkPredictor {
26
+ count maxPathLength; //!< Maximal length of the paths to consider
27
+
28
+ double dampingValue; //!< Damping factor in (0,1) used to exponentially damp every addend of the
29
+ //!< sum
30
+
31
+ node lastStartNode; //!< Node at which the algorithm started at the last call
32
+
33
+ std::unordered_map<node, double>
34
+ lastScores; //!< Stores the last generated scores from the lastStartNode
35
+
36
+ std::vector<double>
37
+ dampingFactors; //!< Stores precalculated damping factors to increase performance
38
+
39
+ // Helper method used to access the score for a given node-pair. Checks which of the given nodes
40
+ // was used as the starting node and uses the other node to access the last scores generated.
41
+ // Defaults to 0.0 if no score could be found.
42
+ double getScore(node u, node v) const;
43
+
44
+ /**
45
+ * Returns the similarity score for the given node-pair based on the Katz index specified during
46
+ * construction. The algorithm considers all paths starting at the node with the smaller degree
47
+ * except the algorithm started at the other node at the last call.
48
+ * @param u First node
49
+ * @param v Second node
50
+ * @return the similarity score of the given node-pair calculated by the specified Katz index
51
+ */
52
+ double runImpl(node u, node v) override;
53
+
54
+ /**
55
+ * Calculated the damping factors for every path length smaller or equal to maxPathLength.
56
+ * This can be used to cache damping factors to increase performance through reuse.
57
+ * The results will be stored in dampingFactors and dampingFactors[0] is always 1.
58
+ */
59
+ void calcDampingFactors();
60
+
61
+ public:
62
+ /**
63
+ * @param maxPathLength Maximal length of the paths to consider
64
+ * @param dampingValue Used to exponentially damp every addend of the sum. Should be in (0, 1]
65
+ */
66
+ explicit KatzIndex(count maxPathLength = 5, double dampingValue = 0.005);
67
+
68
+ /**
69
+ * @param G The graph to operate on
70
+ * @param maxPathLength Maximal length of the paths to consider
71
+ * @param dampingValue Used to exponentially damp every addend of the sum. Should be in (0, 1]
72
+ */
73
+ explicit KatzIndex(const Graph &G, count maxPathLength = 5, double dampingValue = 0.005);
74
+
75
+ // Overriding this method is necessary as the implementation of the Katz index makes use
76
+ // of caching. This makes run() not thread-safe. To still achieve performance gains
77
+ // we split the nodePairs into subsets and create a new Katz instance for every subset.
78
+ std::vector<LinkPredictor::prediction>
79
+ runOn(std::vector<std::pair<node, node>> nodePairs) override;
80
+ };
81
+
82
+ } // namespace NetworKit
83
+
84
+ #endif // NETWORKIT_LINKPREDICTION_KATZ_INDEX_HPP_
@@ -0,0 +1,98 @@
1
+ /*
2
+ * LinkPredictor.hpp
3
+ *
4
+ * Created on: 28.02.2015
5
+ * Author: Kolja Esders
6
+ */
7
+
8
+ #ifndef NETWORKIT_LINKPREDICTION_LINK_PREDICTOR_HPP_
9
+ #define NETWORKIT_LINKPREDICTION_LINK_PREDICTOR_HPP_
10
+
11
+ #include <memory>
12
+
13
+ #include <networkit/graph/Graph.hpp>
14
+
15
+ namespace NetworKit {
16
+
17
+ /**
18
+ * @ingroup linkprediction
19
+ *
20
+ * Abstract base class for link predictors.
21
+ */
22
+ class LinkPredictor {
23
+ public:
24
+ // Declare typedef in advance for use in the protected section
25
+ using prediction = std::pair<std::pair<node, node>, double>; //!< Type of predictions
26
+
27
+ private:
28
+ /**
29
+ * Subclasses implement this private method to inject the custom predictor-code.
30
+ * Subclasses don't have to check whether the arguments are valid or a graph is set.
31
+ * @param u First node in graph
32
+ * @param v Second node in graph
33
+ * @return a prediction-score indicating the likelihood of a future link between the given nodes
34
+ */
35
+ virtual double runImpl(node u, node v) = 0;
36
+
37
+ protected:
38
+ const Graph *G; //!< Graph to operate on
39
+
40
+ bool validCache; //!< Indicates whether a possibly used cache is valid
41
+
42
+ public:
43
+ LinkPredictor();
44
+
45
+ /**
46
+ *
47
+ * @param G The graph to work on
48
+ */
49
+ explicit LinkPredictor(const Graph &G);
50
+
51
+ /**
52
+ * Default destructor.
53
+ */
54
+ virtual ~LinkPredictor() = default;
55
+
56
+ /**
57
+ * Sets the graph to work on.
58
+ * @param newGraph The graph to work on
59
+ */
60
+ virtual void setGraph(const Graph &newGraph);
61
+
62
+ /**
63
+ * Returns a score indicating the likelihood of a future link between the given nodes.
64
+ * Prior to calling this method a graph should be provided through the constructor or
65
+ * by calling setGraph. Note that only undirected graphs are accepted.
66
+ * There is also no lower or upper bound for scores and the actual range of values depends
67
+ * on the specific link predictor implementation. In case @a u == @a v a 0 is returned.
68
+ * If suitable this method might make use of parallelization to enhance performance.
69
+ * @param u First node in graph
70
+ * @param v Second node in graph
71
+ * @return a prediction-score indicating the likelihood of a future link between the given nodes
72
+ */
73
+ virtual double run(node u, node v);
74
+
75
+ /**
76
+ * Executes the run-method on al given @a nodePairs and returns a vector of predictions.
77
+ * The result is a vector of pairs where the first element is the node-pair and it's second
78
+ * element the corresponding score generated by the run-method. The method makes use of
79
+ * parallelization.
80
+ * @param nodePairs Node-pairs to run the predictor on
81
+ * @return a vector of pairs containing the given node-pair as the first element and it's
82
+ * corresponding score as the second element. The vector is sorted ascendingly by node-pair
83
+ */
84
+ virtual std::vector<prediction> runOn(std::vector<std::pair<node, node>> nodePairs);
85
+
86
+ /**
87
+ * Runs the link predictor on all currently unconnected node-pairs.
88
+ * Possible self-loops are also excluded. The method makes use of parallelization.
89
+ * @return a vector of pairs containing all currently unconnected node-pairs as the first
90
+ * elements and the corresponding scores as the second elements. The vector is sorted
91
+ * ascendingly by node-pair
92
+ */
93
+ virtual std::vector<prediction> runAll();
94
+ };
95
+
96
+ } // namespace NetworKit
97
+
98
+ #endif // NETWORKIT_LINKPREDICTION_LINK_PREDICTOR_HPP_
@@ -0,0 +1,56 @@
1
+ /*
2
+ * LinkThresholder.hpp
3
+ *
4
+ * Created on: 01.04.2015
5
+ * Author: Kolja Esders
6
+ */
7
+
8
+ #ifndef NETWORKIT_LINKPREDICTION_LINK_THRESHOLDER_HPP_
9
+ #define NETWORKIT_LINKPREDICTION_LINK_THRESHOLDER_HPP_
10
+
11
+ #include <networkit/linkprediction/LinkPredictor.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ /**
16
+ * @ingroup linkprediction
17
+ *
18
+ * Filters given predictions based on some criterion and returns a vector of
19
+ * node-pairs that fulfill the given criterion.
20
+ * This can be used to determine which node-pairs should actually be interpreted
21
+ * as future links and which shouldn't.
22
+ */
23
+ namespace LinkThresholder {
24
+
25
+ /**
26
+ * Returns the node-pairs whose scores are at least equal to the given @a minScore.
27
+ * @param predictions Predictions to filter
28
+ * @param minScore Minimal score that the returned node-pairs should have
29
+ * @return a vector of node-pairs whose scores are at least equal to the given @a minScore
30
+ */
31
+ std::vector<std::pair<node, node>>
32
+ byScore(const std::vector<LinkPredictor::prediction> &predictions, double minScore);
33
+
34
+ /**
35
+ * Returns the first @a numLinks highest scored node-pairs.
36
+ * @param predictions Predictions to filter
37
+ * @param numLinks Number of top-scored node-pairs to return
38
+ * @return the first @a numLinks highest scored node-pairs
39
+ */
40
+ std::vector<std::pair<node, node>>
41
+ byCount(const std::vector<LinkPredictor::prediction> &predictions, count numLinks);
42
+
43
+ /**
44
+ * Returns the first @a percentageLinks percent of the highest scores node-pairs.
45
+ * @param predictions Predictions to filter
46
+ * @param percentageLinks Percentage of highest scored node-pairs to return
47
+ * @return the first @a percentageLinks percent of the highest scores node-pairs
48
+ */
49
+ std::vector<std::pair<node, node>>
50
+ byPercentage(const std::vector<LinkPredictor::prediction> &predictions, double percentageLinks);
51
+
52
+ } // namespace LinkThresholder
53
+
54
+ } // namespace NetworKit
55
+
56
+ #endif // NETWORKIT_LINKPREDICTION_LINK_THRESHOLDER_HPP_
@@ -0,0 +1,60 @@
1
+ /*
2
+ * MissingLinksFinder.hpp
3
+ *
4
+ * Created on: 20.03.2015
5
+ * Author: Kolja Esders
6
+ */
7
+
8
+ #ifndef NETWORKIT_LINKPREDICTION_MISSING_LINKS_FINDER_HPP_
9
+ #define NETWORKIT_LINKPREDICTION_MISSING_LINKS_FINDER_HPP_
10
+
11
+ #include <utility>
12
+
13
+ #include <networkit/graph/Graph.hpp>
14
+
15
+ namespace NetworKit {
16
+
17
+ /**
18
+ * @ingroup linkprediction
19
+ *
20
+ * Allows the user to find missing links in the given graph.
21
+ * The absent links to find are narrowed down by providing a distance
22
+ * that the nodes of the missing links should have.
23
+ * For example in case of distance 2 only node-pairs that would close
24
+ * a triangle in the given graph get returned.
25
+ */
26
+ class MissingLinksFinder final {
27
+ const Graph *G; //!< The graph to find missing links in
28
+
29
+ public:
30
+ /**
31
+ *
32
+ * @param G The graph to find missing links in
33
+ */
34
+ explicit MissingLinksFinder(const Graph &G);
35
+
36
+ /**
37
+ * Returns all missing links in the graph that have distance @a k.
38
+ * Note that a distance of @a k actually means that there are @a k different links
39
+ * on the path of the two nodes that are connected through that path.
40
+ * @param k Distance of the absent links
41
+ * @return an ascendingly sorted vector of node-pairs where there is a missing link of distance
42
+ * @a k between the two nodes
43
+ */
44
+ std::vector<std::pair<node, node>> findAtDistance(count k);
45
+
46
+ /**
47
+ * Returns all missing links in the graph that have distance @a k and are connected to @a u.
48
+ * Note that a distance of @a k actually means that there are @a k different links
49
+ * on the path of the two nodes that are connected through that path.
50
+ * @param u Node to find missing links from
51
+ * @param k Distance of the absent links
52
+ * @return a vector of node-pairs where there is a missing link of distance @a k
53
+ * between the given node @a u and another node in the graph
54
+ */
55
+ std::vector<std::pair<node, node>> findFromNode(node u, count k);
56
+ };
57
+
58
+ } // namespace NetworKit
59
+
60
+ #endif // NETWORKIT_LINKPREDICTION_MISSING_LINKS_FINDER_HPP_
@@ -0,0 +1,42 @@
1
+ /*
2
+ * NeighborhoodDistanceIndex.hpp
3
+ *
4
+ * Created on: 24.06.2013
5
+ * Authors: cls, Kolja Esders
6
+ */
7
+
8
+ #ifndef NETWORKIT_LINKPREDICTION_NEIGHBORHOOD_DISTANCE_INDEX_HPP_
9
+ #define NETWORKIT_LINKPREDICTION_NEIGHBORHOOD_DISTANCE_INDEX_HPP_
10
+
11
+ #include <cmath>
12
+
13
+ #include <networkit/linkprediction/LinkPredictor.hpp>
14
+
15
+ namespace NetworKit {
16
+
17
+ /**
18
+ * @ingroup linkprediction
19
+ *
20
+ * Assigns a distance value to pairs of nodes according to the
21
+ * overlap of their neighborhoods.
22
+ */
23
+ class NeighborhoodDistanceIndex final : public LinkPredictor {
24
+ /**
25
+ * Returns the Neighborhood Distance index for the given node-pair (@a u, @a v).
26
+ * @param u First node
27
+ * @param v Second node
28
+ * @return the Neighborhood Distance index for the given node-pair (@a u, @a v)
29
+ */
30
+ double runImpl(node u, node v) override {
31
+ count uNeighborhood = G->degree(u);
32
+ count vNeighborhood = G->degree(v);
33
+ count intersection = NeighborhoodUtility::getCommonNeighbors(*G, u, v).size();
34
+ return ((double)intersection) / (std::sqrt(uNeighborhood * vNeighborhood));
35
+ }
36
+
37
+ public:
38
+ using LinkPredictor::LinkPredictor;
39
+ };
40
+
41
+ } /* namespace NetworKit */
42
+ #endif // NETWORKIT_LINKPREDICTION_NEIGHBORHOOD_DISTANCE_INDEX_HPP_
@@ -0,0 +1,54 @@
1
+ /*
2
+ * NeighborhoodUtility.hpp
3
+ *
4
+ * Created on: 06.04.2015
5
+ * Author: Kolja Esders
6
+ */
7
+
8
+ #ifndef NETWORKIT_LINKPREDICTION_NEIGHBORHOOD_UTILITY_HPP_
9
+ #define NETWORKIT_LINKPREDICTION_NEIGHBORHOOD_UTILITY_HPP_
10
+
11
+ #include <networkit/graph/Graph.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ /**
16
+ * @ingroup linkprediction
17
+ *
18
+ * Provides basic operations on neighborhoods in a given graph.
19
+ */
20
+ class NeighborhoodUtility final {
21
+ /**
22
+ * Sorts and returns the neighborhoods of the nodes @a u and @a v in the given graph @a G.
23
+ * @param G Graph to obtain neighborhoods from
24
+ * @param u First node in the graph
25
+ * @param v Second node in the graph
26
+ * @return the sorted nodes regarding the neighborhoods of the nodes @a u and @a v in the given
27
+ * graph @a G.
28
+ */
29
+ static std::pair<std::vector<node>, std::vector<node>> getSortedNeighborhoods(const Graph &G,
30
+ node u, node v);
31
+
32
+ public:
33
+ /**
34
+ * Returns the union of the neighboorhoods of @a u and @a v.
35
+ * @param G Graph to obtain neighbors-union from
36
+ * @param u First node
37
+ * @param v Second node
38
+ * @return a vector containing all the nodes in the neighborhood-union of @a u and @a v
39
+ */
40
+ static std::vector<node> getNeighborsUnion(const Graph &G, node u, node v);
41
+
42
+ /**
43
+ * Returns a vector containing the node-ids of all common neighbors of @a u and @a v.
44
+ * @param G Graph to obtain common neighbors from
45
+ * @param u First node
46
+ * @param v Second node
47
+ * @return a vector containing the node-ids of all common neighbors of @a u and @a v
48
+ */
49
+ static std::vector<node> getCommonNeighbors(const Graph &G, node u, node v);
50
+ };
51
+
52
+ } // namespace NetworKit
53
+
54
+ #endif // NETWORKIT_LINKPREDICTION_NEIGHBORHOOD_UTILITY_HPP_
@@ -0,0 +1,48 @@
1
+ /*
2
+ * NeighborsMeasureIndex.hpp
3
+ *
4
+ * Created on: 05.04.2015
5
+ * Author: Kolja Esders
6
+ */
7
+
8
+ #ifndef NETWORKIT_LINKPREDICTION_NEIGHBORS_MEASURE_INDEX_HPP_
9
+ #define NETWORKIT_LINKPREDICTION_NEIGHBORS_MEASURE_INDEX_HPP_
10
+
11
+ #include <networkit/linkprediction/LinkPredictor.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ /**
16
+ * @ingroup linkprediction
17
+ *
18
+ * Implementation of the Neighbors Measure Index.
19
+ * This index is also known as Friends Measure and simply returns
20
+ * the number of connections between neighbors of the given nodes u and v.
21
+ */
22
+ class NeighborsMeasureIndex final : public LinkPredictor {
23
+ /**
24
+ * Returns the number of connections between neighbors of @a u and @a v.
25
+ * @param u First node
26
+ * @param v Second node
27
+ * @return the number of connections between neighbors of @a u and @a v
28
+ */
29
+ double runImpl(node u, node v) override {
30
+ double neighborConnections = 0;
31
+ G->forNeighborsOf(u, [&](node uNeighbor) {
32
+ G->forNeighborsOf(v, [&](node vNeighbor) {
33
+ // Don't count self-loops
34
+ if (uNeighbor == vNeighbor || G->hasEdge(uNeighbor, vNeighbor)) {
35
+ ++neighborConnections;
36
+ }
37
+ });
38
+ });
39
+ return neighborConnections;
40
+ }
41
+
42
+ public:
43
+ using LinkPredictor::LinkPredictor;
44
+ };
45
+
46
+ } // namespace NetworKit
47
+
48
+ #endif // NETWORKIT_LINKPREDICTION_NEIGHBORS_MEASURE_INDEX_HPP_
@@ -0,0 +1,40 @@
1
+ /*
2
+ * PrecisionRecallMetric.hpp
3
+ *
4
+ * Created on: 21.03.2015
5
+ * Author: Kolja Esders
6
+ */
7
+
8
+ #ifndef NETWORKIT_LINKPREDICTION_PRECISION_RECALL_METRIC_HPP_
9
+ #define NETWORKIT_LINKPREDICTION_PRECISION_RECALL_METRIC_HPP_
10
+
11
+ #include <networkit/graph/Graph.hpp>
12
+ #include <networkit/linkprediction/EvaluationMetric.hpp>
13
+
14
+ namespace NetworKit {
15
+
16
+ /**
17
+ * @ingroup linkprediction
18
+ *
19
+ * Provides points that define the Precision-Recall curve for a given set of predictions.
20
+ * Based on the generated points the area under the curve can be calculated with the trapzoidal
21
+ * rule.
22
+ */
23
+ class PrecisionRecallMetric final : public EvaluationMetric {
24
+ /**
25
+ * Generates the points for the Precision-Recall curve with respect to the given predictions.
26
+ * The curve assigns every recall-value a corresponding precision as the y-value.
27
+ * In case of a tie regarding multiple y-values for a x-value the smallest (= latest) y-value
28
+ * will be used.
29
+ * @return a pair of vectors where the first vector contains all recall-values and the second
30
+ * vector the corresponding precision-values
31
+ */
32
+ std::pair<std::vector<double>, std::vector<double>> generatePoints() override;
33
+
34
+ public:
35
+ using EvaluationMetric::EvaluationMetric;
36
+ };
37
+
38
+ } // namespace NetworKit
39
+
40
+ #endif // NETWORKIT_LINKPREDICTION_PRECISION_RECALL_METRIC_HPP_
@@ -0,0 +1,66 @@
1
+ /*
2
+ * PredictionsSorter.hpp
3
+ *
4
+ * Created on: 26.04.2015
5
+ * Author: Kolja Esders
6
+ */
7
+
8
+ #ifndef NETWORKIT_LINKPREDICTION_PREDICTIONS_SORTER_HPP_
9
+ #define NETWORKIT_LINKPREDICTION_PREDICTIONS_SORTER_HPP_
10
+
11
+ #include <networkit/linkprediction/LinkPredictor.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ /**
16
+ * @ingroup linkprediction
17
+ *
18
+ * Allows the sorting of predictions by score or node-pair.
19
+ */
20
+ class PredictionsSorter final {
21
+ /**
22
+ * Comparator used to sort predictions descendingly by score and on equality
23
+ * ascendingly by node-pairs which means e.g. (0, 1) < (1, 1) and (0, 0) < (0, 1).
24
+ */
25
+ struct ScoreComp {
26
+ bool operator()(const LinkPredictor::prediction &a,
27
+ const LinkPredictor::prediction &b) const {
28
+ return (a.second > b.second) || (a.second == b.second && a.first < b.first);
29
+ }
30
+ };
31
+
32
+ static ScoreComp ConcreteScoreComp; //!< Comparator instance for score-based comparison
33
+
34
+ /**
35
+ * Comparator used to sort predictions ascendingly by node-pairs.
36
+ */
37
+ struct NodePairComp {
38
+ bool operator()(const LinkPredictor::prediction &a,
39
+ const LinkPredictor::prediction &b) const {
40
+ return a.first < b.first;
41
+ }
42
+ };
43
+
44
+ static NodePairComp
45
+ ConcreteNodePairComp; //!< Comparator instance for node-pair-based comparison
46
+
47
+ public:
48
+ /**
49
+ * Sorts the @a predictions descendingly by score.
50
+ * In case there is a tie the node-pairs are used as a tie-breaker by sorting them
51
+ * ascendingly on the first node and on a tie ascendingly by the second node.
52
+ * @param predictions The predictions to sort
53
+ */
54
+ static void sortByScore(std::vector<LinkPredictor::prediction> &predictions);
55
+
56
+ /**
57
+ * Sorts the @a predictions ascendingly by node-pair.
58
+ * This means for example (0, 0) < (0, 1) and (1, 1) < (1, 0).
59
+ * @param predictions The predictions to sort
60
+ */
61
+ static void sortByNodePair(std::vector<LinkPredictor::prediction> &predictions);
62
+ };
63
+
64
+ } // namespace NetworKit
65
+
66
+ #endif // NETWORKIT_LINKPREDICTION_PREDICTIONS_SORTER_HPP_
@@ -0,0 +1,37 @@
1
+ /*
2
+ * PreferentialAttachmentIndex.hpp
3
+ *
4
+ * Created on: 22.03.2015
5
+ * Author: Kolja Esders
6
+ */
7
+
8
+ #ifndef NETWORKIT_LINKPREDICTION_PREFERENTIAL_ATTACHMENT_INDEX_HPP_
9
+ #define NETWORKIT_LINKPREDICTION_PREFERENTIAL_ATTACHMENT_INDEX_HPP_
10
+
11
+ #include <networkit/linkprediction/LinkPredictor.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ /**
16
+ * @ingroup linkprediction
17
+ *
18
+ * Implementation of the Preferential Attachment Index.
19
+ * The run-method simply calculates the product of the number of nodes in the neighborhoods
20
+ * regarding the given nodes.
21
+ */
22
+ class PreferentialAttachmentIndex final : public LinkPredictor {
23
+ /**
24
+ * Returns the product of the cardinalities of the neighborhoods regarding @a u and @a v.
25
+ * @param u First node
26
+ * @param v Second node
27
+ * @return the product of the cardinalities of the neighborhoods regarding @a u and @a v
28
+ */
29
+ double runImpl(node u, node v) override { return G->degree(u) * G->degree(v); }
30
+
31
+ public:
32
+ using LinkPredictor::LinkPredictor;
33
+ };
34
+
35
+ } // namespace NetworKit
36
+
37
+ #endif // NETWORKIT_LINKPREDICTION_PREFERENTIAL_ATTACHMENT_INDEX_HPP_
@@ -0,0 +1,39 @@
1
+ /*
2
+ * ROCMetric.hpp
3
+ *
4
+ * Created on: 14.03.2015
5
+ * Author: Kolja Esders
6
+ */
7
+
8
+ #ifndef NETWORKIT_LINKPREDICTION_ROC_METRIC_HPP_
9
+ #define NETWORKIT_LINKPREDICTION_ROC_METRIC_HPP_
10
+
11
+ #include <networkit/graph/Graph.hpp>
12
+ #include <networkit/linkprediction/EvaluationMetric.hpp>
13
+
14
+ namespace NetworKit {
15
+
16
+ /**
17
+ * @ingroup linkprediction
18
+ *
19
+ * Provides points that define the Receiver Operating Characteristic curve for a given set of
20
+ * predictions. Based on the generated points the area under the curve can be calculated with the
21
+ * trapzoidal rule.
22
+ */
23
+ class ROCMetric final : public EvaluationMetric {
24
+ /**
25
+ * Generate the points of the Receiver Operating Characteristic curve regarding the previously
26
+ * set predictions. Note that in the case of multiple y-values mapping to the same x-value the
27
+ * highest (=latest) y-value gets picked.
28
+ * @return a pair of vectors where the first vector contains the false positive rates and the
29
+ * second vector the corresponding true positive rates
30
+ */
31
+ std::pair<std::vector<double>, std::vector<double>> generatePoints() override;
32
+
33
+ public:
34
+ using EvaluationMetric::EvaluationMetric;
35
+ };
36
+
37
+ } // namespace NetworKit
38
+
39
+ #endif // NETWORKIT_LINKPREDICTION_ROC_METRIC_HPP_