@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,303 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* GlobalTradeSequence.hpp
|
|
3
|
+
*
|
|
4
|
+
* This header file is deprecated and will eventually be removed.
|
|
5
|
+
* Do not included it directly.
|
|
6
|
+
*
|
|
7
|
+
* Created on: 23.05.2018
|
|
8
|
+
* Author: Manuel Penschuck <networkit@manuel.jetzt>
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#ifndef NETWORKIT_RANDOMIZATION_GLOBAL_TRADE_SEQUENCE_HPP_
|
|
12
|
+
#define NETWORKIT_RANDOMIZATION_GLOBAL_TRADE_SEQUENCE_HPP_
|
|
13
|
+
|
|
14
|
+
#ifndef NETWORKIT_PRIVATE_RANDOMIZATION_GLOBAL_TRADE_SEQUENCE_HPP_
|
|
15
|
+
#if defined(__clang__) || defined(__GNUG__)
|
|
16
|
+
#warning "This header file is deprecated. Do not included it directly."
|
|
17
|
+
#elif defined(_MSC_VER)
|
|
18
|
+
#pragma message("This header file is deprecated. Do not included it directly.")
|
|
19
|
+
#endif
|
|
20
|
+
#endif // NETWORKIT_PRIVATE_RANDOMIZATION_GLOBAL_TRADE_SEQUENCE_HPP_
|
|
21
|
+
|
|
22
|
+
#include <cassert>
|
|
23
|
+
#include <cmath>
|
|
24
|
+
#include <iostream>
|
|
25
|
+
#include <random>
|
|
26
|
+
#include <tuple>
|
|
27
|
+
#include <type_traits>
|
|
28
|
+
|
|
29
|
+
#include <networkit/Globals.hpp>
|
|
30
|
+
#include <networkit/auxiliary/Log.hpp>
|
|
31
|
+
|
|
32
|
+
namespace NetworKit {
|
|
33
|
+
namespace CurveballDetails {
|
|
34
|
+
|
|
35
|
+
template <typename T>
|
|
36
|
+
class FixedLinearCongruentialMap; // forward declaration (implementation below)
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Computes a bijection f:[p]->[p], x -> (a*x+b) mod p where p is chosen
|
|
40
|
+
* as the smallest p >= n and p prime. a and b are drawn unif at random.
|
|
41
|
+
* @tparam T
|
|
42
|
+
*/
|
|
43
|
+
template <typename T>
|
|
44
|
+
class LinearCongruentialMap {
|
|
45
|
+
static_assert(!std::is_signed<T>::value, "LinearCongruentialMap requires unsigned types");
|
|
46
|
+
|
|
47
|
+
using signed_value_type = typename std::make_signed<T>::type;
|
|
48
|
+
using signed_tuple = std::tuple<signed_value_type, signed_value_type, signed_value_type>;
|
|
49
|
+
|
|
50
|
+
friend FixedLinearCongruentialMap<T>;
|
|
51
|
+
|
|
52
|
+
public:
|
|
53
|
+
using value_type = T;
|
|
54
|
+
|
|
55
|
+
LinearCongruentialMap() {}
|
|
56
|
+
|
|
57
|
+
explicit LinearCongruentialMap(value_type n, unsigned seed = 0) : n(n), p(computeNextPrime(n)) {
|
|
58
|
+
std::mt19937_64 prng(seed * n + n);
|
|
59
|
+
sampleParameters(prng);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
LinearCongruentialMap(value_type n, std::mt19937_64 &prng) : n(n), p(computeNextPrime(n)) {
|
|
63
|
+
sampleParameters(prng);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
LinearCongruentialMap(value_type n, value_type a, value_type b)
|
|
67
|
+
: n(n), p(computeNextPrime(n)), a(a),
|
|
68
|
+
ainv(static_cast<value_type>((std::get<1>(gcdExtended(a, p)) + p) % p)), b(b) {}
|
|
69
|
+
|
|
70
|
+
LinearCongruentialMap(const LinearCongruentialMap &) = default;
|
|
71
|
+
LinearCongruentialMap(LinearCongruentialMap &&) noexcept = default;
|
|
72
|
+
LinearCongruentialMap &operator=(const LinearCongruentialMap &) = default;
|
|
73
|
+
LinearCongruentialMap &operator=(LinearCongruentialMap &&) noexcept = default;
|
|
74
|
+
|
|
75
|
+
//! Hashes [n] to [p] with (a*x+b) mod p
|
|
76
|
+
value_type hash(value_type n) const { return (a * n + b) % p; }
|
|
77
|
+
|
|
78
|
+
//! Alias to hash(n)
|
|
79
|
+
value_type operator()(value_type n) const { return hash(n); }
|
|
80
|
+
|
|
81
|
+
//! invert(hash(x)) == x
|
|
82
|
+
value_type invert(value_type y) const { return ainv * (y + p - b) % p; }
|
|
83
|
+
|
|
84
|
+
//! Is true if there exists no x in [n], s.t. h(x) == y,
|
|
85
|
+
//! i.e. it can be used to determine if the map maps to y
|
|
86
|
+
bool isGap(value_type y) const { return invert(y) >= n; }
|
|
87
|
+
|
|
88
|
+
//! randomly samples parameters a and b
|
|
89
|
+
void sampleParameters(std::mt19937_64 &prng) {
|
|
90
|
+
const value_type max_a = std::numeric_limits<value_type>::max() / n - 1;
|
|
91
|
+
if (max_a < p) {
|
|
92
|
+
std::cerr << "WARNING: Reduce randomness of hash function to avoid integer "
|
|
93
|
+
"precision issues\n";
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
a = std::uniform_int_distribution<value_type>{1, std::min<value_type>(p, max_a) - 1}(prng);
|
|
97
|
+
ainv = static_cast<value_type>((std::get<1>(gcdExtended(a, p)) + p) % p);
|
|
98
|
+
b = std::uniform_int_distribution<value_type>{0, p - 1}(prng);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
//! Sets parameters a = 1 and b = 0
|
|
102
|
+
void setAsIdentity() {
|
|
103
|
+
a = 1;
|
|
104
|
+
b = 0;
|
|
105
|
+
ainv = 1;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
value_type param_a() const { return a; }
|
|
109
|
+
value_type param_ainv() const { return ainv; }
|
|
110
|
+
value_type param_b() const { return b; }
|
|
111
|
+
value_type param_p() const { return p; }
|
|
112
|
+
|
|
113
|
+
private:
|
|
114
|
+
value_type n; //< number of elements to be mapped
|
|
115
|
+
value_type p; //< size of the universe chosen to be >= n
|
|
116
|
+
|
|
117
|
+
value_type a; //< multiplicative parameter in hash
|
|
118
|
+
value_type ainv; //< multiplicative invert
|
|
119
|
+
|
|
120
|
+
value_type b; //< additive parameter in hash
|
|
121
|
+
|
|
122
|
+
value_type computeNextPrime(value_type n) const {
|
|
123
|
+
auto is_prime = [](value_type n) {
|
|
124
|
+
if (n <= 3)
|
|
125
|
+
return true;
|
|
126
|
+
if (0 == n % 2 || 0 == n % 3)
|
|
127
|
+
return false;
|
|
128
|
+
|
|
129
|
+
const value_type sqrt = static_cast<value_type>(std::sqrt(n) + 2);
|
|
130
|
+
for (value_type i = 5; i < sqrt; i += 6)
|
|
131
|
+
if (0 == n % i)
|
|
132
|
+
return false;
|
|
133
|
+
|
|
134
|
+
return true;
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
while (!is_prime(n))
|
|
138
|
+
n++;
|
|
139
|
+
|
|
140
|
+
return n;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// extended Euclidean algorithm with 1 = gcd(a, p) = a*s + t*p mod p = a*s
|
|
144
|
+
// --> s = 1/a
|
|
145
|
+
static signed_tuple gcdExtended(signed_value_type a, signed_value_type b) noexcept {
|
|
146
|
+
if (a == 0)
|
|
147
|
+
return signed_tuple{b, 0, 1};
|
|
148
|
+
|
|
149
|
+
const value_type div = b / a;
|
|
150
|
+
const value_type rem = b % a;
|
|
151
|
+
|
|
152
|
+
const auto recursion = gcdExtended(rem, a);
|
|
153
|
+
value_type x = std::get<2>(recursion) - div * std::get<1>(recursion);
|
|
154
|
+
|
|
155
|
+
return signed_tuple(std::get<0>(recursion), x, std::get<1>(recursion));
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Computes a bijection f:[p]->[p], x -> (a*x+b) mod p where p is chosen
|
|
161
|
+
* as the smallest p >= n and p prime. a and b are drawn unif at random.
|
|
162
|
+
* @tparam T
|
|
163
|
+
*/
|
|
164
|
+
template <typename T>
|
|
165
|
+
class FixedLinearCongruentialMap {
|
|
166
|
+
static_assert(!std::is_signed<T>::value, "LinearCongruentialMap requires unsigned types");
|
|
167
|
+
|
|
168
|
+
using signed_value_type = typename std::make_signed<T>::type;
|
|
169
|
+
using signed_tuple = std::tuple<signed_value_type, signed_value_type, signed_value_type>;
|
|
170
|
+
|
|
171
|
+
public:
|
|
172
|
+
using value_type = T;
|
|
173
|
+
|
|
174
|
+
FixedLinearCongruentialMap() {}
|
|
175
|
+
|
|
176
|
+
explicit FixedLinearCongruentialMap(value_type n, unsigned seed = 0) : n(n) {
|
|
177
|
+
std::mt19937_64 prng(seed * n + n);
|
|
178
|
+
sampleParameters(prng);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
FixedLinearCongruentialMap(value_type n, std::mt19937_64 &prng) : n(n) {
|
|
182
|
+
sampleParameters(prng);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
FixedLinearCongruentialMap(value_type n, value_type a, value_type b)
|
|
186
|
+
: n(n), a(a), //
|
|
187
|
+
ainv(static_cast<value_type>(
|
|
188
|
+
(std::get<1>(LinearCongruentialMap<T>::gcdExtended(a, p)) + p) % p)),
|
|
189
|
+
b(b) {}
|
|
190
|
+
|
|
191
|
+
FixedLinearCongruentialMap(const FixedLinearCongruentialMap &) = default;
|
|
192
|
+
FixedLinearCongruentialMap(FixedLinearCongruentialMap &&) noexcept = default;
|
|
193
|
+
FixedLinearCongruentialMap &operator=(const FixedLinearCongruentialMap &) = default;
|
|
194
|
+
FixedLinearCongruentialMap &operator=(FixedLinearCongruentialMap &&) noexcept = default;
|
|
195
|
+
|
|
196
|
+
//! Hashes [n] to [p] with (a*x+b) mod p
|
|
197
|
+
value_type hash(value_type n) const { return (a * n + b) % p; }
|
|
198
|
+
|
|
199
|
+
//! Alias to hash(n)
|
|
200
|
+
value_type operator()(value_type n) const { return hash(n); }
|
|
201
|
+
|
|
202
|
+
//! invert(hash(x)) == x
|
|
203
|
+
value_type invert(value_type y) const { return ainv * (y + p - b) % p; }
|
|
204
|
+
|
|
205
|
+
//! Is true if there exists no x in [n], s.t. h(x) == y,
|
|
206
|
+
//! i.e. it can be used to determine if the map maps to y
|
|
207
|
+
bool isGap(value_type y) const { return invert(y) >= n; }
|
|
208
|
+
|
|
209
|
+
//! randomly samples parameters a and b
|
|
210
|
+
void sampleParameters(std::mt19937_64 &prng) {
|
|
211
|
+
if (n >= p)
|
|
212
|
+
throw std::runtime_error("Support only up to 2147483646 nodes");
|
|
213
|
+
|
|
214
|
+
a = std::uniform_int_distribution<value_type>{1, p - 1}(prng);
|
|
215
|
+
ainv = static_cast<value_type>(
|
|
216
|
+
(std::get<1>(LinearCongruentialMap<T>::gcdExtended(a, p)) + p) % p);
|
|
217
|
+
b = std::uniform_int_distribution<value_type>{0, p - 1}(prng);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
//! Sets parameters a = 1 and b = 0
|
|
221
|
+
void setAsIdentity() {
|
|
222
|
+
a = 1;
|
|
223
|
+
b = 0;
|
|
224
|
+
ainv = 1;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
value_type param_a() const { return a; }
|
|
228
|
+
value_type param_ainv() const { return ainv; }
|
|
229
|
+
value_type param_b() const { return b; }
|
|
230
|
+
value_type param_p() const { return p; }
|
|
231
|
+
|
|
232
|
+
private:
|
|
233
|
+
value_type n; //< number of elements to be mapped
|
|
234
|
+
static constexpr value_type p = 2147483647;
|
|
235
|
+
|
|
236
|
+
value_type a; //< multiplicative parameter in hash
|
|
237
|
+
value_type ainv; //< multiplicative invert
|
|
238
|
+
|
|
239
|
+
value_type b; //< additive parameter in hash
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Handles a sequence of num_global_trades hash functions each with its own
|
|
244
|
+
* set of parameters. It prominently exposes the "current" hash function
|
|
245
|
+
* and its successors. Switching the current hash function is possible with
|
|
246
|
+
* using the switch_to_round method.
|
|
247
|
+
*
|
|
248
|
+
* hash, invert access the "current" hash function
|
|
249
|
+
* hash_next accesses the successor of "current" which is the identity if
|
|
250
|
+
* there are no further hash functions
|
|
251
|
+
*
|
|
252
|
+
* @tparam Default constructable, copy-able, requires methods
|
|
253
|
+
* sample_parameters, set_as_identity, hash and (optinally) invert
|
|
254
|
+
*/
|
|
255
|
+
template <typename Hash>
|
|
256
|
+
class GlobalTradeSequence {
|
|
257
|
+
public:
|
|
258
|
+
using value_type = typename Hash::value_type;
|
|
259
|
+
|
|
260
|
+
GlobalTradeSequence(node num_nodes, size_t num_global_trades, std::mt19937_64 &prng) {
|
|
261
|
+
hashFunctors.reserve(num_global_trades);
|
|
262
|
+
hashFunctors.push_back(Hash{num_nodes, prng});
|
|
263
|
+
|
|
264
|
+
while (hashFunctors.size() < num_global_trades) {
|
|
265
|
+
// we copy the hash function, rather than constructing a new one,
|
|
266
|
+
// to avoid repeated computations, such as the next larger prime
|
|
267
|
+
// number
|
|
268
|
+
hashFunctors.push_back(hashFunctors.back());
|
|
269
|
+
hashFunctors.back().sampleParameters(prng);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
switchToRound(0);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
void switchToRound(size_t round) {
|
|
276
|
+
assert(round < hashFunctors.size());
|
|
277
|
+
current = hashFunctors[round];
|
|
278
|
+
if (round + 1 == hashFunctors.size()) {
|
|
279
|
+
next = current;
|
|
280
|
+
next.setAsIdentity();
|
|
281
|
+
} else {
|
|
282
|
+
next = hashFunctors[round + 1];
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
value_type hash(node u) const { return current.hash(u); }
|
|
287
|
+
|
|
288
|
+
node invert(value_type u) const { return current.invert(u); }
|
|
289
|
+
|
|
290
|
+
value_type hashNext(node u) const { return next.hash(u); }
|
|
291
|
+
|
|
292
|
+
size_t numberOfRounds() const { return hashFunctors.size(); }
|
|
293
|
+
|
|
294
|
+
private:
|
|
295
|
+
std::vector<Hash> hashFunctors;
|
|
296
|
+
Hash current;
|
|
297
|
+
Hash next;
|
|
298
|
+
};
|
|
299
|
+
|
|
300
|
+
} // namespace CurveballDetails
|
|
301
|
+
} // namespace NetworKit
|
|
302
|
+
|
|
303
|
+
#endif // NETWORKIT_RANDOMIZATION_GLOBAL_TRADE_SEQUENCE_HPP_
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AllSimplePaths.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 23.06.2017
|
|
5
|
+
* Author: Eugenio Angriman <angrimae@hu-berlin.de>
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef NETWORKIT_REACHABILITY_ALL_SIMPLE_PATHS_HPP_
|
|
9
|
+
#define NETWORKIT_REACHABILITY_ALL_SIMPLE_PATHS_HPP_
|
|
10
|
+
|
|
11
|
+
#include <networkit/base/Algorithm.hpp>
|
|
12
|
+
#include <networkit/graph/Graph.hpp>
|
|
13
|
+
|
|
14
|
+
namespace NetworKit {
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @ingroup distance
|
|
18
|
+
* Determines all the possible simple paths from a given source node to a target node of a directed
|
|
19
|
+
* unweighted graph. It also accepts a cutoff value i.e. the maximum length of paths.
|
|
20
|
+
*/
|
|
21
|
+
class AllSimplePaths final : public Algorithm {
|
|
22
|
+
|
|
23
|
+
public:
|
|
24
|
+
/**
|
|
25
|
+
* Creates the AllSimplePaths class for @a G, source @a s and target @a t.
|
|
26
|
+
*
|
|
27
|
+
* @param G The graph.
|
|
28
|
+
* @param source The source node.
|
|
29
|
+
* @param target The target node.
|
|
30
|
+
* @param cutoff The maximum length of the paths.
|
|
31
|
+
*/
|
|
32
|
+
AllSimplePaths(const Graph &G, node source, node target, count cutoff = none);
|
|
33
|
+
|
|
34
|
+
~AllSimplePaths() override = default;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* This method computes all possible paths from a given source node to a target node.
|
|
38
|
+
*/
|
|
39
|
+
void run() override;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* This method returns the number of simple paths from the source node to the target node.
|
|
43
|
+
*/
|
|
44
|
+
count numberOfSimplePaths();
|
|
45
|
+
|
|
46
|
+
/*
|
|
47
|
+
* This method returns a vector that contains all the simple paths from a source node to a
|
|
48
|
+
* target node represented by vectors. Each path contains the source node as the first element
|
|
49
|
+
* and the target node as the last element.
|
|
50
|
+
*/
|
|
51
|
+
std::vector<std::vector<node>> getAllSimplePaths();
|
|
52
|
+
|
|
53
|
+
/*
|
|
54
|
+
* This method iterates over all the simple paths and it is far more efficient than calling
|
|
55
|
+
* getAllSimplePaths().
|
|
56
|
+
*/
|
|
57
|
+
template <typename L>
|
|
58
|
+
void forAllSimplePaths(L handle);
|
|
59
|
+
|
|
60
|
+
/*
|
|
61
|
+
* This method iterates in parallel over all the simple paths and it is far more efficient than
|
|
62
|
+
* calling getAllSimplePaths().
|
|
63
|
+
*/
|
|
64
|
+
template <typename L>
|
|
65
|
+
void parallelForAllSimplePaths(L handle);
|
|
66
|
+
|
|
67
|
+
private:
|
|
68
|
+
// This method computes all the paths after a reverse BFS from the target node and a normal BFS
|
|
69
|
+
// from the source node.
|
|
70
|
+
void computePaths();
|
|
71
|
+
|
|
72
|
+
// This method returns a queue that contains all the nodes that could be part of a path from the
|
|
73
|
+
// source to the target that crosses @s.
|
|
74
|
+
std::vector<node> getAvailableSources(node s, count pathLength = 0);
|
|
75
|
+
|
|
76
|
+
// The graph
|
|
77
|
+
const Graph *G;
|
|
78
|
+
// The source node
|
|
79
|
+
node source;
|
|
80
|
+
// The target node
|
|
81
|
+
node target;
|
|
82
|
+
// The cutoff i.e. maximum length of paths from source to target. It is optional.
|
|
83
|
+
count cutoff;
|
|
84
|
+
|
|
85
|
+
// This vector contains the distance from each node to the target node.
|
|
86
|
+
std::vector<count> distanceToTarget;
|
|
87
|
+
// This vector contains the distance from the source node to each node.
|
|
88
|
+
std::vector<count> distanceFromSource;
|
|
89
|
+
// This vector contains all the possible paths from source to target.
|
|
90
|
+
std::vector<std::vector<node>> paths;
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
inline count AllSimplePaths::numberOfSimplePaths() {
|
|
94
|
+
assureFinished();
|
|
95
|
+
return paths.size();
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
inline std::vector<std::vector<node>> AllSimplePaths::getAllSimplePaths() {
|
|
99
|
+
assureFinished();
|
|
100
|
+
return paths;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
template <typename L>
|
|
104
|
+
void AllSimplePaths::forAllSimplePaths(L handle) {
|
|
105
|
+
assureFinished();
|
|
106
|
+
for (std::vector<std::vector<node>>::iterator it = paths.begin(); it != paths.end(); ++it) {
|
|
107
|
+
handle(*it);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
template <typename L>
|
|
112
|
+
void AllSimplePaths::parallelForAllSimplePaths(L handle) {
|
|
113
|
+
assureFinished();
|
|
114
|
+
#pragma omp parallel for schedule(guided)
|
|
115
|
+
for (omp_index i = 0; i < static_cast<omp_index>(paths.size()); ++i) {
|
|
116
|
+
handle(paths[i]);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
} // namespace NetworKit
|
|
121
|
+
|
|
122
|
+
#endif // NETWORKIT_REACHABILITY_ALL_SIMPLE_PATHS_HPP_
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
|
|
2
|
+
#ifndef NETWORKIT_REACHABILITY_REACHABLE_NODES_HPP_
|
|
3
|
+
#define NETWORKIT_REACHABILITY_REACHABLE_NODES_HPP_
|
|
4
|
+
|
|
5
|
+
#include <vector>
|
|
6
|
+
|
|
7
|
+
#include <networkit/base/Algorithm.hpp>
|
|
8
|
+
#include <networkit/graph/Graph.hpp>
|
|
9
|
+
|
|
10
|
+
namespace NetworKit {
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @ingroup reachability
|
|
14
|
+
*/
|
|
15
|
+
class ReachableNodes final : public Algorithm {
|
|
16
|
+
public:
|
|
17
|
+
/**
|
|
18
|
+
* Determines or estimates the number of reachable nodes from each node in the graph.
|
|
19
|
+
*
|
|
20
|
+
* @param G The graph.
|
|
21
|
+
* @param exact Whether or not to compute the number of reachable nodes exactly. Only used for
|
|
22
|
+
* directed graphs, on undirected graphs the number of reachable nodes from every node can be
|
|
23
|
+
* computed in linear time.
|
|
24
|
+
*/
|
|
25
|
+
ReachableNodes(const Graph &G, bool exact = true);
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Runs the algorithm.
|
|
29
|
+
*/
|
|
30
|
+
void run() override;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Returns the number of reachable nodes from the given node @a u. Only available if @a exact is
|
|
34
|
+
* true.
|
|
35
|
+
*
|
|
36
|
+
* @param u A node.
|
|
37
|
+
* @returns The number of nodes reachable from @a u.
|
|
38
|
+
*/
|
|
39
|
+
count numberOfReachableNodes(node u) const {
|
|
40
|
+
assureFinished();
|
|
41
|
+
if (!exact)
|
|
42
|
+
throw std::runtime_error("The number of nodes is not computed exactly, run the "
|
|
43
|
+
"algorithm with exact = true.");
|
|
44
|
+
return reachableLB[u];
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Returns a lower bound of the number of reachable nodes from the given node @a u.
|
|
49
|
+
*
|
|
50
|
+
* @param u A node.
|
|
51
|
+
* @returns Lower bound of number of nodes reachable from @a u.
|
|
52
|
+
*/
|
|
53
|
+
count numberOfReachableNodesLB(node u) const { return reachableLB[u]; }
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Returns an upper bound of the number of reachable nodes from the given node @a u.
|
|
57
|
+
*
|
|
58
|
+
* @param u A node.
|
|
59
|
+
* @returns Upper bound of number of nodes reachable from @a u.
|
|
60
|
+
*/
|
|
61
|
+
count numberOfReachableNodesUB(node u) const {
|
|
62
|
+
assureFinished();
|
|
63
|
+
if (G->isDirected())
|
|
64
|
+
return exact ? reachableLB[u] : reachableUB[u];
|
|
65
|
+
else
|
|
66
|
+
return reachableLB[u];
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/*
|
|
70
|
+
* Whether or not to compute the reachable nodes exactly.
|
|
71
|
+
*/
|
|
72
|
+
bool exact;
|
|
73
|
+
|
|
74
|
+
private:
|
|
75
|
+
const Graph *G;
|
|
76
|
+
std::vector<count> reachableLB, reachableUB;
|
|
77
|
+
|
|
78
|
+
void runDirected();
|
|
79
|
+
void runUndirected();
|
|
80
|
+
};
|
|
81
|
+
} // namespace NetworKit
|
|
82
|
+
|
|
83
|
+
#endif // NETWORKIT_REACHABILITY_REACHABLE_NODES_HPP_
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* ApproximatePageRank.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 26.02.2014
|
|
5
|
+
* Author: Henning
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef NETWORKIT_SCD_APPROXIMATE_PAGE_RANK_HPP_
|
|
9
|
+
#define NETWORKIT_SCD_APPROXIMATE_PAGE_RANK_HPP_
|
|
10
|
+
|
|
11
|
+
#include <set>
|
|
12
|
+
#include <unordered_map>
|
|
13
|
+
#include <vector>
|
|
14
|
+
|
|
15
|
+
#include <networkit/graph/Graph.hpp>
|
|
16
|
+
|
|
17
|
+
namespace NetworKit {
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Computes an approximate PageRank vector from a given seed.
|
|
21
|
+
*/
|
|
22
|
+
class ApproximatePageRank final {
|
|
23
|
+
const Graph *g;
|
|
24
|
+
double alpha;
|
|
25
|
+
double eps;
|
|
26
|
+
|
|
27
|
+
std::unordered_map<node, std::pair<double, double>> prRes;
|
|
28
|
+
|
|
29
|
+
public:
|
|
30
|
+
/**
|
|
31
|
+
* @param g Graph for which an APR is computed.
|
|
32
|
+
* @param alpha Loop probability of random walk.
|
|
33
|
+
* @param epsilon Error tolerance.
|
|
34
|
+
*/
|
|
35
|
+
ApproximatePageRank(const Graph &g, double alpha, double epsilon = 1e-12);
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @return Approximate PageRank vector from @a seeds with parameters
|
|
39
|
+
* specified in the constructor.
|
|
40
|
+
*/
|
|
41
|
+
std::vector<std::pair<node, double>> run(const std::set<node> &seeds);
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @return Approximate PageRank vector from @a seed with parameters
|
|
45
|
+
* specified in the constructor.
|
|
46
|
+
*/
|
|
47
|
+
std::vector<std::pair<node, double>> run(node seed);
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
} /* namespace NetworKit */
|
|
51
|
+
#endif // NETWORKIT_SCD_APPROXIMATE_PAGE_RANK_HPP_
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
#ifndef NETWORKIT_SCD_CLIQUE_DETECT_HPP_
|
|
2
|
+
#define NETWORKIT_SCD_CLIQUE_DETECT_HPP_
|
|
3
|
+
|
|
4
|
+
#include <networkit/scd/SelectiveCommunityDetector.hpp>
|
|
5
|
+
|
|
6
|
+
namespace NetworKit {
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* The CliqueDetect algorithm. It finds the largest clique in the seed node's neighborhood.
|
|
10
|
+
*
|
|
11
|
+
* The algorithm can handle weighted graphs. There, the clique with the highest sum of internal edge
|
|
12
|
+
* weights is returned. This sum includes edge weights to the seed node(s) to ensure that cliques
|
|
13
|
+
* that are well-connected to the seed node(s) are preferred.
|
|
14
|
+
*
|
|
15
|
+
* See also: Hamann, M.; Röhrs, E.; Wagner, D. Local Community Detection Based on Small Cliques.
|
|
16
|
+
* Algorithms 2017, 10, 90. https://doi.org/10.3390/a10030090
|
|
17
|
+
*/
|
|
18
|
+
class CliqueDetect : public SelectiveCommunityDetector {
|
|
19
|
+
|
|
20
|
+
public:
|
|
21
|
+
/**
|
|
22
|
+
* Construct a Cliquedetect object.
|
|
23
|
+
*
|
|
24
|
+
* @param[in] G The graph to detect communities on
|
|
25
|
+
*/
|
|
26
|
+
CliqueDetect(const Graph &g);
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Expands a single seed node/vertex into a maximal clique.
|
|
30
|
+
*
|
|
31
|
+
* @param[in] s the seed node
|
|
32
|
+
* @return A community of the seed node
|
|
33
|
+
*/
|
|
34
|
+
std::set<node> expandOneCommunity(node seed) override;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Detect a single clique for the given seed nodes.
|
|
38
|
+
*
|
|
39
|
+
* The resulting community is a clique iff the seeds form a clique.
|
|
40
|
+
* Otherwise, only the added nodes form a clique that is fully connected
|
|
41
|
+
* to the seed nodes.
|
|
42
|
+
*
|
|
43
|
+
* @param seeds The seeds for the community.
|
|
44
|
+
* @return The found community as set of nodes.
|
|
45
|
+
*/
|
|
46
|
+
std::set<node> expandOneCommunity(const std::set<node> &seeds) override;
|
|
47
|
+
|
|
48
|
+
protected:
|
|
49
|
+
std::vector<node> getMaximumWeightClique(const std::vector<node> &nodes,
|
|
50
|
+
const std::vector<edgeweight> &seedToNodeWeight) const;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
} // namespace NetworKit
|
|
54
|
+
|
|
55
|
+
#endif // NETWORKIT_SCD_CLIQUE_DETECT_HPP_
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#ifndef NETWORKIT_SCD_COMBINED_SCD_HPP_
|
|
2
|
+
#define NETWORKIT_SCD_COMBINED_SCD_HPP_
|
|
3
|
+
|
|
4
|
+
#include <networkit/scd/SelectiveCommunityDetector.hpp>
|
|
5
|
+
|
|
6
|
+
namespace NetworKit {
|
|
7
|
+
/**
|
|
8
|
+
* Helper for combining two selective community detection algorithms.
|
|
9
|
+
*
|
|
10
|
+
* This allows to combine two SCD algorithms such that first the first
|
|
11
|
+
* algorithm is executed on the given seed(s) and then the result of
|
|
12
|
+
* the first algorithm is used as the seed set of the second algorithm.
|
|
13
|
+
* This is particularly useful for seeding an algorithm with a clique.
|
|
14
|
+
*
|
|
15
|
+
* @author Michael Hamann <michael.hamann@kit.edu>
|
|
16
|
+
*/
|
|
17
|
+
class CombinedSCD : public SelectiveCommunityDetector {
|
|
18
|
+
public:
|
|
19
|
+
/**
|
|
20
|
+
* Initialize the combined algorithm with the given graph and the given two algorithms.
|
|
21
|
+
*
|
|
22
|
+
* @param G The graph to work on.
|
|
23
|
+
* @param first The first algorithm that is run with the given seed(s).
|
|
24
|
+
* @param secodn The second algorithm that is run with the result of the first algorithm.
|
|
25
|
+
*/
|
|
26
|
+
CombinedSCD(const Graph &g, SelectiveCommunityDetector &first,
|
|
27
|
+
SelectiveCommunityDetector &second);
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Expand a community with the given seed node using first and second algorithm.
|
|
31
|
+
*
|
|
32
|
+
* @param s The seed node to start with.
|
|
33
|
+
* @return The community found by the second algorithm.
|
|
34
|
+
*/
|
|
35
|
+
std::set<node> expandOneCommunity(node s) override;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Expand a community with the given seed nodes using first and second algorithm.
|
|
39
|
+
*
|
|
40
|
+
* @param s The seed nodes to start with.
|
|
41
|
+
* @return The community found by the second algorithm.
|
|
42
|
+
*/
|
|
43
|
+
std::set<node> expandOneCommunity(const std::set<node> &s) override;
|
|
44
|
+
|
|
45
|
+
protected:
|
|
46
|
+
SelectiveCommunityDetector &first;
|
|
47
|
+
SelectiveCommunityDetector &second;
|
|
48
|
+
};
|
|
49
|
+
} // namespace NetworKit
|
|
50
|
+
|
|
51
|
+
#endif // NETWORKIT_SCD_COMBINED_SCD_HPP_
|