@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.
- package/README.md +14 -0
- package/binding.gyp +54 -0
- package/build/Release/.deps/Release/icebug.node.d +1 -0
- package/build/Release/.deps/Release/obj.target/icebug/src/addon.o.d +291 -0
- package/build/Release/icebug.node +0 -0
- package/build/Release/obj.target/icebug/src/addon.o +0 -0
- package/lib/index.d.ts +361 -0
- package/lib/index.js +102 -0
- package/package.json +42 -0
- package/src/addon.cpp +1253 -0
- package/vendor/include/networkit/GlobalState.hpp +86 -0
- package/vendor/include/networkit/Globals.hpp +41 -0
- package/vendor/include/networkit/algebraic/AlgebraicGlobals.hpp +27 -0
- package/vendor/include/networkit/algebraic/CSRGeneralMatrix.hpp +1292 -0
- package/vendor/include/networkit/algebraic/CSRMatrix.hpp +11 -0
- package/vendor/include/networkit/algebraic/DenseMatrix.hpp +537 -0
- package/vendor/include/networkit/algebraic/DynamicMatrix.hpp +514 -0
- package/vendor/include/networkit/algebraic/GraphBLAS.hpp +323 -0
- package/vendor/include/networkit/algebraic/MatrixTools.hpp +156 -0
- package/vendor/include/networkit/algebraic/Semirings.hpp +171 -0
- package/vendor/include/networkit/algebraic/SparseAccumulator.hpp +111 -0
- package/vendor/include/networkit/algebraic/Vector.hpp +371 -0
- package/vendor/include/networkit/algebraic/algorithms/AlgebraicBFS.hpp +72 -0
- package/vendor/include/networkit/algebraic/algorithms/AlgebraicBellmanFord.hpp +88 -0
- package/vendor/include/networkit/algebraic/algorithms/AlgebraicMatchingCoarsening.hpp +96 -0
- package/vendor/include/networkit/algebraic/algorithms/AlgebraicPageRank.hpp +145 -0
- package/vendor/include/networkit/algebraic/algorithms/AlgebraicSpanningEdgeCentrality.hpp +122 -0
- package/vendor/include/networkit/algebraic/algorithms/AlgebraicTriangleCounting.hpp +76 -0
- package/vendor/include/networkit/auxiliary/AlignedAllocator.hpp +113 -0
- package/vendor/include/networkit/auxiliary/ArrayTools.hpp +85 -0
- package/vendor/include/networkit/auxiliary/BloomFilter.hpp +70 -0
- package/vendor/include/networkit/auxiliary/BucketPQ.hpp +142 -0
- package/vendor/include/networkit/auxiliary/Enforce.hpp +117 -0
- package/vendor/include/networkit/auxiliary/FunctionTraits.hpp +74 -0
- package/vendor/include/networkit/auxiliary/HashUtils.hpp +28 -0
- package/vendor/include/networkit/auxiliary/IncrementalUniformRandomSelector.hpp +52 -0
- package/vendor/include/networkit/auxiliary/Log.hpp +119 -0
- package/vendor/include/networkit/auxiliary/MissingMath.hpp +48 -0
- package/vendor/include/networkit/auxiliary/Multiprecision.hpp +17 -0
- package/vendor/include/networkit/auxiliary/NumberParsing.hpp +307 -0
- package/vendor/include/networkit/auxiliary/NumericTools.hpp +57 -0
- package/vendor/include/networkit/auxiliary/Parallel.hpp +56 -0
- package/vendor/include/networkit/auxiliary/Parallelism.hpp +33 -0
- package/vendor/include/networkit/auxiliary/PrioQueue.hpp +252 -0
- package/vendor/include/networkit/auxiliary/Random.hpp +122 -0
- package/vendor/include/networkit/auxiliary/SetIntersector.hpp +72 -0
- package/vendor/include/networkit/auxiliary/SignalHandling.hpp +39 -0
- package/vendor/include/networkit/auxiliary/SortedList.hpp +128 -0
- package/vendor/include/networkit/auxiliary/SparseVector.hpp +215 -0
- package/vendor/include/networkit/auxiliary/SpinLock.hpp +23 -0
- package/vendor/include/networkit/auxiliary/StringBuilder.hpp +322 -0
- package/vendor/include/networkit/auxiliary/StringTools.hpp +76 -0
- package/vendor/include/networkit/auxiliary/TemplateUtils.hpp +76 -0
- package/vendor/include/networkit/auxiliary/Timer.hpp +145 -0
- package/vendor/include/networkit/auxiliary/VectorComparator.hpp +32 -0
- package/vendor/include/networkit/base/Algorithm.hpp +41 -0
- package/vendor/include/networkit/base/DynAlgorithm.hpp +31 -0
- package/vendor/include/networkit/centrality/ApproxBetweenness.hpp +62 -0
- package/vendor/include/networkit/centrality/ApproxCloseness.hpp +136 -0
- package/vendor/include/networkit/centrality/ApproxElectricalCloseness.hpp +156 -0
- package/vendor/include/networkit/centrality/ApproxGroupBetweenness.hpp +124 -0
- package/vendor/include/networkit/centrality/ApproxSpanningEdge.hpp +84 -0
- package/vendor/include/networkit/centrality/Betweenness.hpp +47 -0
- package/vendor/include/networkit/centrality/Centrality.hpp +98 -0
- package/vendor/include/networkit/centrality/Closeness.hpp +107 -0
- package/vendor/include/networkit/centrality/ComplexPaths.hpp +113 -0
- package/vendor/include/networkit/centrality/CoreDecomposition.hpp +161 -0
- package/vendor/include/networkit/centrality/DegreeCentrality.hpp +55 -0
- package/vendor/include/networkit/centrality/DynApproxBetweenness.hpp +95 -0
- package/vendor/include/networkit/centrality/DynBetweenness.hpp +99 -0
- package/vendor/include/networkit/centrality/DynBetweennessOneNode.hpp +98 -0
- package/vendor/include/networkit/centrality/DynKatzCentrality.hpp +115 -0
- package/vendor/include/networkit/centrality/DynTopHarmonicCloseness.hpp +223 -0
- package/vendor/include/networkit/centrality/EigenvectorCentrality.hpp +41 -0
- package/vendor/include/networkit/centrality/EstimateBetweenness.hpp +51 -0
- package/vendor/include/networkit/centrality/ForestCentrality.hpp +112 -0
- package/vendor/include/networkit/centrality/GedWalk.hpp +225 -0
- package/vendor/include/networkit/centrality/GroupCloseness.hpp +115 -0
- package/vendor/include/networkit/centrality/GroupClosenessGrowShrink.hpp +78 -0
- package/vendor/include/networkit/centrality/GroupClosenessLocalSearch.hpp +77 -0
- package/vendor/include/networkit/centrality/GroupClosenessLocalSwaps.hpp +106 -0
- package/vendor/include/networkit/centrality/GroupDegree.hpp +155 -0
- package/vendor/include/networkit/centrality/GroupHarmonicCloseness.hpp +83 -0
- package/vendor/include/networkit/centrality/HarmonicCloseness.hpp +48 -0
- package/vendor/include/networkit/centrality/KPathCentrality.hpp +52 -0
- package/vendor/include/networkit/centrality/KadabraBetweenness.hpp +242 -0
- package/vendor/include/networkit/centrality/KatzCentrality.hpp +62 -0
- package/vendor/include/networkit/centrality/LaplacianCentrality.hpp +44 -0
- package/vendor/include/networkit/centrality/LocalClusteringCoefficient.hpp +60 -0
- package/vendor/include/networkit/centrality/LocalPartitionCoverage.hpp +43 -0
- package/vendor/include/networkit/centrality/LocalSquareClusteringCoefficient.hpp +42 -0
- package/vendor/include/networkit/centrality/PageRank.hpp +101 -0
- package/vendor/include/networkit/centrality/PermanenceCentrality.hpp +48 -0
- package/vendor/include/networkit/centrality/Sfigality.hpp +45 -0
- package/vendor/include/networkit/centrality/SpanningEdgeCentrality.hpp +86 -0
- package/vendor/include/networkit/centrality/TopCloseness.hpp +136 -0
- package/vendor/include/networkit/centrality/TopHarmonicCloseness.hpp +151 -0
- package/vendor/include/networkit/clique/MaximalCliques.hpp +83 -0
- package/vendor/include/networkit/coarsening/ClusteringProjector.hpp +59 -0
- package/vendor/include/networkit/coarsening/CoarsenedGraphView.hpp +156 -0
- package/vendor/include/networkit/coarsening/GraphCoarsening.hpp +57 -0
- package/vendor/include/networkit/coarsening/MatchingCoarsening.hpp +43 -0
- package/vendor/include/networkit/coarsening/ParallelPartitionCoarsening.hpp +33 -0
- package/vendor/include/networkit/coarsening/ParallelPartitionCoarseningView.hpp +62 -0
- package/vendor/include/networkit/community/AdjustedRandMeasure.hpp +31 -0
- package/vendor/include/networkit/community/ClusteringGenerator.hpp +75 -0
- package/vendor/include/networkit/community/CommunityDetectionAlgorithm.hpp +58 -0
- package/vendor/include/networkit/community/Conductance.hpp +32 -0
- package/vendor/include/networkit/community/CoverF1Similarity.hpp +53 -0
- package/vendor/include/networkit/community/CoverHubDominance.hpp +38 -0
- package/vendor/include/networkit/community/Coverage.hpp +25 -0
- package/vendor/include/networkit/community/CutClustering.hpp +62 -0
- package/vendor/include/networkit/community/DissimilarityMeasure.hpp +31 -0
- package/vendor/include/networkit/community/DynamicNMIDistance.hpp +44 -0
- package/vendor/include/networkit/community/EdgeCut.hpp +24 -0
- package/vendor/include/networkit/community/GraphClusteringTools.hpp +103 -0
- package/vendor/include/networkit/community/GraphStructuralRandMeasure.hpp +28 -0
- package/vendor/include/networkit/community/HubDominance.hpp +46 -0
- package/vendor/include/networkit/community/IntrapartitionDensity.hpp +44 -0
- package/vendor/include/networkit/community/IsolatedInterpartitionConductance.hpp +40 -0
- package/vendor/include/networkit/community/IsolatedInterpartitionExpansion.hpp +40 -0
- package/vendor/include/networkit/community/JaccardMeasure.hpp +25 -0
- package/vendor/include/networkit/community/LFM.hpp +49 -0
- package/vendor/include/networkit/community/LPDegreeOrdered.hpp +48 -0
- package/vendor/include/networkit/community/LocalCommunityEvaluation.hpp +100 -0
- package/vendor/include/networkit/community/LocalCoverEvaluation.hpp +31 -0
- package/vendor/include/networkit/community/LocalPartitionEvaluation.hpp +31 -0
- package/vendor/include/networkit/community/LouvainMapEquation.hpp +135 -0
- package/vendor/include/networkit/community/Modularity.hpp +54 -0
- package/vendor/include/networkit/community/NMIDistance.hpp +28 -0
- package/vendor/include/networkit/community/NodeStructuralRandMeasure.hpp +27 -0
- package/vendor/include/networkit/community/OverlappingCommunityDetectionAlgorithm.hpp +51 -0
- package/vendor/include/networkit/community/OverlappingNMIDistance.hpp +175 -0
- package/vendor/include/networkit/community/PLM.hpp +89 -0
- package/vendor/include/networkit/community/PLP.hpp +83 -0
- package/vendor/include/networkit/community/ParallelAgglomerativeClusterer.hpp +37 -0
- package/vendor/include/networkit/community/ParallelLeiden.hpp +96 -0
- package/vendor/include/networkit/community/ParallelLeidenView.hpp +138 -0
- package/vendor/include/networkit/community/PartitionFragmentation.hpp +30 -0
- package/vendor/include/networkit/community/PartitionHubDominance.hpp +37 -0
- package/vendor/include/networkit/community/PartitionIntersection.hpp +25 -0
- package/vendor/include/networkit/community/QualityMeasure.hpp +27 -0
- package/vendor/include/networkit/community/SampledGraphStructuralRandMeasure.hpp +40 -0
- package/vendor/include/networkit/community/SampledNodeStructuralRandMeasure.hpp +40 -0
- package/vendor/include/networkit/community/StablePartitionNodes.hpp +48 -0
- package/vendor/include/networkit/components/BiconnectedComponents.hpp +116 -0
- package/vendor/include/networkit/components/ComponentDecomposition.hpp +72 -0
- package/vendor/include/networkit/components/ConnectedComponents.hpp +55 -0
- package/vendor/include/networkit/components/DynConnectedComponents.hpp +71 -0
- package/vendor/include/networkit/components/DynWeaklyConnectedComponents.hpp +73 -0
- package/vendor/include/networkit/components/ParallelConnectedComponents.hpp +44 -0
- package/vendor/include/networkit/components/RandomSpanningForest.hpp +36 -0
- package/vendor/include/networkit/components/StronglyConnectedComponents.hpp +50 -0
- package/vendor/include/networkit/components/WeaklyConnectedComponents.hpp +59 -0
- package/vendor/include/networkit/correlation/Assortativity.hpp +64 -0
- package/vendor/include/networkit/distance/APSP.hpp +70 -0
- package/vendor/include/networkit/distance/AStar.hpp +68 -0
- package/vendor/include/networkit/distance/AStarGeneral.hpp +110 -0
- package/vendor/include/networkit/distance/AdamicAdarDistance.hpp +52 -0
- package/vendor/include/networkit/distance/AffectedNodes.hpp +130 -0
- package/vendor/include/networkit/distance/AlgebraicDistance.hpp +63 -0
- package/vendor/include/networkit/distance/BFS.hpp +43 -0
- package/vendor/include/networkit/distance/BidirectionalBFS.hpp +51 -0
- package/vendor/include/networkit/distance/BidirectionalDijkstra.hpp +69 -0
- package/vendor/include/networkit/distance/CommuteTimeDistance.hpp +89 -0
- package/vendor/include/networkit/distance/Diameter.hpp +97 -0
- package/vendor/include/networkit/distance/Dijkstra.hpp +50 -0
- package/vendor/include/networkit/distance/DynAPSP.hpp +67 -0
- package/vendor/include/networkit/distance/DynBFS.hpp +56 -0
- package/vendor/include/networkit/distance/DynDijkstra.hpp +57 -0
- package/vendor/include/networkit/distance/DynPrunedLandmarkLabeling.hpp +67 -0
- package/vendor/include/networkit/distance/DynSSSP.hpp +87 -0
- package/vendor/include/networkit/distance/Eccentricity.hpp +32 -0
- package/vendor/include/networkit/distance/EffectiveDiameter.hpp +47 -0
- package/vendor/include/networkit/distance/EffectiveDiameterApproximation.hpp +57 -0
- package/vendor/include/networkit/distance/FloydWarshall.hpp +93 -0
- package/vendor/include/networkit/distance/GraphDistance.hpp +49 -0
- package/vendor/include/networkit/distance/HopPlotApproximation.hpp +62 -0
- package/vendor/include/networkit/distance/IncompleteDijkstra.hpp +66 -0
- package/vendor/include/networkit/distance/IncompleteSSSP.hpp +41 -0
- package/vendor/include/networkit/distance/JaccardDistance.hpp +57 -0
- package/vendor/include/networkit/distance/MultiTargetBFS.hpp +32 -0
- package/vendor/include/networkit/distance/MultiTargetDijkstra.hpp +40 -0
- package/vendor/include/networkit/distance/NeighborhoodFunction.hpp +47 -0
- package/vendor/include/networkit/distance/NeighborhoodFunctionApproximation.hpp +56 -0
- package/vendor/include/networkit/distance/NeighborhoodFunctionHeuristic.hpp +56 -0
- package/vendor/include/networkit/distance/NodeDistance.hpp +54 -0
- package/vendor/include/networkit/distance/PrunedLandmarkLabeling.hpp +76 -0
- package/vendor/include/networkit/distance/ReverseBFS.hpp +46 -0
- package/vendor/include/networkit/distance/SPSP.hpp +143 -0
- package/vendor/include/networkit/distance/SSSP.hpp +216 -0
- package/vendor/include/networkit/distance/STSP.hpp +193 -0
- package/vendor/include/networkit/distance/Volume.hpp +66 -0
- package/vendor/include/networkit/dynamics/DGSStreamParser.hpp +40 -0
- package/vendor/include/networkit/dynamics/DGSWriter.hpp +30 -0
- package/vendor/include/networkit/dynamics/GraphDifference.hpp +110 -0
- package/vendor/include/networkit/dynamics/GraphEvent.hpp +55 -0
- package/vendor/include/networkit/dynamics/GraphEventHandler.hpp +39 -0
- package/vendor/include/networkit/dynamics/GraphEventProxy.hpp +55 -0
- package/vendor/include/networkit/dynamics/GraphUpdater.hpp +38 -0
- package/vendor/include/networkit/edgescores/ChibaNishizekiQuadrangleEdgeScore.hpp +26 -0
- package/vendor/include/networkit/edgescores/ChibaNishizekiTriangleEdgeScore.hpp +33 -0
- package/vendor/include/networkit/edgescores/EdgeScore.hpp +50 -0
- package/vendor/include/networkit/edgescores/EdgeScoreAsWeight.hpp +33 -0
- package/vendor/include/networkit/edgescores/EdgeScoreBlender.hpp +33 -0
- package/vendor/include/networkit/edgescores/EdgeScoreLinearizer.hpp +32 -0
- package/vendor/include/networkit/edgescores/EdgeScoreNormalizer.hpp +35 -0
- package/vendor/include/networkit/edgescores/GeometricMeanScore.hpp +29 -0
- package/vendor/include/networkit/edgescores/PrefixJaccardScore.hpp +23 -0
- package/vendor/include/networkit/edgescores/TriangleEdgeScore.hpp +39 -0
- package/vendor/include/networkit/embedding/Node2Vec.hpp +83 -0
- package/vendor/include/networkit/flow/EdmondsKarp.hpp +112 -0
- package/vendor/include/networkit/generators/BarabasiAlbertGenerator.hpp +87 -0
- package/vendor/include/networkit/generators/ChungLuGenerator.hpp +46 -0
- package/vendor/include/networkit/generators/ChungLuGeneratorAlamEtAl.hpp +63 -0
- package/vendor/include/networkit/generators/ClusteredRandomGraphGenerator.hpp +56 -0
- package/vendor/include/networkit/generators/ConfigurationModel.hpp +36 -0
- package/vendor/include/networkit/generators/DorogovtsevMendesGenerator.hpp +33 -0
- package/vendor/include/networkit/generators/DynamicBarabasiAlbertGenerator.hpp +33 -0
- package/vendor/include/networkit/generators/DynamicDGSParser.hpp +51 -0
- package/vendor/include/networkit/generators/DynamicDorogovtsevMendesGenerator.hpp +34 -0
- package/vendor/include/networkit/generators/DynamicForestFireGenerator.hpp +55 -0
- package/vendor/include/networkit/generators/DynamicGraphGenerator.hpp +40 -0
- package/vendor/include/networkit/generators/DynamicGraphSource.hpp +79 -0
- package/vendor/include/networkit/generators/DynamicHyperbolicGenerator.hpp +143 -0
- package/vendor/include/networkit/generators/DynamicPathGenerator.hpp +26 -0
- package/vendor/include/networkit/generators/DynamicPubWebGenerator.hpp +54 -0
- package/vendor/include/networkit/generators/EdgeSwitchingMarkovChainGenerator.hpp +65 -0
- package/vendor/include/networkit/generators/ErdosRenyiEnumerator.hpp +318 -0
- package/vendor/include/networkit/generators/ErdosRenyiGenerator.hpp +56 -0
- package/vendor/include/networkit/generators/HavelHakimiGenerator.hpp +48 -0
- package/vendor/include/networkit/generators/HyperbolicGenerator.hpp +236 -0
- package/vendor/include/networkit/generators/LFRGenerator.hpp +175 -0
- package/vendor/include/networkit/generators/MocnikGenerator.hpp +147 -0
- package/vendor/include/networkit/generators/MocnikGeneratorBasic.hpp +58 -0
- package/vendor/include/networkit/generators/PowerlawDegreeSequence.hpp +128 -0
- package/vendor/include/networkit/generators/PubWebGenerator.hpp +94 -0
- package/vendor/include/networkit/generators/RegularRingLatticeGenerator.hpp +37 -0
- package/vendor/include/networkit/generators/RmatGenerator.hpp +67 -0
- package/vendor/include/networkit/generators/StaticDegreeSequenceGenerator.hpp +42 -0
- package/vendor/include/networkit/generators/StaticGraphGenerator.hpp +30 -0
- package/vendor/include/networkit/generators/StochasticBlockmodel.hpp +41 -0
- package/vendor/include/networkit/generators/WattsStrogatzGenerator.hpp +43 -0
- package/vendor/include/networkit/generators/quadtree/QuadNode.hpp +857 -0
- package/vendor/include/networkit/generators/quadtree/QuadNodeCartesianEuclid.hpp +587 -0
- package/vendor/include/networkit/generators/quadtree/QuadNodePolarEuclid.hpp +726 -0
- package/vendor/include/networkit/generators/quadtree/Quadtree.hpp +232 -0
- package/vendor/include/networkit/generators/quadtree/QuadtreeCartesianEuclid.hpp +149 -0
- package/vendor/include/networkit/generators/quadtree/QuadtreePolarEuclid.hpp +143 -0
- package/vendor/include/networkit/geometric/HyperbolicSpace.hpp +248 -0
- package/vendor/include/networkit/geometric/Point2DWithIndex.hpp +145 -0
- package/vendor/include/networkit/global/ClusteringCoefficient.hpp +42 -0
- package/vendor/include/networkit/global/GlobalClusteringCoefficient.hpp +24 -0
- package/vendor/include/networkit/graph/Attributes.hpp +568 -0
- package/vendor/include/networkit/graph/BFS.hpp +111 -0
- package/vendor/include/networkit/graph/DFS.hpp +71 -0
- package/vendor/include/networkit/graph/Dijkstra.hpp +83 -0
- package/vendor/include/networkit/graph/EdgeIterators.hpp +171 -0
- package/vendor/include/networkit/graph/Graph.hpp +2083 -0
- package/vendor/include/networkit/graph/GraphBuilder.hpp +289 -0
- package/vendor/include/networkit/graph/GraphR.hpp +133 -0
- package/vendor/include/networkit/graph/GraphTools.hpp +589 -0
- package/vendor/include/networkit/graph/GraphW.hpp +1236 -0
- package/vendor/include/networkit/graph/KruskalMSF.hpp +50 -0
- package/vendor/include/networkit/graph/NeighborIterators.hpp +163 -0
- package/vendor/include/networkit/graph/NodeIterators.hpp +127 -0
- package/vendor/include/networkit/graph/PrimMSF.hpp +66 -0
- package/vendor/include/networkit/graph/RandomMaximumSpanningForest.hpp +133 -0
- package/vendor/include/networkit/graph/SpanningForest.hpp +41 -0
- package/vendor/include/networkit/graph/TopologicalSort.hpp +87 -0
- package/vendor/include/networkit/graph/UnionMaximumSpanningForest.hpp +126 -0
- package/vendor/include/networkit/graph/test/GraphBuilderBenchmark.hpp +68 -0
- package/vendor/include/networkit/independentset/IndependentSetFinder.hpp +44 -0
- package/vendor/include/networkit/independentset/Luby.hpp +27 -0
- package/vendor/include/networkit/io/BinaryEdgeListPartitionReader.hpp +45 -0
- package/vendor/include/networkit/io/BinaryEdgeListPartitionWriter.hpp +47 -0
- package/vendor/include/networkit/io/BinaryPartitionReader.hpp +41 -0
- package/vendor/include/networkit/io/BinaryPartitionWriter.hpp +44 -0
- package/vendor/include/networkit/io/CoverReader.hpp +27 -0
- package/vendor/include/networkit/io/CoverWriter.hpp +21 -0
- package/vendor/include/networkit/io/DGSReader.hpp +39 -0
- package/vendor/include/networkit/io/DibapGraphReader.hpp +43 -0
- package/vendor/include/networkit/io/DotGraphWriter.hpp +39 -0
- package/vendor/include/networkit/io/DotPartitionWriter.hpp +23 -0
- package/vendor/include/networkit/io/DynamicGraphReader.hpp +29 -0
- package/vendor/include/networkit/io/EdgeListCoverReader.hpp +35 -0
- package/vendor/include/networkit/io/EdgeListPartitionReader.hpp +43 -0
- package/vendor/include/networkit/io/EdgeListReader.hpp +61 -0
- package/vendor/include/networkit/io/EdgeListWriter.hpp +48 -0
- package/vendor/include/networkit/io/GMLGraphReader.hpp +33 -0
- package/vendor/include/networkit/io/GMLGraphWriter.hpp +33 -0
- package/vendor/include/networkit/io/GraphIO.hpp +52 -0
- package/vendor/include/networkit/io/GraphReader.hpp +40 -0
- package/vendor/include/networkit/io/GraphToolBinaryReader.hpp +71 -0
- package/vendor/include/networkit/io/GraphToolBinaryWriter.hpp +61 -0
- package/vendor/include/networkit/io/GraphWriter.hpp +27 -0
- package/vendor/include/networkit/io/KONECTGraphReader.hpp +44 -0
- package/vendor/include/networkit/io/LineFileReader.hpp +42 -0
- package/vendor/include/networkit/io/METISGraphReader.hpp +36 -0
- package/vendor/include/networkit/io/METISGraphWriter.hpp +29 -0
- package/vendor/include/networkit/io/METISParser.hpp +63 -0
- package/vendor/include/networkit/io/MTXGraphReader.hpp +31 -0
- package/vendor/include/networkit/io/MTXParser.hpp +87 -0
- package/vendor/include/networkit/io/MatrixMarketReader.hpp +33 -0
- package/vendor/include/networkit/io/MatrixReader.hpp +33 -0
- package/vendor/include/networkit/io/MemoryMappedFile.hpp +80 -0
- package/vendor/include/networkit/io/NetworkitBinaryGraph.hpp +144 -0
- package/vendor/include/networkit/io/NetworkitBinaryReader.hpp +50 -0
- package/vendor/include/networkit/io/NetworkitBinaryWriter.hpp +71 -0
- package/vendor/include/networkit/io/PartitionReader.hpp +34 -0
- package/vendor/include/networkit/io/PartitionWriter.hpp +31 -0
- package/vendor/include/networkit/io/RBGraphReader.hpp +37 -0
- package/vendor/include/networkit/io/RBMatrixReader.hpp +49 -0
- package/vendor/include/networkit/io/RasterReader.hpp +40 -0
- package/vendor/include/networkit/io/SNAPEdgeListPartitionReader.hpp +28 -0
- package/vendor/include/networkit/io/SNAPGraphReader.hpp +53 -0
- package/vendor/include/networkit/io/SNAPGraphWriter.hpp +53 -0
- package/vendor/include/networkit/io/ThrillGraphBinaryReader.hpp +44 -0
- package/vendor/include/networkit/io/ThrillGraphBinaryWriter.hpp +27 -0
- package/vendor/include/networkit/layout/LayoutAlgorithm.hpp +39 -0
- package/vendor/include/networkit/linkprediction/AdamicAdarIndex.hpp +37 -0
- package/vendor/include/networkit/linkprediction/AdjustedRandIndex.hpp +36 -0
- package/vendor/include/networkit/linkprediction/AlgebraicDistanceIndex.hpp +70 -0
- package/vendor/include/networkit/linkprediction/CommonNeighborsIndex.hpp +39 -0
- package/vendor/include/networkit/linkprediction/EvaluationMetric.hpp +135 -0
- package/vendor/include/networkit/linkprediction/JaccardIndex.hpp +44 -0
- package/vendor/include/networkit/linkprediction/KatzIndex.hpp +84 -0
- package/vendor/include/networkit/linkprediction/LinkPredictor.hpp +98 -0
- package/vendor/include/networkit/linkprediction/LinkThresholder.hpp +56 -0
- package/vendor/include/networkit/linkprediction/MissingLinksFinder.hpp +60 -0
- package/vendor/include/networkit/linkprediction/NeighborhoodDistanceIndex.hpp +42 -0
- package/vendor/include/networkit/linkprediction/NeighborhoodUtility.hpp +54 -0
- package/vendor/include/networkit/linkprediction/NeighborsMeasureIndex.hpp +48 -0
- package/vendor/include/networkit/linkprediction/PrecisionRecallMetric.hpp +40 -0
- package/vendor/include/networkit/linkprediction/PredictionsSorter.hpp +66 -0
- package/vendor/include/networkit/linkprediction/PreferentialAttachmentIndex.hpp +37 -0
- package/vendor/include/networkit/linkprediction/ROCMetric.hpp +39 -0
- package/vendor/include/networkit/linkprediction/RandomLinkSampler.hpp +47 -0
- package/vendor/include/networkit/linkprediction/ResourceAllocationIndex.hpp +38 -0
- package/vendor/include/networkit/linkprediction/SameCommunityIndex.hpp +50 -0
- package/vendor/include/networkit/linkprediction/TotalNeighborsIndex.hpp +39 -0
- package/vendor/include/networkit/linkprediction/UDegreeIndex.hpp +35 -0
- package/vendor/include/networkit/linkprediction/VDegreeIndex.hpp +35 -0
- package/vendor/include/networkit/matching/BMatcher.hpp +52 -0
- package/vendor/include/networkit/matching/BMatching.hpp +115 -0
- package/vendor/include/networkit/matching/BSuitorMatcher.hpp +170 -0
- package/vendor/include/networkit/matching/DynamicBSuitorMatcher.hpp +78 -0
- package/vendor/include/networkit/matching/LocalMaxMatcher.hpp +35 -0
- package/vendor/include/networkit/matching/Matcher.hpp +55 -0
- package/vendor/include/networkit/matching/Matching.hpp +111 -0
- package/vendor/include/networkit/matching/PathGrowingMatcher.hpp +46 -0
- package/vendor/include/networkit/matching/SuitorMatcher.hpp +62 -0
- package/vendor/include/networkit/numerics/ConjugateGradient.hpp +163 -0
- package/vendor/include/networkit/numerics/GaussSeidelRelaxation.hpp +99 -0
- package/vendor/include/networkit/numerics/LAMG/LAMGSettings.hpp +70 -0
- package/vendor/include/networkit/numerics/LAMG/Lamg.hpp +460 -0
- package/vendor/include/networkit/numerics/LAMG/Level/EliminationStage.hpp +47 -0
- package/vendor/include/networkit/numerics/LAMG/Level/Level.hpp +56 -0
- package/vendor/include/networkit/numerics/LAMG/Level/LevelAggregation.hpp +52 -0
- package/vendor/include/networkit/numerics/LAMG/Level/LevelElimination.hpp +133 -0
- package/vendor/include/networkit/numerics/LAMG/Level/LevelFinest.hpp +28 -0
- package/vendor/include/networkit/numerics/LAMG/LevelHierarchy.hpp +165 -0
- package/vendor/include/networkit/numerics/LAMG/MultiLevelSetup.hpp +1090 -0
- package/vendor/include/networkit/numerics/LAMG/SolverLamg.hpp +316 -0
- package/vendor/include/networkit/numerics/LinearSolver.hpp +151 -0
- package/vendor/include/networkit/numerics/Preconditioner/DiagonalPreconditioner.hpp +61 -0
- package/vendor/include/networkit/numerics/Preconditioner/IdentityPreconditioner.hpp +36 -0
- package/vendor/include/networkit/numerics/Smoother.hpp +37 -0
- package/vendor/include/networkit/overlap/HashingOverlapper.hpp +28 -0
- package/vendor/include/networkit/overlap/Overlapper.hpp +27 -0
- package/vendor/include/networkit/planarity/LeftRightPlanarityCheck.hpp +113 -0
- package/vendor/include/networkit/randomization/Curveball.hpp +49 -0
- package/vendor/include/networkit/randomization/CurveballGlobalTradeGenerator.hpp +39 -0
- package/vendor/include/networkit/randomization/CurveballUniformTradeGenerator.hpp +39 -0
- package/vendor/include/networkit/randomization/DegreePreservingShuffle.hpp +82 -0
- package/vendor/include/networkit/randomization/EdgeSwitching.hpp +157 -0
- package/vendor/include/networkit/randomization/GlobalCurveball.hpp +69 -0
- package/vendor/include/networkit/randomization/GlobalTradeSequence.hpp +303 -0
- package/vendor/include/networkit/reachability/AllSimplePaths.hpp +122 -0
- package/vendor/include/networkit/reachability/ReachableNodes.hpp +83 -0
- package/vendor/include/networkit/scd/ApproximatePageRank.hpp +51 -0
- package/vendor/include/networkit/scd/CliqueDetect.hpp +55 -0
- package/vendor/include/networkit/scd/CombinedSCD.hpp +51 -0
- package/vendor/include/networkit/scd/GCE.hpp +42 -0
- package/vendor/include/networkit/scd/LFMLocal.hpp +54 -0
- package/vendor/include/networkit/scd/LocalT.hpp +40 -0
- package/vendor/include/networkit/scd/LocalTightnessExpansion.hpp +46 -0
- package/vendor/include/networkit/scd/PageRankNibble.hpp +55 -0
- package/vendor/include/networkit/scd/RandomBFS.hpp +33 -0
- package/vendor/include/networkit/scd/SCDGroundTruthComparison.hpp +121 -0
- package/vendor/include/networkit/scd/SelectiveCommunityDetector.hpp +76 -0
- package/vendor/include/networkit/scd/SetConductance.hpp +47 -0
- package/vendor/include/networkit/scd/TCE.hpp +41 -0
- package/vendor/include/networkit/scd/TwoPhaseL.hpp +40 -0
- package/vendor/include/networkit/scoring/EdgeScoring.hpp +44 -0
- package/vendor/include/networkit/scoring/ModularityScoring.hpp +79 -0
- package/vendor/include/networkit/simulation/EpidemicSimulationSEIR.hpp +59 -0
- package/vendor/include/networkit/sparsification/ChanceCorrectedTriangleScore.hpp +28 -0
- package/vendor/include/networkit/sparsification/ForestFireScore.hpp +34 -0
- package/vendor/include/networkit/sparsification/GlobalThresholdFilter.hpp +40 -0
- package/vendor/include/networkit/sparsification/LocalDegreeScore.hpp +30 -0
- package/vendor/include/networkit/sparsification/LocalFilterScore.hpp +124 -0
- package/vendor/include/networkit/sparsification/LocalSimilarityScore.hpp +63 -0
- package/vendor/include/networkit/sparsification/MultiscaleScore.hpp +38 -0
- package/vendor/include/networkit/sparsification/RandomEdgeScore.hpp +33 -0
- package/vendor/include/networkit/sparsification/RandomNodeEdgeScore.hpp +29 -0
- package/vendor/include/networkit/sparsification/SCANStructuralSimilarityScore.hpp +23 -0
- package/vendor/include/networkit/sparsification/SimmelianOverlapScore.hpp +35 -0
- package/vendor/include/networkit/sparsification/SimmelianScore.hpp +92 -0
- package/vendor/include/networkit/sparsification/Sparsifiers.hpp +166 -0
- package/vendor/include/networkit/structures/Cover.hpp +248 -0
- package/vendor/include/networkit/structures/LocalCommunity.hpp +363 -0
- package/vendor/include/networkit/structures/Partition.hpp +335 -0
- package/vendor/include/networkit/structures/UnionFind.hpp +66 -0
- package/vendor/include/networkit/viz/GraphLayoutAlgorithm.hpp +157 -0
- package/vendor/include/networkit/viz/MaxentStress.hpp +346 -0
- package/vendor/include/networkit/viz/Octree.hpp +428 -0
- package/vendor/include/networkit/viz/PivotMDS.hpp +63 -0
- package/vendor/include/networkit/viz/Point.hpp +415 -0
- package/vendor/include/networkit/viz/PostscriptWriter.hpp +78 -0
- package/vendor/include/tlx/algorithm/exclusive_scan.hpp +56 -0
- package/vendor/include/tlx/algorithm/is_sorted_cmp.hpp +56 -0
- package/vendor/include/tlx/algorithm/merge_advance.hpp +177 -0
- package/vendor/include/tlx/algorithm/merge_combine.hpp +76 -0
- package/vendor/include/tlx/algorithm/multisequence_partition.hpp +346 -0
- package/vendor/include/tlx/algorithm/multisequence_selection.hpp +351 -0
- package/vendor/include/tlx/algorithm/multiway_merge.hpp +1385 -0
- package/vendor/include/tlx/algorithm/multiway_merge_splitting.hpp +257 -0
- package/vendor/include/tlx/algorithm/parallel_multiway_merge.hpp +408 -0
- package/vendor/include/tlx/algorithm/random_bipartition_shuffle.hpp +116 -0
- package/vendor/include/tlx/algorithm.hpp +36 -0
- package/vendor/include/tlx/allocator_base.hpp +100 -0
- package/vendor/include/tlx/backtrace.hpp +54 -0
- package/vendor/include/tlx/cmdline_parser.hpp +498 -0
- package/vendor/include/tlx/container/btree.hpp +3977 -0
- package/vendor/include/tlx/container/btree_map.hpp +634 -0
- package/vendor/include/tlx/container/btree_multimap.hpp +627 -0
- package/vendor/include/tlx/container/btree_multiset.hpp +612 -0
- package/vendor/include/tlx/container/btree_set.hpp +612 -0
- package/vendor/include/tlx/container/d_ary_addressable_int_heap.hpp +416 -0
- package/vendor/include/tlx/container/d_ary_heap.hpp +311 -0
- package/vendor/include/tlx/container/loser_tree.hpp +1009 -0
- package/vendor/include/tlx/container/lru_cache.hpp +319 -0
- package/vendor/include/tlx/container/radix_heap.hpp +735 -0
- package/vendor/include/tlx/container/ring_buffer.hpp +428 -0
- package/vendor/include/tlx/container/simple_vector.hpp +304 -0
- package/vendor/include/tlx/container/splay_tree.hpp +399 -0
- package/vendor/include/tlx/container/string_view.hpp +805 -0
- package/vendor/include/tlx/container.hpp +40 -0
- package/vendor/include/tlx/counting_ptr.hpp +522 -0
- package/vendor/include/tlx/define/attribute_always_inline.hpp +34 -0
- package/vendor/include/tlx/define/attribute_fallthrough.hpp +36 -0
- package/vendor/include/tlx/define/attribute_format_printf.hpp +34 -0
- package/vendor/include/tlx/define/attribute_packed.hpp +34 -0
- package/vendor/include/tlx/define/attribute_warn_unused_result.hpp +34 -0
- package/vendor/include/tlx/define/constexpr.hpp +31 -0
- package/vendor/include/tlx/define/deprecated.hpp +39 -0
- package/vendor/include/tlx/define/endian.hpp +49 -0
- package/vendor/include/tlx/define/likely.hpp +33 -0
- package/vendor/include/tlx/define/visibility_hidden.hpp +34 -0
- package/vendor/include/tlx/define.hpp +36 -0
- package/vendor/include/tlx/delegate.hpp +524 -0
- package/vendor/include/tlx/die/core.hpp +311 -0
- package/vendor/include/tlx/die.hpp +106 -0
- package/vendor/include/tlx/digest/md5.hpp +81 -0
- package/vendor/include/tlx/digest/sha1.hpp +81 -0
- package/vendor/include/tlx/digest/sha256.hpp +81 -0
- package/vendor/include/tlx/digest/sha512.hpp +81 -0
- package/vendor/include/tlx/digest.hpp +30 -0
- package/vendor/include/tlx/logger/all.hpp +33 -0
- package/vendor/include/tlx/logger/array.hpp +43 -0
- package/vendor/include/tlx/logger/core.hpp +287 -0
- package/vendor/include/tlx/logger/deque.hpp +42 -0
- package/vendor/include/tlx/logger/map.hpp +65 -0
- package/vendor/include/tlx/logger/set.hpp +60 -0
- package/vendor/include/tlx/logger/tuple.hpp +66 -0
- package/vendor/include/tlx/logger/unordered_map.hpp +68 -0
- package/vendor/include/tlx/logger/unordered_set.hpp +64 -0
- package/vendor/include/tlx/logger/wrap_unprintable.hpp +75 -0
- package/vendor/include/tlx/logger.hpp +44 -0
- package/vendor/include/tlx/math/abs_diff.hpp +35 -0
- package/vendor/include/tlx/math/aggregate.hpp +231 -0
- package/vendor/include/tlx/math/aggregate_min_max.hpp +116 -0
- package/vendor/include/tlx/math/bswap.hpp +148 -0
- package/vendor/include/tlx/math/bswap_be.hpp +79 -0
- package/vendor/include/tlx/math/bswap_le.hpp +79 -0
- package/vendor/include/tlx/math/clz.hpp +174 -0
- package/vendor/include/tlx/math/ctz.hpp +174 -0
- package/vendor/include/tlx/math/div_ceil.hpp +36 -0
- package/vendor/include/tlx/math/ffs.hpp +123 -0
- package/vendor/include/tlx/math/integer_log2.hpp +189 -0
- package/vendor/include/tlx/math/is_power_of_two.hpp +74 -0
- package/vendor/include/tlx/math/polynomial_regression.hpp +243 -0
- package/vendor/include/tlx/math/popcount.hpp +173 -0
- package/vendor/include/tlx/math/power_to_the.hpp +44 -0
- package/vendor/include/tlx/math/rol.hpp +112 -0
- package/vendor/include/tlx/math/ror.hpp +112 -0
- package/vendor/include/tlx/math/round_to_power_of_two.hpp +121 -0
- package/vendor/include/tlx/math/round_up.hpp +36 -0
- package/vendor/include/tlx/math/sgn.hpp +38 -0
- package/vendor/include/tlx/math.hpp +46 -0
- package/vendor/include/tlx/meta/apply_tuple.hpp +55 -0
- package/vendor/include/tlx/meta/call_for_range.hpp +78 -0
- package/vendor/include/tlx/meta/call_foreach.hpp +60 -0
- package/vendor/include/tlx/meta/call_foreach_tuple.hpp +60 -0
- package/vendor/include/tlx/meta/call_foreach_tuple_with_index.hpp +61 -0
- package/vendor/include/tlx/meta/call_foreach_with_index.hpp +64 -0
- package/vendor/include/tlx/meta/enable_if.hpp +37 -0
- package/vendor/include/tlx/meta/fold_left.hpp +63 -0
- package/vendor/include/tlx/meta/fold_left_tuple.hpp +60 -0
- package/vendor/include/tlx/meta/fold_right.hpp +63 -0
- package/vendor/include/tlx/meta/fold_right_tuple.hpp +60 -0
- package/vendor/include/tlx/meta/function_chain.hpp +197 -0
- package/vendor/include/tlx/meta/function_stack.hpp +189 -0
- package/vendor/include/tlx/meta/has_member.hpp +80 -0
- package/vendor/include/tlx/meta/has_method.hpp +117 -0
- package/vendor/include/tlx/meta/index_sequence.hpp +66 -0
- package/vendor/include/tlx/meta/is_std_array.hpp +40 -0
- package/vendor/include/tlx/meta/is_std_pair.hpp +39 -0
- package/vendor/include/tlx/meta/is_std_tuple.hpp +39 -0
- package/vendor/include/tlx/meta/is_std_vector.hpp +39 -0
- package/vendor/include/tlx/meta/log2.hpp +101 -0
- package/vendor/include/tlx/meta/no_operation.hpp +55 -0
- package/vendor/include/tlx/meta/static_index.hpp +42 -0
- package/vendor/include/tlx/meta/vexpand.hpp +34 -0
- package/vendor/include/tlx/meta/vmap_for_range.hpp +84 -0
- package/vendor/include/tlx/meta/vmap_foreach.hpp +63 -0
- package/vendor/include/tlx/meta/vmap_foreach_tuple.hpp +59 -0
- package/vendor/include/tlx/meta/vmap_foreach_tuple_with_index.hpp +62 -0
- package/vendor/include/tlx/meta/vmap_foreach_with_index.hpp +70 -0
- package/vendor/include/tlx/meta.hpp +55 -0
- package/vendor/include/tlx/multi_timer.hpp +148 -0
- package/vendor/include/tlx/port/setenv.hpp +31 -0
- package/vendor/include/tlx/port.hpp +27 -0
- package/vendor/include/tlx/semaphore.hpp +119 -0
- package/vendor/include/tlx/simple_vector.hpp +20 -0
- package/vendor/include/tlx/siphash.hpp +282 -0
- package/vendor/include/tlx/sort/networks/best.hpp +611 -0
- package/vendor/include/tlx/sort/networks/bose_nelson.hpp +412 -0
- package/vendor/include/tlx/sort/networks/bose_nelson_parameter.hpp +507 -0
- package/vendor/include/tlx/sort/networks/cswap.hpp +60 -0
- package/vendor/include/tlx/sort/parallel_mergesort.hpp +398 -0
- package/vendor/include/tlx/sort/strings/insertion_sort.hpp +232 -0
- package/vendor/include/tlx/sort/strings/multikey_quicksort.hpp +185 -0
- package/vendor/include/tlx/sort/strings/parallel_sample_sort.hpp +1647 -0
- package/vendor/include/tlx/sort/strings/radix_sort.hpp +934 -0
- package/vendor/include/tlx/sort/strings/sample_sort_tools.hpp +756 -0
- package/vendor/include/tlx/sort/strings/string_ptr.hpp +426 -0
- package/vendor/include/tlx/sort/strings/string_set.hpp +800 -0
- package/vendor/include/tlx/sort/strings.hpp +329 -0
- package/vendor/include/tlx/sort/strings_parallel.hpp +325 -0
- package/vendor/include/tlx/sort.hpp +29 -0
- package/vendor/include/tlx/stack_allocator.hpp +226 -0
- package/vendor/include/tlx/string/appendline.hpp +35 -0
- package/vendor/include/tlx/string/base64.hpp +87 -0
- package/vendor/include/tlx/string/bitdump.hpp +139 -0
- package/vendor/include/tlx/string/compare_icase.hpp +42 -0
- package/vendor/include/tlx/string/contains.hpp +36 -0
- package/vendor/include/tlx/string/contains_word.hpp +42 -0
- package/vendor/include/tlx/string/ends_with.hpp +79 -0
- package/vendor/include/tlx/string/equal_icase.hpp +42 -0
- package/vendor/include/tlx/string/erase_all.hpp +70 -0
- package/vendor/include/tlx/string/escape_html.hpp +34 -0
- package/vendor/include/tlx/string/escape_uri.hpp +34 -0
- package/vendor/include/tlx/string/expand_environment_variables.hpp +49 -0
- package/vendor/include/tlx/string/extract_between.hpp +40 -0
- package/vendor/include/tlx/string/format_iec_units.hpp +32 -0
- package/vendor/include/tlx/string/format_si_iec_units.hpp +19 -0
- package/vendor/include/tlx/string/format_si_units.hpp +32 -0
- package/vendor/include/tlx/string/hash_djb2.hpp +87 -0
- package/vendor/include/tlx/string/hash_sdbm.hpp +86 -0
- package/vendor/include/tlx/string/hexdump.hpp +154 -0
- package/vendor/include/tlx/string/index_of.hpp +56 -0
- package/vendor/include/tlx/string/join.hpp +65 -0
- package/vendor/include/tlx/string/join_generic.hpp +89 -0
- package/vendor/include/tlx/string/join_quoted.hpp +46 -0
- package/vendor/include/tlx/string/less_icase.hpp +64 -0
- package/vendor/include/tlx/string/levenshtein.hpp +193 -0
- package/vendor/include/tlx/string/pad.hpp +39 -0
- package/vendor/include/tlx/string/parse_si_iec_units.hpp +46 -0
- package/vendor/include/tlx/string/parse_uri.hpp +66 -0
- package/vendor/include/tlx/string/parse_uri_form_data.hpp +136 -0
- package/vendor/include/tlx/string/replace.hpp +141 -0
- package/vendor/include/tlx/string/split.hpp +170 -0
- package/vendor/include/tlx/string/split_quoted.hpp +49 -0
- package/vendor/include/tlx/string/split_view.hpp +218 -0
- package/vendor/include/tlx/string/split_words.hpp +53 -0
- package/vendor/include/tlx/string/ssprintf.hpp +45 -0
- package/vendor/include/tlx/string/ssprintf_generic.hpp +95 -0
- package/vendor/include/tlx/string/starts_with.hpp +44 -0
- package/vendor/include/tlx/string/to_lower.hpp +47 -0
- package/vendor/include/tlx/string/to_upper.hpp +47 -0
- package/vendor/include/tlx/string/trim.hpp +298 -0
- package/vendor/include/tlx/string/union_words.hpp +33 -0
- package/vendor/include/tlx/string/word_wrap.hpp +35 -0
- package/vendor/include/tlx/string.hpp +68 -0
- package/vendor/include/tlx/thread_barrier_mutex.hpp +109 -0
- package/vendor/include/tlx/thread_barrier_spin.hpp +127 -0
- package/vendor/include/tlx/thread_pool.hpp +151 -0
- package/vendor/include/tlx/timestamp.hpp +23 -0
- package/vendor/include/tlx/unused.hpp +28 -0
- package/vendor/include/tlx/vector_free.hpp +30 -0
- package/vendor/include/tlx/version.hpp +49 -0
- package/vendor/include/ttmath/ttmath.h +2881 -0
- package/vendor/include/ttmath/ttmathbig.h +6111 -0
- package/vendor/include/ttmath/ttmathdec.h +419 -0
- package/vendor/include/ttmath/ttmathint.h +1923 -0
- package/vendor/include/ttmath/ttmathmisc.h +250 -0
- package/vendor/include/ttmath/ttmathobjects.h +812 -0
- package/vendor/include/ttmath/ttmathparser.h +2791 -0
- package/vendor/include/ttmath/ttmaththreads.h +252 -0
- package/vendor/include/ttmath/ttmathtypes.h +707 -0
- package/vendor/include/ttmath/ttmathuint.h +4190 -0
- package/vendor/include/ttmath/ttmathuint_noasm.h +1038 -0
- package/vendor/include/ttmath/ttmathuint_x86.h +1620 -0
- package/vendor/include/ttmath/ttmathuint_x86_64.h +1177 -0
- package/vendor/lib/cmake/tlx/tlx-config.cmake +51 -0
- package/vendor/lib/cmake/tlx/tlx-targets-release.cmake +19 -0
- package/vendor/lib/cmake/tlx/tlx-targets.cmake +106 -0
- package/vendor/lib/cmake/tlx/tlx-version.cmake +11 -0
- package/vendor/lib/libnetworkit.dylib +0 -0
- package/vendor/lib/libtlx.a +0 -0
- package/vendor/lib/pkgconfig/networkit.pc +11 -0
- package/vendor/lib/pkgconfig/tlx.pc +11 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* KruskalMSF.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 03.09.2015
|
|
5
|
+
* Author: Henning
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef NETWORKIT_GRAPH_KRUSKAL_MSF_HPP_
|
|
9
|
+
#define NETWORKIT_GRAPH_KRUSKAL_MSF_HPP_
|
|
10
|
+
|
|
11
|
+
#include <networkit/Globals.hpp>
|
|
12
|
+
#include <networkit/graph/Graph.hpp>
|
|
13
|
+
#include <networkit/graph/SpanningForest.hpp>
|
|
14
|
+
|
|
15
|
+
namespace NetworKit {
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Creates a minimum spanning tree for each connected component.
|
|
19
|
+
* @ingroup graph
|
|
20
|
+
*/
|
|
21
|
+
class KruskalMSF final : public SpanningForest {
|
|
22
|
+
public:
|
|
23
|
+
KruskalMSF(const Graph &G);
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Computes for each component a minimum weight spanning tree
|
|
27
|
+
* (or simply a spanning tree in unweighted graphs).
|
|
28
|
+
* Uses Kruskal's algorithm.
|
|
29
|
+
* Time complexity: sort(n) + n * inverse Ackermann(n, m).
|
|
30
|
+
*/
|
|
31
|
+
void run() override;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @return Total edge-weight of the spanning forest.
|
|
35
|
+
* Number of edges in forest if input graph is unweighted.
|
|
36
|
+
*/
|
|
37
|
+
edgeweight getTotalWeight() const {
|
|
38
|
+
assureFinished();
|
|
39
|
+
if (G->isWeighted())
|
|
40
|
+
return totalWeight;
|
|
41
|
+
else
|
|
42
|
+
return static_cast<edgeweight>(forest.numberOfEdges());
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
private:
|
|
46
|
+
edgeweight totalWeight = 0.0;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
} /* namespace NetworKit */
|
|
50
|
+
#endif // NETWORKIT_GRAPH_KRUSKAL_MSF_HPP_
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* NeighborIterators.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 16.09.2024
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
#ifndef NETWORKIT_GRAPH_NEIGHBOR_ITERATORS_HPP_
|
|
8
|
+
#define NETWORKIT_GRAPH_NEIGHBOR_ITERATORS_HPP_
|
|
9
|
+
|
|
10
|
+
namespace NetworKit {
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Class to iterate over the in/out neighbors of a node.
|
|
14
|
+
*/
|
|
15
|
+
template <typename containerType>
|
|
16
|
+
class NeighborIteratorBase {
|
|
17
|
+
|
|
18
|
+
typename containerType::const_iterator elementIter;
|
|
19
|
+
|
|
20
|
+
public:
|
|
21
|
+
// The value type of the neighbors (i.e. nodes). Returned by
|
|
22
|
+
// operator*().
|
|
23
|
+
using value_type = typename containerType::value_type;
|
|
24
|
+
|
|
25
|
+
// Reference to the value_type, required by STL.
|
|
26
|
+
using reference = value_type &;
|
|
27
|
+
|
|
28
|
+
// Pointer to the value_type, required by STL.
|
|
29
|
+
using pointer = value_type *;
|
|
30
|
+
|
|
31
|
+
// STL iterator category.
|
|
32
|
+
using iterator_category = std::forward_iterator_tag;
|
|
33
|
+
|
|
34
|
+
// Signed integer type of the result of subtracting two pointers,
|
|
35
|
+
// required by STL.
|
|
36
|
+
using difference_type = ptrdiff_t;
|
|
37
|
+
|
|
38
|
+
// Own type.
|
|
39
|
+
using self = NeighborIteratorBase;
|
|
40
|
+
|
|
41
|
+
NeighborIteratorBase(typename containerType::const_iterator elementIter)
|
|
42
|
+
: elementIter(elementIter) {}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* @brief WARNING: This contructor is required for Python and should not be used as the
|
|
46
|
+
* iterator is not initialized.
|
|
47
|
+
*/
|
|
48
|
+
NeighborIteratorBase() {}
|
|
49
|
+
|
|
50
|
+
NeighborIteratorBase &operator++() {
|
|
51
|
+
++elementIter;
|
|
52
|
+
return *this;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
NeighborIteratorBase operator++(int) {
|
|
56
|
+
const auto tmp = *this;
|
|
57
|
+
++elementIter;
|
|
58
|
+
return tmp;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
NeighborIteratorBase operator--() {
|
|
62
|
+
const auto tmp = *this;
|
|
63
|
+
--elementIter;
|
|
64
|
+
return tmp;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
NeighborIteratorBase operator--(int) {
|
|
68
|
+
--elementIter;
|
|
69
|
+
return *this;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
bool operator==(const NeighborIteratorBase &rhs) const {
|
|
73
|
+
return elementIter == rhs.elementIter;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
bool operator!=(const NeighborIteratorBase &rhs) const {
|
|
77
|
+
return !(elementIter == rhs.elementIter);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
value_type operator*() const { return *elementIter; }
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Class to iterate over the in/out neighbors of a containerType, including the
|
|
85
|
+
* weights given by weightContainerType.
|
|
86
|
+
*/
|
|
87
|
+
template <typename containerType, typename weightContainerType>
|
|
88
|
+
class NeighborWeightIteratorBase {
|
|
89
|
+
|
|
90
|
+
typename containerType::const_iterator elementIter;
|
|
91
|
+
typename weightContainerType::const_iterator weightIter;
|
|
92
|
+
|
|
93
|
+
public:
|
|
94
|
+
// The value type of the neighbors (i.e. nodes). Returned by
|
|
95
|
+
// operator*().
|
|
96
|
+
using value_type =
|
|
97
|
+
std::pair<typename containerType::value_type, typename weightContainerType::value_type>;
|
|
98
|
+
|
|
99
|
+
// Reference to the value_type, required by STL.
|
|
100
|
+
using reference = value_type &;
|
|
101
|
+
|
|
102
|
+
// Pointer to the value_type, required by STL.
|
|
103
|
+
using pointer = value_type *;
|
|
104
|
+
|
|
105
|
+
// STL iterator category.
|
|
106
|
+
using iterator_category = std::forward_iterator_tag;
|
|
107
|
+
|
|
108
|
+
// Signed integer type of the result of subtracting two pointers,
|
|
109
|
+
// required by STL.
|
|
110
|
+
using difference_type = ptrdiff_t;
|
|
111
|
+
|
|
112
|
+
// Own type.
|
|
113
|
+
using self = NeighborWeightIteratorBase;
|
|
114
|
+
|
|
115
|
+
NeighborWeightIteratorBase(typename containerType::const_iterator elementIter,
|
|
116
|
+
typename weightContainerType::const_iterator weightIter)
|
|
117
|
+
: elementIter(elementIter), weightIter(weightIter) {}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* @brief WARNING: This contructor is required for Python and should not be used as the
|
|
121
|
+
* iterator is not initialized.
|
|
122
|
+
*/
|
|
123
|
+
NeighborWeightIteratorBase() {}
|
|
124
|
+
|
|
125
|
+
NeighborWeightIteratorBase &operator++() {
|
|
126
|
+
++elementIter;
|
|
127
|
+
++weightIter;
|
|
128
|
+
return *this;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
NeighborWeightIteratorBase operator++(int) {
|
|
132
|
+
const auto tmp = *this;
|
|
133
|
+
++(*this);
|
|
134
|
+
return tmp;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
NeighborWeightIteratorBase operator--() {
|
|
138
|
+
--elementIter;
|
|
139
|
+
--weightIter;
|
|
140
|
+
return *this;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
NeighborWeightIteratorBase operator--(int) {
|
|
144
|
+
const auto tmp = *this;
|
|
145
|
+
--(*this);
|
|
146
|
+
return tmp;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
bool operator==(const NeighborWeightIteratorBase &rhs) const {
|
|
150
|
+
return elementIter == rhs.elementIter && weightIter == rhs.weightIter;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
bool operator!=(const NeighborWeightIteratorBase &rhs) const { return !(*this == rhs); }
|
|
154
|
+
|
|
155
|
+
std::pair<typename containerType::value_type, typename weightContainerType::value_type>
|
|
156
|
+
operator*() const {
|
|
157
|
+
return std::make_pair(*elementIter, *weightIter);
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
} // namespace NetworKit
|
|
162
|
+
|
|
163
|
+
#endif // NETWORKIT_GRAPH_NEIGHBOR_ITERATORS_HPP_
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* NodeIterators.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 16.09.2024
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
#ifndef NETWORKIT_GRAPH_NODE_ITERATORS_HPP_
|
|
8
|
+
#define NETWORKIT_GRAPH_NODE_ITERATORS_HPP_
|
|
9
|
+
|
|
10
|
+
#include <cassert>
|
|
11
|
+
#include <iterator>
|
|
12
|
+
|
|
13
|
+
#include <networkit/Globals.hpp>
|
|
14
|
+
|
|
15
|
+
namespace NetworKit {
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Class to iterate over the nodes of a graph.
|
|
19
|
+
*/
|
|
20
|
+
template <typename GraphType>
|
|
21
|
+
class NodeIteratorBase {
|
|
22
|
+
|
|
23
|
+
const GraphType *G;
|
|
24
|
+
node u{none};
|
|
25
|
+
|
|
26
|
+
public:
|
|
27
|
+
// The value type of the nodes (i.e. nodes). Returned by
|
|
28
|
+
// operator*().
|
|
29
|
+
using value_type = node;
|
|
30
|
+
|
|
31
|
+
// Reference to the value_type, required by STL.
|
|
32
|
+
using reference = value_type &;
|
|
33
|
+
|
|
34
|
+
// Pointer to the value_type, required by STL.
|
|
35
|
+
using pointer = value_type *;
|
|
36
|
+
|
|
37
|
+
// STL iterator category.
|
|
38
|
+
using iterator_category = std::forward_iterator_tag;
|
|
39
|
+
|
|
40
|
+
// Signed integer type of the result of subtracting two pointers,
|
|
41
|
+
// required by STL.
|
|
42
|
+
using difference_type = ptrdiff_t;
|
|
43
|
+
|
|
44
|
+
// Own type.
|
|
45
|
+
using self = NodeIteratorBase;
|
|
46
|
+
|
|
47
|
+
NodeIteratorBase(const GraphType *G, node u) : G(G), u(u) {
|
|
48
|
+
if (!G->hasNode(u) && u < G->upperNodeIdBound()) {
|
|
49
|
+
++(*this);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* @brief WARNING: This constructor is required for Python and should not be used as the
|
|
55
|
+
* iterator is not initialized.
|
|
56
|
+
*/
|
|
57
|
+
NodeIteratorBase() : G(nullptr) {}
|
|
58
|
+
|
|
59
|
+
~NodeIteratorBase() = default;
|
|
60
|
+
|
|
61
|
+
NodeIteratorBase &operator++() {
|
|
62
|
+
assert(u < G->upperNodeIdBound());
|
|
63
|
+
do {
|
|
64
|
+
++u;
|
|
65
|
+
} while (!(G->hasNode(u) || u >= G->upperNodeIdBound()));
|
|
66
|
+
return *this;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
NodeIteratorBase operator++(int) {
|
|
70
|
+
const auto tmp = *this;
|
|
71
|
+
++(*this);
|
|
72
|
+
return tmp;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
NodeIteratorBase operator--() {
|
|
76
|
+
assert(u);
|
|
77
|
+
do {
|
|
78
|
+
--u;
|
|
79
|
+
} while (!G->hasNode(u));
|
|
80
|
+
return *this;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
NodeIteratorBase operator--(int) {
|
|
84
|
+
const auto tmp = *this;
|
|
85
|
+
--(*this);
|
|
86
|
+
return tmp;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
bool operator==(const NodeIteratorBase &rhs) const noexcept { return u == rhs.u; }
|
|
90
|
+
|
|
91
|
+
bool operator!=(const NodeIteratorBase &rhs) const noexcept { return !(*this == rhs); }
|
|
92
|
+
|
|
93
|
+
node operator*() const noexcept {
|
|
94
|
+
assert(u < G->upperNodeIdBound());
|
|
95
|
+
return u;
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Wrapper class to iterate over a range of the nodes of a graph.
|
|
101
|
+
*/
|
|
102
|
+
template <typename GraphType>
|
|
103
|
+
class NodeRangeBase {
|
|
104
|
+
|
|
105
|
+
const GraphType *G;
|
|
106
|
+
|
|
107
|
+
public:
|
|
108
|
+
NodeRangeBase(const GraphType &G) : G(&G) {}
|
|
109
|
+
|
|
110
|
+
NodeRangeBase() : G(nullptr){};
|
|
111
|
+
|
|
112
|
+
~NodeRangeBase() = default;
|
|
113
|
+
|
|
114
|
+
NodeIteratorBase<GraphType> begin() const noexcept {
|
|
115
|
+
assert(G);
|
|
116
|
+
return NodeIteratorBase(G, node{0});
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
NodeIteratorBase<GraphType> end() const noexcept {
|
|
120
|
+
assert(G);
|
|
121
|
+
return NodeIteratorBase(G, G->upperNodeIdBound());
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
} // namespace NetworKit
|
|
126
|
+
|
|
127
|
+
#endif // NETWORKIT_GRAPH_NODE_ITERATORS_HPP_
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
|
|
2
|
+
/* PrimMST.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 29.03.2025
|
|
5
|
+
* Authors: Andreas Scharf (andreas.b.scharf@gmail.com)
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
#ifndef NETWORKIT_GRAPH_PRIM_MSF_HPP_
|
|
9
|
+
#define NETWORKIT_GRAPH_PRIM_MSF_HPP_
|
|
10
|
+
#include <networkit/Globals.hpp>
|
|
11
|
+
#include <networkit/graph/Graph.hpp>
|
|
12
|
+
#include <networkit/graph/SpanningForest.hpp>
|
|
13
|
+
|
|
14
|
+
namespace NetworKit {
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @class PrimMSF
|
|
18
|
+
* @brief Computes a Minimum Spanning Forest using Prim's algorithm.
|
|
19
|
+
*
|
|
20
|
+
* For a given undirected graph, this algorithm grows a forest by greedily
|
|
21
|
+
* adding the smallest edge between visited and unvisited nodes.
|
|
22
|
+
* If the graph is connected, the result is a Minimum Spanning Tree (MST).
|
|
23
|
+
* Otherwise, it yields a forest of MSTs for each connected component.
|
|
24
|
+
*/
|
|
25
|
+
class PrimMSF : public SpanningForest {
|
|
26
|
+
public:
|
|
27
|
+
/**
|
|
28
|
+
* @brief Initializes the PrimMSF algorithm for a given graph.
|
|
29
|
+
*
|
|
30
|
+
* The input graph must be undirected. It may be either weighted or unweighted.
|
|
31
|
+
* In the case of an unweighted graph, each edge is treated as having unit weight.
|
|
32
|
+
*
|
|
33
|
+
* @param G The graph on which the minimum spanning forest will be computed.
|
|
34
|
+
* @throws std::runtime_error if graph is not an undirected graph
|
|
35
|
+
*/
|
|
36
|
+
PrimMSF(const Graph &G) : SpanningForest(G) {
|
|
37
|
+
if (G.isDirected()) {
|
|
38
|
+
throw std::runtime_error("The graph is not an undirected graph.");
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* @brief Runs Prim's algorithm to compute the minimum spanning forest.
|
|
44
|
+
*
|
|
45
|
+
* For each connected component of the graph, constructs a minimum spanning tree
|
|
46
|
+
* and computes the total weight of the resulting forest.
|
|
47
|
+
*/
|
|
48
|
+
void run() override;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* @brief Returns the total weight of the minimum spanning forest.
|
|
52
|
+
* @return The total weight of the minimum spanning forest.
|
|
53
|
+
*/
|
|
54
|
+
edgeweight getTotalWeight() const {
|
|
55
|
+
assureFinished();
|
|
56
|
+
if (G->isWeighted())
|
|
57
|
+
return totalWeight;
|
|
58
|
+
return static_cast<edgeweight>(forest.numberOfEdges());
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
private:
|
|
62
|
+
static constexpr edgeweight infiniteWeight = std::numeric_limits<edgeweight>::max();
|
|
63
|
+
edgeweight totalWeight = 0;
|
|
64
|
+
};
|
|
65
|
+
} // namespace NetworKit
|
|
66
|
+
#endif // NETWORKIT_GRAPH_PRIM_MSF_HPP_
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
#ifndef NETWORKIT_GRAPH_RANDOM_MAXIMUM_SPANNING_FOREST_HPP_
|
|
2
|
+
#define NETWORKIT_GRAPH_RANDOM_MAXIMUM_SPANNING_FOREST_HPP_
|
|
3
|
+
|
|
4
|
+
#include <limits>
|
|
5
|
+
|
|
6
|
+
#include <networkit/auxiliary/Log.hpp>
|
|
7
|
+
#include <networkit/auxiliary/Random.hpp>
|
|
8
|
+
#include <networkit/base/Algorithm.hpp>
|
|
9
|
+
#include <networkit/graph/GraphW.hpp>
|
|
10
|
+
#include <networkit/structures/UnionFind.hpp>
|
|
11
|
+
|
|
12
|
+
namespace NetworKit {
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Computes a random maximum-weight spanning forest using Kruskal's algorithm by randomizing the
|
|
16
|
+
* order of edges of the same weight.
|
|
17
|
+
*/
|
|
18
|
+
class RandomMaximumSpanningForest : public Algorithm {
|
|
19
|
+
public:
|
|
20
|
+
/**
|
|
21
|
+
* Initialize the random maximum-weight spanning forest algorithm, uses edge weights.
|
|
22
|
+
*
|
|
23
|
+
* @param G The input graph.
|
|
24
|
+
*/
|
|
25
|
+
RandomMaximumSpanningForest(const Graph &G);
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Initialize the random maximum-weight spanning forest algorithm using an attribute as edge
|
|
29
|
+
* weight.
|
|
30
|
+
*
|
|
31
|
+
* This copies the attribute values, the supplied attribute vector is not stored.
|
|
32
|
+
*
|
|
33
|
+
* @param G The input graph.
|
|
34
|
+
* @param attribute The attribute to use, can be either of type edgeweight (double) or count
|
|
35
|
+
* (uint64), internally all values are handled as double.
|
|
36
|
+
*/
|
|
37
|
+
template <typename A>
|
|
38
|
+
RandomMaximumSpanningForest(const Graph &G, const std::vector<A> &attribute);
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Execute the algorithm. The algorithm is not parallel.
|
|
42
|
+
*/
|
|
43
|
+
void run() override;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Get a boolean attribute that indicates for each edge if it is part of the calculated
|
|
47
|
+
* maximum-weight spanning forest.
|
|
48
|
+
*
|
|
49
|
+
* This attribute is only calculated and can thus only be request if the supplied graph has edge
|
|
50
|
+
* ids.
|
|
51
|
+
*
|
|
52
|
+
* @param move If the attribute shall be moved out of the algorithm instance.
|
|
53
|
+
* @return The vector with the boolean attribute for each edge.
|
|
54
|
+
*/
|
|
55
|
+
std::vector<bool> getAttribute(bool move = false);
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Checks if the edge (@a u, @a v) is part of the calculated maximum-weight spanning forest.
|
|
59
|
+
*
|
|
60
|
+
* @param u The first node of the edge to check
|
|
61
|
+
* @param v The second node of the edge to check
|
|
62
|
+
* @return If the edge is part of the calculated maximum-weight spanning forest.
|
|
63
|
+
*/
|
|
64
|
+
bool inMSF(node u, node v) const;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Checks if the edge with the id @a eid is part of the calculated maximum-weight spanning
|
|
68
|
+
* forest.
|
|
69
|
+
*
|
|
70
|
+
* @param eid The id of the edge to check.
|
|
71
|
+
* @return If the edge is part of the calculated maximum-weight spanning forest.
|
|
72
|
+
*/
|
|
73
|
+
bool inMSF(edgeid eid) const;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Gets the calculated maximum-weight spanning forest as graph.
|
|
77
|
+
*
|
|
78
|
+
* @param move If the graph shall be moved out of the algorithm instance.
|
|
79
|
+
* @return The calculated maximum-weight spanning forest.
|
|
80
|
+
*/
|
|
81
|
+
GraphW getMSF(bool move = false);
|
|
82
|
+
|
|
83
|
+
private:
|
|
84
|
+
struct weightedEdge {
|
|
85
|
+
double attribute;
|
|
86
|
+
node u;
|
|
87
|
+
node v;
|
|
88
|
+
edgeid eid;
|
|
89
|
+
index rand;
|
|
90
|
+
|
|
91
|
+
bool operator>(const weightedEdge &other) const {
|
|
92
|
+
return (attribute > other.attribute)
|
|
93
|
+
|| (attribute == other.attribute
|
|
94
|
+
&& (rand > other.rand
|
|
95
|
+
|| (rand == other.rand
|
|
96
|
+
&& (u > other.u || (u == other.u && v > other.v)))));
|
|
97
|
+
};
|
|
98
|
+
weightedEdge(node u, node v, double attribute, edgeid eid = 0)
|
|
99
|
+
: attribute(attribute), u(u), v(v), eid(eid), rand(Aux::Random::integer()){};
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
const Graph &G;
|
|
103
|
+
std::vector<weightedEdge> weightedEdges;
|
|
104
|
+
|
|
105
|
+
GraphW msf;
|
|
106
|
+
std::vector<bool> msfAttribute;
|
|
107
|
+
|
|
108
|
+
bool hasWeightedEdges;
|
|
109
|
+
bool hasMSF;
|
|
110
|
+
bool hasAttribute;
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
template <typename A>
|
|
114
|
+
RandomMaximumSpanningForest::RandomMaximumSpanningForest(const Graph &G,
|
|
115
|
+
const std::vector<A> &attribute)
|
|
116
|
+
: G(G), hasWeightedEdges(false), hasMSF(false), hasAttribute(false) {
|
|
117
|
+
if (!G.hasEdgeIds()) {
|
|
118
|
+
throw std::runtime_error("Error: Edges of G must be indexed for using edge attributes");
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
weightedEdges.reserve(G.numberOfEdges());
|
|
122
|
+
|
|
123
|
+
G.forEdges(
|
|
124
|
+
[&](node u, node v, edgeid eid) { weightedEdges.emplace_back(u, v, attribute[eid], eid); });
|
|
125
|
+
|
|
126
|
+
INFO(weightedEdges.size(), " weighted edges saved");
|
|
127
|
+
|
|
128
|
+
hasWeightedEdges = true;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
} // namespace NetworKit
|
|
132
|
+
|
|
133
|
+
#endif // NETWORKIT_GRAPH_RANDOM_MAXIMUM_SPANNING_FOREST_HPP_
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* SpanningForest.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 06.09.2015
|
|
5
|
+
* Author: Henning
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef NETWORKIT_GRAPH_SPANNING_FOREST_HPP_
|
|
9
|
+
#define NETWORKIT_GRAPH_SPANNING_FOREST_HPP_
|
|
10
|
+
|
|
11
|
+
#include <networkit/base/Algorithm.hpp>
|
|
12
|
+
#include <networkit/graph/Graph.hpp>
|
|
13
|
+
#include <networkit/graph/GraphW.hpp>
|
|
14
|
+
|
|
15
|
+
namespace NetworKit {
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Base class for spanning forest/tree algorithms.
|
|
19
|
+
*/
|
|
20
|
+
class SpanningForest : public Algorithm {
|
|
21
|
+
protected:
|
|
22
|
+
const Graph *G;
|
|
23
|
+
GraphW forest;
|
|
24
|
+
|
|
25
|
+
public:
|
|
26
|
+
SpanningForest(const Graph &G) : G(&G) {}
|
|
27
|
+
|
|
28
|
+
void run() override;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @return Forest computed by run method.
|
|
32
|
+
* Note: So far no explicit check if run method has been invoked before.
|
|
33
|
+
*/
|
|
34
|
+
const GraphW &getForest() {
|
|
35
|
+
assureFinished();
|
|
36
|
+
return forest;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
} /* namespace NetworKit */
|
|
41
|
+
#endif // NETWORKIT_GRAPH_SPANNING_FOREST_HPP_
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* TopologicalSort.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 22.11.2021
|
|
5
|
+
* Author: Fabian Brandt-Tumescheit
|
|
6
|
+
*/
|
|
7
|
+
#ifndef NETWORKIT_GRAPH_TOPOLOGICAL_SORT_HPP_
|
|
8
|
+
#define NETWORKIT_GRAPH_TOPOLOGICAL_SORT_HPP_
|
|
9
|
+
|
|
10
|
+
#include <optional>
|
|
11
|
+
#include <unordered_map>
|
|
12
|
+
#include <networkit/base/Algorithm.hpp>
|
|
13
|
+
#include <networkit/graph/Graph.hpp>
|
|
14
|
+
|
|
15
|
+
namespace NetworKit {
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Given a directed graph G, the topology sort algorithm creates one valid topology order of nodes.
|
|
19
|
+
* Undirected graphs are not accepted as input, since a topology sort is a linear ordering of
|
|
20
|
+
* vertices such that for every edge u -> v, node u comes before v in the ordering.
|
|
21
|
+
*/
|
|
22
|
+
class TopologicalSort final : public Algorithm {
|
|
23
|
+
public:
|
|
24
|
+
/**
|
|
25
|
+
* Initialize the topological sort algorithm by passing an input graph.
|
|
26
|
+
*
|
|
27
|
+
* @param G The input graph.
|
|
28
|
+
*/
|
|
29
|
+
TopologicalSort(const Graph &G);
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Initialize the topological sort algorithm by passing an input graph and an node id map.
|
|
33
|
+
* The node id mapping must be a continuous. This can be checked by setting checkMapping to
|
|
34
|
+
* true.
|
|
35
|
+
*
|
|
36
|
+
* @param G The input graph.
|
|
37
|
+
* @param nodeIdMapping Node id mapping from non-continuous to continuous ids.
|
|
38
|
+
* @param checkMapping Check whether the given node id map is continuous.
|
|
39
|
+
*/
|
|
40
|
+
TopologicalSort(const Graph &G, const std::unordered_map<node, node> &nodeIdMapping,
|
|
41
|
+
bool checkMapping = false);
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Execute the algorithm. The algorithm is not parallel.
|
|
45
|
+
*/
|
|
46
|
+
void run() override;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Return the topology
|
|
50
|
+
*
|
|
51
|
+
* @return One valid topology. Order in topology is from 0 to number of nodes.
|
|
52
|
+
*/
|
|
53
|
+
const std::vector<node> &getResult() const {
|
|
54
|
+
assureFinished();
|
|
55
|
+
return topology;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
private:
|
|
59
|
+
enum class NodeMark : unsigned char { NONE, TEMP, PERM };
|
|
60
|
+
|
|
61
|
+
const Graph &G;
|
|
62
|
+
|
|
63
|
+
std::optional<std::unordered_map<node, node>> computedNodeIdMap;
|
|
64
|
+
|
|
65
|
+
const std::unordered_map<node, node> *nodeIdMap = nullptr;
|
|
66
|
+
|
|
67
|
+
// Used to mark the status of each node, one vector per thread
|
|
68
|
+
std::vector<NodeMark> topSortMark;
|
|
69
|
+
|
|
70
|
+
// Contains information about the computed topology
|
|
71
|
+
std::vector<node> topology;
|
|
72
|
+
|
|
73
|
+
// Helper structures
|
|
74
|
+
count current;
|
|
75
|
+
|
|
76
|
+
void checkDirected();
|
|
77
|
+
|
|
78
|
+
void checkNodeIdMap();
|
|
79
|
+
|
|
80
|
+
node mapNode(node u);
|
|
81
|
+
|
|
82
|
+
// Reset algorithm data structure
|
|
83
|
+
void reset();
|
|
84
|
+
};
|
|
85
|
+
} // namespace NetworKit
|
|
86
|
+
|
|
87
|
+
#endif // NETWORKIT_GRAPH_TOPOLOGICAL_SORT_HPP_
|