@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,316 @@
1
+ /*
2
+ * SolverLamg.hpp
3
+ *
4
+ * Created on: 12.01.2015
5
+ * Author: Michael
6
+ */
7
+
8
+ #ifndef NETWORKIT_NUMERICS_LAMG_SOLVER_LAMG_HPP_
9
+ #define NETWORKIT_NUMERICS_LAMG_SOLVER_LAMG_HPP_
10
+
11
+ #include <cmath>
12
+ #include <vector>
13
+
14
+ #include <networkit/algebraic/DenseMatrix.hpp>
15
+ #include <networkit/auxiliary/Timer.hpp>
16
+ #include <networkit/numerics/LAMG/LevelHierarchy.hpp>
17
+ #include <networkit/numerics/Smoother.hpp>
18
+
19
+ namespace NetworKit {
20
+
21
+ /**
22
+ * Status parameters of the solver.
23
+ */
24
+ struct LAMGSolverStatus {
25
+ // in
26
+ count maxIters = std::numeric_limits<count>::max(); // maximum number of iterations
27
+ // Maximum time in milliseconds spent to solve the system
28
+ count maxConvergenceTime = std::numeric_limits<count>::max();
29
+ // Desired reduction of the initial residual (finalResidual <= desiredResReduction *
30
+ // initialResidual)
31
+ double desiredResidualReduction = 1e-8;
32
+ count numPreSmoothIters = 1; // number of pre smoothing iterations
33
+ count numPostSmoothIters = 2; // number of post smoothing iterations
34
+
35
+ // out
36
+ count numIters = 0; // number of iterations needed during solve phase
37
+ double residual = std::numeric_limits<double>::infinity(); // absolute final residual
38
+ bool converged = false; // flag of conversion status
39
+ std::vector<double> residualHistory; // history of absolute residuals
40
+ };
41
+
42
+ /**
43
+ * @ingroup numerics
44
+ * Implements the solve phase of LAMG (Lean Algebraic Multigrid by Livne et al.).
45
+ */
46
+ template <class Matrix>
47
+ class SolverLamg {
48
+ private:
49
+ const LevelHierarchy<Matrix> &hierarchy;
50
+ const Smoother<Matrix> &smoother;
51
+
52
+ // data structures for iterate recombination
53
+ std::vector<std::vector<Vector>> history;
54
+ std::vector<std::vector<Vector>> rHistory;
55
+ std::vector<index> latestIterate;
56
+ std::vector<count> numActiveIterates;
57
+
58
+ // bStages for Elimination Levels
59
+ std::vector<std::vector<Vector>> bStages;
60
+
61
+ void solveCycle(Vector &x, const Vector &b, int finest, LAMGSolverStatus &status);
62
+ void cycle(Vector &x, const Vector &b, int finest, int coarsest, std::vector<count> &numVisits,
63
+ std::vector<Vector> &X, std::vector<Vector> &B, const LAMGSolverStatus &status);
64
+ void saveIterate(index level, const Vector &x, const Vector &r);
65
+ void clearHistory(index level);
66
+ void minRes(index level, Vector &x, const Vector &r) const;
67
+
68
+ public:
69
+ /**
70
+ * Constructs a new solver instance for the specified @a hierarchy. The @a smoother will be used
71
+ * for relaxing and solving the coarser solutions.
72
+ * @param hierarchy Reference to the LevelHierarchy constructed by MultiLevelSetup.
73
+ * @param smoother Reference to a smoother.
74
+ */
75
+ SolverLamg(const LevelHierarchy<Matrix> &hierarchy, const Smoother<Matrix> &smoother)
76
+ : hierarchy(hierarchy), smoother(smoother),
77
+ bStages(hierarchy.size(), std::vector<Vector>()) {}
78
+
79
+ SolverLamg(const SolverLamg<Matrix> &other) = default;
80
+
81
+ SolverLamg(SolverLamg<Matrix> &&other) noexcept = default;
82
+
83
+ virtual ~SolverLamg() = default;
84
+
85
+ SolverLamg &operator=(SolverLamg<Matrix> &&other) noexcept = default;
86
+
87
+ SolverLamg &operator=(const SolverLamg<Matrix> &other) = default;
88
+
89
+ /**
90
+ * Solves the system A*x = b for the given initial @a x and right-hand side @a b. More
91
+ * parameters can be specified in @a status and additional output is also stored in @a status.
92
+ * After the solver finished, the approximate solution is stored in @a x.
93
+ * @param x[out] Reference to the initial guess to the solution and the approximation after the
94
+ * solver finished.
95
+ * @param b The right-hand side vector.
96
+ * @param status Reference to an LAMGSolverStatus.
97
+ */
98
+ void solve(Vector &x, const Vector &b, LAMGSolverStatus &status);
99
+ };
100
+
101
+ template <class Matrix>
102
+ void SolverLamg<Matrix>::solve(Vector &x, const Vector &b, LAMGSolverStatus &status) {
103
+ bStages = std::vector<std::vector<Vector>>(hierarchy.size(), std::vector<Vector>());
104
+ if (hierarchy.size() >= 2) {
105
+ Vector bc = b;
106
+ Vector xc = x;
107
+ int finest = 0;
108
+
109
+ if (hierarchy.getType(1) == ELIMINATION) {
110
+ hierarchy.at(1).restrict(b, bc, bStages[1]);
111
+ if (hierarchy.at(1).getLaplacian().numberOfRows() == 1) {
112
+ x = 0.0;
113
+ return;
114
+ } else {
115
+ hierarchy.at(1).coarseType(x, xc);
116
+ finest = 1;
117
+ }
118
+ }
119
+ solveCycle(xc, bc, finest, status);
120
+
121
+ // interpolate from finest == ELIMINATION level back to actual finest level
122
+ if (finest == 1) {
123
+ hierarchy.at(1).interpolate(xc, x, bStages[1]);
124
+ } else {
125
+ x = xc;
126
+ }
127
+ } else {
128
+ solveCycle(x, b, 0, status);
129
+ }
130
+
131
+ double residual = (b - hierarchy.at(0).getLaplacian() * x).length();
132
+ status.residual = residual;
133
+ }
134
+
135
+ template <class Matrix>
136
+ void SolverLamg<Matrix>::solveCycle(Vector &x, const Vector &b, const int finest,
137
+ LAMGSolverStatus &status) {
138
+ Aux::Timer timer;
139
+ timer.start();
140
+
141
+ // data structures for iterate recombination
142
+ history = std::vector<std::vector<Vector>>(hierarchy.size());
143
+ rHistory = std::vector<std::vector<Vector>>(hierarchy.size());
144
+ latestIterate = std::vector<index>(hierarchy.size(), 0);
145
+ numActiveIterates = std::vector<count>(hierarchy.size(), 0);
146
+ int coarsest = hierarchy.size() - 1;
147
+ std::vector<count> numVisits(coarsest);
148
+ std::vector<Vector> X(hierarchy.size());
149
+ std::vector<Vector> B(hierarchy.size());
150
+
151
+ for (index i = 0; i < hierarchy.size(); ++i) {
152
+ history[i] =
153
+ std::vector<Vector>(MAX_COMBINED_ITERATES, Vector(hierarchy.at(i).getNumberOfNodes()));
154
+ rHistory[i] =
155
+ std::vector<Vector>(MAX_COMBINED_ITERATES, Vector(hierarchy.at(i).getNumberOfNodes()));
156
+ }
157
+
158
+ Vector r = b - hierarchy.at(finest).getLaplacian() * x;
159
+ double residual = r.length();
160
+ double finalResidual = residual * status.desiredResidualReduction;
161
+ double bestResidual = std::numeric_limits<double>::max();
162
+
163
+ count iterations = 0;
164
+ status.residualHistory.emplace_back(residual);
165
+ count noResReduction = 0;
166
+ while (residual > finalResidual && noResReduction < 5 && iterations < status.maxIters
167
+ && timer.elapsedMilliseconds() <= status.maxConvergenceTime) {
168
+ cycle(x, b, finest, coarsest, numVisits, X, B, status);
169
+ r = b - hierarchy.at(finest).getLaplacian() * x;
170
+ residual = r.length();
171
+ status.residualHistory.emplace_back(residual);
172
+ if (residual < bestResidual) {
173
+ noResReduction = 0;
174
+ bestResidual = residual;
175
+ } else {
176
+ ++noResReduction;
177
+ }
178
+ iterations++;
179
+ }
180
+
181
+ timer.stop();
182
+
183
+ status.numIters = iterations;
184
+ status.residual = r.length();
185
+ status.converged = r.length() <= finalResidual;
186
+ }
187
+
188
+ template <class Matrix>
189
+ void SolverLamg<Matrix>::cycle(Vector &x, const Vector &b, const int finest, const int coarsest,
190
+ std::vector<count> &numVisits, std::vector<Vector> &X,
191
+ std::vector<Vector> &B, const LAMGSolverStatus &status) {
192
+ std::fill(numVisits.begin(), numVisits.end(), 0);
193
+ X[finest] = x;
194
+ B[finest] = b;
195
+
196
+ int currLvl = finest;
197
+ int nextLvl = finest;
198
+ double maxVisits = 0.0;
199
+
200
+ saveIterate(currLvl, X[currLvl],
201
+ B[currLvl] - hierarchy.at(currLvl).getLaplacian() * X[currLvl]);
202
+ while (true) {
203
+ if (currLvl == coarsest) {
204
+ nextLvl = currLvl - 1;
205
+ if (currLvl == finest) { // finest level
206
+ X[currLvl] = smoother.relax(hierarchy.at(currLvl).getLaplacian(), B[currLvl],
207
+ X[currLvl], status.numPreSmoothIters);
208
+ } else {
209
+ Vector bCoarse(B[currLvl].getDimension() + 1, 0.0);
210
+ for (index i = 0; i < B[currLvl].getDimension(); ++i) {
211
+ bCoarse[i] = B[currLvl][i];
212
+ }
213
+
214
+ Vector xCoarse = DenseMatrix::LUSolve(hierarchy.getCoarseMatrix(), bCoarse);
215
+ for (index i = 0; i < X[currLvl].getDimension(); ++i) {
216
+ X[currLvl][i] = xCoarse[i];
217
+ }
218
+ }
219
+ } else {
220
+ if (currLvl == finest) {
221
+ maxVisits = 1.0;
222
+ } else {
223
+ maxVisits = hierarchy.cycleIndex(currLvl) * numVisits[currLvl - 1];
224
+ }
225
+
226
+ if (numVisits[currLvl] < static_cast<count>(maxVisits)) {
227
+ nextLvl = currLvl + 1;
228
+ } else {
229
+ nextLvl = currLvl - 1;
230
+ }
231
+ }
232
+
233
+ if (nextLvl < finest)
234
+ break;
235
+
236
+ if (nextLvl > currLvl) { // preProcess
237
+ numVisits[currLvl]++;
238
+
239
+ if (hierarchy.getType(nextLvl) != ELIMINATION) {
240
+ X[currLvl] = smoother.relax(hierarchy.at(currLvl).getLaplacian(), B[currLvl],
241
+ X[currLvl], status.numPreSmoothIters);
242
+ }
243
+
244
+ if (hierarchy.getType(nextLvl) == ELIMINATION) {
245
+ hierarchy.at(nextLvl).restrict(B[currLvl], B[nextLvl], bStages[nextLvl]);
246
+ } else {
247
+ hierarchy.at(nextLvl).restrict(
248
+ B[currLvl] - hierarchy.at(currLvl).getLaplacian() * X[currLvl], B[nextLvl]);
249
+ }
250
+
251
+ hierarchy.at(nextLvl).coarseType(X[currLvl], X[nextLvl]);
252
+
253
+ clearHistory(nextLvl);
254
+ } else { // postProcess
255
+ if (currLvl == coarsest || hierarchy.getType(currLvl + 1) != ELIMINATION) {
256
+ minRes(currLvl, X[currLvl],
257
+ B[currLvl] - hierarchy.at(currLvl).getLaplacian() * X[currLvl]);
258
+ }
259
+
260
+ if (nextLvl > finest) {
261
+ saveIterate(nextLvl, X[nextLvl],
262
+ B[nextLvl] - hierarchy.at(nextLvl).getLaplacian() * X[nextLvl]);
263
+ }
264
+
265
+ if (hierarchy.getType(currLvl) == ELIMINATION) {
266
+ hierarchy.at(currLvl).interpolate(X[currLvl], X[nextLvl], bStages[currLvl]);
267
+ } else {
268
+ Vector xf = X[nextLvl];
269
+ hierarchy.at(currLvl).interpolate(X[currLvl], xf);
270
+ X[nextLvl] += xf;
271
+ }
272
+
273
+ if (hierarchy.getType(currLvl) != ELIMINATION) {
274
+ X[nextLvl] = smoother.relax(hierarchy.at(nextLvl).getLaplacian(), B[nextLvl],
275
+ X[nextLvl], status.numPostSmoothIters);
276
+ }
277
+ }
278
+
279
+ currLvl = nextLvl;
280
+ } // while
281
+
282
+ // post-cycle finest
283
+ if ((int64_t)hierarchy.size() > finest + 1 && hierarchy.getType(finest + 1) != ELIMINATION) {
284
+ // Do an iterate recombination on calculated solutions
285
+ minRes(finest, X[finest], B[finest] - hierarchy.at(finest).getLaplacian() * X[finest]);
286
+ }
287
+
288
+ X[finest] -= X[finest].mean();
289
+ x = X[finest];
290
+ }
291
+
292
+ template <class Matrix>
293
+ void SolverLamg<Matrix>::saveIterate(const index level, const Vector &x, const Vector &r) {
294
+ // update latest pointer
295
+ index i = latestIterate[level];
296
+ latestIterate[level] = (i + 1) % MAX_COMBINED_ITERATES;
297
+
298
+ // update numIterates
299
+ if (numActiveIterates[level] < MAX_COMBINED_ITERATES) {
300
+ numActiveIterates[level]++;
301
+ }
302
+
303
+ // update history array
304
+ history[level][i] = x;
305
+ rHistory[level][i] = r;
306
+ }
307
+
308
+ template <class Matrix>
309
+ void SolverLamg<Matrix>::clearHistory(const index level) {
310
+ latestIterate[level] = 0;
311
+ numActiveIterates[level] = 0;
312
+ }
313
+
314
+ } /* namespace NetworKit */
315
+
316
+ #endif // NETWORKIT_NUMERICS_LAMG_SOLVER_LAMG_HPP_
@@ -0,0 +1,151 @@
1
+ /*
2
+ * LinearSolver.hpp
3
+ *
4
+ * Created on: 30.10.2014
5
+ * Author: Michael Wegner (michael.wegner@student.kit.edu)
6
+ */
7
+
8
+ #ifndef NETWORKIT_NUMERICS_LINEAR_SOLVER_HPP_
9
+ #define NETWORKIT_NUMERICS_LINEAR_SOLVER_HPP_
10
+
11
+ #include <functional>
12
+ #include <limits>
13
+ #include <networkit/algebraic/Vector.hpp>
14
+ #include <networkit/graph/Graph.hpp>
15
+
16
+ namespace NetworKit {
17
+
18
+ /** Describes the status of a LinearSolver after the solver finished. */
19
+ struct SolverStatus {
20
+ count numIters; // number of iterations needed during solve phase
21
+ double residual; // absolute final residual
22
+ bool converged; // flag of conversion status
23
+ };
24
+
25
+ /**
26
+ * Abstract base class for solvers that solve linear systems.
27
+ */
28
+ template <class Matrix>
29
+ class LinearSolver {
30
+ protected:
31
+ double tolerance;
32
+
33
+ public:
34
+ /**
35
+ * Construct an abstract solver with the given @a tolerance. The relative residual
36
+ * ||Ax-b||/||b|| should be less than or equal to
37
+ * @a tolerance after the solver finished.
38
+ * @param tolerance
39
+ */
40
+ LinearSolver(const double tolerance) : tolerance(tolerance) {}
41
+ virtual ~LinearSolver() = default;
42
+
43
+ /**
44
+ * Sets the solver up for the specified @a matrix.
45
+ * @param matrix
46
+ */
47
+ virtual void setup(const Matrix &matrix) = 0;
48
+
49
+ /**
50
+ * Sets the solver up for the Laplacian matrix of the @a graph specified.
51
+ * @param graph
52
+ */
53
+ virtual void setup(const Graph &graph);
54
+
55
+ /**
56
+ * Sets the solver up for the specified @a matrix where the underlying graph has to be
57
+ * connected.
58
+ * @param matrix
59
+ */
60
+ virtual void setupConnected(const Matrix &matrix) = 0;
61
+
62
+ /**
63
+ * Sets the solver up for the Laplacian matrix of the @a graph specified. The graph has to be
64
+ * connected.
65
+ * @param graph
66
+ */
67
+ virtual void setupConnected(const Graph &graph);
68
+
69
+ /**
70
+ * Abstract solve function that computes @a result for the given right-hand side @a rhs and the
71
+ * matrix that has been setup in @ref setup.
72
+ * @param rhs
73
+ * @param result
74
+ * @param maxConvergenceTime
75
+ * @param maxIterations
76
+ * @return A @ref SolverStatus object which provides some statistics like the final absolute
77
+ * residual.
78
+ */
79
+ virtual SolverStatus solve(const Vector &rhs, Vector &result,
80
+ count maxConvergenceTime = 5 * 60 * 1000,
81
+ count maxIterations = std::numeric_limits<count>::max()) const = 0;
82
+
83
+ /**
84
+ * Abstract parallel solve function that computes the @a results for the matrix currently setup
85
+ * and the right-hand sides @a rhs. The maximum spent time for each system can be specified by
86
+ * @a maxConvergenceTime and the maximum number of iterations can be set by @a maxIterations.
87
+ * @param rhs
88
+ * @param results
89
+ * @param maxConvergenceTime
90
+ * @param maxIterations
91
+ * @return A vector of @ref SolverStatus objects for each right hand side.
92
+ * @note If the solver does not support parallelism during solves, this function falls back to
93
+ * solving the systems sequentially.
94
+ */
95
+ virtual std::vector<SolverStatus>
96
+ parallelSolve(const std::vector<Vector> &rhs, std::vector<Vector> &results,
97
+ count maxConvergenceTime = 5 * 60 * 1000,
98
+ count maxIterations = std::numeric_limits<count>::max()) const;
99
+
100
+ /**
101
+ * Abstract parallel solve function that computes and processes results using @a resultProcessor
102
+ * for the matrix currently setup and the right-hand sides (size of @a rhsSize) provided by @a
103
+ * rhsLoader. The maximum spent time for each system can be specified by @a maxConvergenceTime
104
+ * and the maximum number of iterations can be set by @a maxIterations.
105
+ * @param rhsLoader
106
+ * @param resultProcessor
107
+ * @param rhsSize
108
+ * @param maxConvergenceTime
109
+ * @param maxIterations
110
+ * @note If the solver does not support parallelism during solves, this function falls back to
111
+ * solving the systems sequentially.
112
+ */
113
+ template <typename RHSLoader, typename ResultProcessor>
114
+ void parallelSolve(const RHSLoader &rhsLoader, const ResultProcessor &resultProcessor,
115
+ std::pair<count, count> rhsSize, count maxConvergenceTime = 5 * 60 * 1000,
116
+ count maxIterations = std::numeric_limits<count>::max()) const {
117
+ count n = rhsSize.first;
118
+ count m = rhsSize.second;
119
+ Vector rhs(m);
120
+ Vector result(m);
121
+ for (index i = 0; i < n; ++i) {
122
+ solve(rhsLoader(i, rhs), result, maxConvergenceTime, maxIterations);
123
+ resultProcessor(i, result);
124
+ }
125
+ }
126
+ };
127
+
128
+ template <class Matrix>
129
+ void LinearSolver<Matrix>::setup(const Graph &graph) {
130
+ setup(Matrix::laplacianMatrix(graph));
131
+ }
132
+
133
+ template <class Matrix>
134
+ void LinearSolver<Matrix>::setupConnected(const Graph &graph) {
135
+ setupConnected(Matrix::laplacianMatrix(graph));
136
+ }
137
+
138
+ template <class Matrix>
139
+ std::vector<SolverStatus>
140
+ LinearSolver<Matrix>::parallelSolve(const std::vector<Vector> &rhs, std::vector<Vector> &results,
141
+ count maxConvergenceTime, count maxIterations) const {
142
+ std::vector<SolverStatus> stats(rhs.size());
143
+ for (index i = 0; i < rhs.size(); ++i) {
144
+ stats[i] = solve(rhs[i], results[i], maxConvergenceTime, maxIterations);
145
+ }
146
+ return stats;
147
+ }
148
+
149
+ } /* namespace NetworKit */
150
+
151
+ #endif // NETWORKIT_NUMERICS_LINEAR_SOLVER_HPP_
@@ -0,0 +1,61 @@
1
+ /*
2
+ * DiagonalPreconditioner.hpp
3
+ *
4
+ * Created on: Apr 23, 2016
5
+ * Author: Michael Wegner (michael.wegner@student.kit.edu)
6
+ */
7
+
8
+ #ifndef NETWORKIT_NUMERICS_PRECONDITIONER_DIAGONAL_PRECONDITIONER_HPP_
9
+ #define NETWORKIT_NUMERICS_PRECONDITIONER_DIAGONAL_PRECONDITIONER_HPP_
10
+
11
+ #include <networkit/algebraic/CSRMatrix.hpp>
12
+
13
+ namespace NetworKit {
14
+
15
+ /**
16
+ * @ingroup numerics
17
+ * Simple preconditioner that approximates the matrix by a
18
+ * diagonal matrix.
19
+ */
20
+ class DiagonalPreconditioner {
21
+ public:
22
+ /** Default constructor */
23
+ DiagonalPreconditioner() = default;
24
+
25
+ /**
26
+ * Constructs a diagonal preconditioner for the matrix @a A.
27
+ * @param A
28
+ */
29
+ DiagonalPreconditioner(const CSRMatrix &A) : inv_diag(A.numberOfRows()) {
30
+ assert(A.numberOfColumns() == A.numberOfRows());
31
+
32
+ // Diagonal preconditioner just needs to store the inverse diagonal of A
33
+ inv_diag = A.diagonal();
34
+ #pragma omp parallel for
35
+ for (omp_index i = 0; i < static_cast<omp_index>(inv_diag.getDimension()); ++i) {
36
+ if (inv_diag[i] > 0)
37
+ inv_diag[i] = 1.0 / inv_diag[i];
38
+ }
39
+ }
40
+
41
+ virtual ~DiagonalPreconditioner() = default;
42
+
43
+ /**
44
+ * Returns the preconditioned right-hand-side \f$P(b) = D(A)^{-1}b\f$.
45
+ */
46
+ Vector rhs(const Vector &b) const {
47
+ assert(b.getDimension() == inv_diag.getDimension());
48
+ Vector out(b.getDimension());
49
+ for (index i = 0; i < b.getDimension(); ++i) {
50
+ out[i] = inv_diag[i] * b[i];
51
+ }
52
+ return out;
53
+ }
54
+
55
+ private:
56
+ Vector inv_diag;
57
+ };
58
+
59
+ } /* namespace NetworKit */
60
+
61
+ #endif // NETWORKIT_NUMERICS_PRECONDITIONER_DIAGONAL_PRECONDITIONER_HPP_
@@ -0,0 +1,36 @@
1
+ /*
2
+ * IdentityPreconditioner.hpp
3
+ *
4
+ * Created on: Apr 23, 2016
5
+ * Author: Michael Wegner (michael.wegner@student.kit.edu)
6
+ */
7
+
8
+ #ifndef NETWORKIT_NUMERICS_PRECONDITIONER_IDENTITY_PRECONDITIONER_HPP_
9
+ #define NETWORKIT_NUMERICS_PRECONDITIONER_IDENTITY_PRECONDITIONER_HPP_
10
+
11
+ namespace NetworKit {
12
+
13
+ /**
14
+ * @ingroup numerics
15
+ * Simple preconditioner that returns the given vector unchanged.
16
+ */
17
+ class IdentityPreconditioner {
18
+ public:
19
+ /** Default constructor */
20
+ IdentityPreconditioner() = default;
21
+ /**
22
+ * Constructs an identity preconditioner for the matrix @a A.
23
+ * @param A
24
+ */
25
+ IdentityPreconditioner(const CSRMatrix &) {}
26
+ virtual ~IdentityPreconditioner() = default;
27
+
28
+ /**
29
+ * Returns the preconditioned right-hand-side \f$P(b) = b\f$.
30
+ */
31
+ Vector rhs(const Vector &b) const { return b; }
32
+ };
33
+
34
+ } /* namespace NetworKit */
35
+
36
+ #endif // NETWORKIT_NUMERICS_PRECONDITIONER_IDENTITY_PRECONDITIONER_HPP_
@@ -0,0 +1,37 @@
1
+ /*
2
+ * Smoother.hpp
3
+ *
4
+ * Created on: 31.10.2014
5
+ * Author: Michael Wegner (michael.wegner@student.kit.edu)
6
+ */
7
+
8
+ #ifndef NETWORKIT_NUMERICS_SMOOTHER_HPP_
9
+ #define NETWORKIT_NUMERICS_SMOOTHER_HPP_
10
+
11
+ #include <networkit/algebraic/CSRMatrix.hpp>
12
+ #include <networkit/algebraic/Vector.hpp>
13
+
14
+ #include <limits>
15
+ #include <networkit/algebraic/DynamicMatrix.hpp>
16
+
17
+ namespace NetworKit {
18
+
19
+ /**
20
+ * @ingroup numerics
21
+ * Abstract base class of a smoother.
22
+ */
23
+ template <class Matrix>
24
+ class Smoother {
25
+ public:
26
+ Smoother() {}
27
+ virtual ~Smoother() {}
28
+
29
+ virtual Vector relax(const Matrix &A, const Vector &b, const Vector &initialGuess,
30
+ count maxIterations = std::numeric_limits<count>::max()) const = 0;
31
+ virtual Vector relax(const Matrix &A, const Vector &b,
32
+ count maxIterations = std::numeric_limits<count>::max()) const = 0;
33
+ };
34
+
35
+ } /* namespace NetworKit */
36
+
37
+ #endif // NETWORKIT_NUMERICS_SMOOTHER_HPP_
@@ -0,0 +1,28 @@
1
+ /*
2
+ * HashingOverlapper.hpp
3
+ *
4
+ * Created on: 31.01.2013
5
+ * Author: Christian Staudt
6
+ */
7
+
8
+ #ifndef NETWORKIT_OVERLAP_HASHING_OVERLAPPER_HPP_
9
+ #define NETWORKIT_OVERLAP_HASHING_OVERLAPPER_HPP_
10
+
11
+ #include <functional>
12
+
13
+ #include <networkit/overlap/Overlapper.hpp>
14
+
15
+ namespace NetworKit {
16
+
17
+ /**
18
+ * @ingroup overlap
19
+ * Determines the overlap of multiple partitions by hashing partition identifiers.
20
+ */
21
+ class HashingOverlapper final : public Overlapper {
22
+
23
+ public:
24
+ Partition run(const Graph &G, const std::vector<Partition> &clusterings) override;
25
+ };
26
+
27
+ } /* namespace NetworKit */
28
+ #endif // NETWORKIT_OVERLAP_HASHING_OVERLAPPER_HPP_
@@ -0,0 +1,27 @@
1
+ /*
2
+ * Overlapper.hpp
3
+ *
4
+ * Created on: 30.10.2012
5
+ * Author: Christian Staudt
6
+ */
7
+
8
+ #ifndef NETWORKIT_OVERLAP_OVERLAPPER_HPP_
9
+ #define NETWORKIT_OVERLAP_OVERLAPPER_HPP_
10
+
11
+ #include <networkit/graph/Graph.hpp>
12
+ #include <networkit/structures/Partition.hpp>
13
+
14
+ namespace NetworKit {
15
+
16
+ /**
17
+ * @ingroup overlap
18
+ * Abstract base class for algorithms which determine the overlap of multiple partitions.
19
+ */
20
+ class Overlapper {
21
+
22
+ public:
23
+ virtual Partition run(const Graph &G, const std::vector<Partition> &clusterings) = 0;
24
+ };
25
+
26
+ } /* namespace NetworKit */
27
+ #endif // NETWORKIT_OVERLAP_OVERLAPPER_HPP_