@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,55 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Matcher.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 30.10.2012
|
|
5
|
+
* Author: Christian Staudt
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef NETWORKIT_MATCHING_MATCHER_HPP_
|
|
9
|
+
#define NETWORKIT_MATCHING_MATCHER_HPP_
|
|
10
|
+
|
|
11
|
+
#include <networkit/base/Algorithm.hpp>
|
|
12
|
+
#include <networkit/matching/Matching.hpp>
|
|
13
|
+
|
|
14
|
+
namespace NetworKit {
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @ingroup matching
|
|
18
|
+
* Abstract base class for matching algorithms.
|
|
19
|
+
*/
|
|
20
|
+
class Matcher : public Algorithm {
|
|
21
|
+
protected:
|
|
22
|
+
const Graph *G;
|
|
23
|
+
Matching M;
|
|
24
|
+
bool edgeScoresAsWeights; //<! if true, algorithm should use edge scores instead of edge weights
|
|
25
|
+
const std::vector<double>
|
|
26
|
+
edgeScores; //<! optional edge scores to be used instead of edge weight
|
|
27
|
+
|
|
28
|
+
public:
|
|
29
|
+
/**
|
|
30
|
+
* Constructor.
|
|
31
|
+
* @param[in] G Graph for which matching is to be computed.
|
|
32
|
+
*/
|
|
33
|
+
Matcher(const Graph &G);
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Constructor.
|
|
37
|
+
* @param[in] G Graph for which matching is to be computed.
|
|
38
|
+
* @param edgeScores (optional) to be used instead of weights
|
|
39
|
+
*/
|
|
40
|
+
Matcher(const Graph &G, const std::vector<double> &edgeScores);
|
|
41
|
+
|
|
42
|
+
/** Default destructor */
|
|
43
|
+
~Matcher() override = default;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Run the matching algorithm on the stored graph and return a matching.
|
|
47
|
+
* @return A matching of the stored graph.
|
|
48
|
+
*/
|
|
49
|
+
void run() override = 0;
|
|
50
|
+
|
|
51
|
+
Matching getMatching() const;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
} /* namespace NetworKit */
|
|
55
|
+
#endif // NETWORKIT_MATCHING_MATCHER_HPP_
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Matching.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 03.12.2012
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
#ifndef NETWORKIT_MATCHING_MATCHING_HPP_
|
|
8
|
+
#define NETWORKIT_MATCHING_MATCHING_HPP_
|
|
9
|
+
|
|
10
|
+
#include <networkit/auxiliary/Log.hpp>
|
|
11
|
+
#include <networkit/graph/Graph.hpp>
|
|
12
|
+
#include <networkit/structures/Partition.hpp>
|
|
13
|
+
|
|
14
|
+
namespace NetworKit {
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @ingroup matching
|
|
18
|
+
*/
|
|
19
|
+
class Matching {
|
|
20
|
+
|
|
21
|
+
public:
|
|
22
|
+
/**
|
|
23
|
+
* Construct new Matching.
|
|
24
|
+
*
|
|
25
|
+
* @param[in] z Maximum number of nodes.
|
|
26
|
+
*/
|
|
27
|
+
Matching(count z = 0);
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Set two nodes @a u and @a v as each others matching partners.
|
|
31
|
+
*
|
|
32
|
+
* @param[in] u node.
|
|
33
|
+
* @param[in] v node.
|
|
34
|
+
*/
|
|
35
|
+
void match(node u, node v);
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Reset the two nodes @a u and @a v to unmatched.
|
|
39
|
+
*
|
|
40
|
+
* @param[in] u node.
|
|
41
|
+
* @param[in] v node.
|
|
42
|
+
*/
|
|
43
|
+
void unmatch(node u, node v);
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Check if node is matched.
|
|
47
|
+
*
|
|
48
|
+
* @param[in] u node.
|
|
49
|
+
* @return @c true if u is matched.
|
|
50
|
+
*/
|
|
51
|
+
bool isMatched(node u) const;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Check if the two nodes @a u and @a v are matched together.
|
|
55
|
+
*
|
|
56
|
+
* @param[in] u node.
|
|
57
|
+
* @param[in] v node.
|
|
58
|
+
* @return @c true if u and v are matched together.
|
|
59
|
+
*/
|
|
60
|
+
bool areMatched(node u, node v) const;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Check whether this is a proper matching
|
|
64
|
+
* in the graph, i.e. no two matched edges are adjacent.
|
|
65
|
+
*
|
|
66
|
+
* @param[in] G A graph.
|
|
67
|
+
* @return @c true if this is a proper matching.
|
|
68
|
+
*/
|
|
69
|
+
bool isProper(const Graph &G) const;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Get the number of edges in this matching.
|
|
73
|
+
* @param[in] G A graph.
|
|
74
|
+
* @return Number of edges in matching.
|
|
75
|
+
*/
|
|
76
|
+
count size(const Graph &G) const;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Get the matched neighbor of @a v if it exists, otherwise @c none.
|
|
80
|
+
*
|
|
81
|
+
* @param[in] v node.
|
|
82
|
+
* @return Mate of @a v if it exists, otherwise none.
|
|
83
|
+
*/
|
|
84
|
+
index mate(node v) const;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Get total weight of edges in this matching.
|
|
88
|
+
* @param[in] g The corresponding graph.
|
|
89
|
+
* @return Total weight of edges in this matching.
|
|
90
|
+
*/
|
|
91
|
+
edgeweight weight(const Graph &G) const;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Convert matching to a Partition object where matched nodes
|
|
95
|
+
* belong to the same subset and unmatched nodes belong to a singleton subset.
|
|
96
|
+
* @return Partition
|
|
97
|
+
*/
|
|
98
|
+
Partition toPartition(const Graph &G) const;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Get the actual vector storing the data.
|
|
102
|
+
* @return vector
|
|
103
|
+
*/
|
|
104
|
+
std::vector<node> getVector() const;
|
|
105
|
+
|
|
106
|
+
protected:
|
|
107
|
+
std::vector<node> data; //!< storage of matching nodes
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
} /* namespace NetworKit */
|
|
111
|
+
#endif // NETWORKIT_MATCHING_MATCHING_HPP_
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* PathGrowingMatcher.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: Jun 13, 2013
|
|
5
|
+
* Author: Henning
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef NETWORKIT_MATCHING_PATH_GROWING_MATCHER_HPP_
|
|
9
|
+
#define NETWORKIT_MATCHING_PATH_GROWING_MATCHER_HPP_
|
|
10
|
+
|
|
11
|
+
#include <networkit/matching/Matcher.hpp>
|
|
12
|
+
#include <networkit/matching/Matching.hpp>
|
|
13
|
+
|
|
14
|
+
namespace NetworKit {
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @ingroup matching
|
|
18
|
+
* Path growing matching algorithm as described by
|
|
19
|
+
* Hougardy and Drake, http://dx.doi.org/10.1016/S0020-0190(02)00393-9
|
|
20
|
+
* Computes an approximate maximum weight matching with guarantee 1/2.
|
|
21
|
+
* (Note that better algorithms in terms of approximation quality exist.)
|
|
22
|
+
*/
|
|
23
|
+
class PathGrowingMatcher final : public Matcher {
|
|
24
|
+
void checkInput() const;
|
|
25
|
+
|
|
26
|
+
public:
|
|
27
|
+
/**
|
|
28
|
+
* @param[in] G Undirected graph with no self-loops for which matching is computed.
|
|
29
|
+
*/
|
|
30
|
+
PathGrowingMatcher(const Graph &G);
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @param[in] G Undirected graph with no self-loops for which matching is computed.
|
|
34
|
+
*/
|
|
35
|
+
PathGrowingMatcher(const Graph &G, const std::vector<double> &edgeScores);
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Runs path growing algorithm to compute approximate maximum weight matching
|
|
39
|
+
* for graph @a G.
|
|
40
|
+
* @return Matching (at least half as heavy as maximum weight matching).
|
|
41
|
+
*/
|
|
42
|
+
void run() override;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
} /* namespace NetworKit */
|
|
46
|
+
#endif // NETWORKIT_MATCHING_PATH_GROWING_MATCHER_HPP_
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* SuitorMatcher.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 27.08.2019
|
|
5
|
+
* Authors: Michal Boron <michal.s.boron@gmail.com>
|
|
6
|
+
* Eugenio Angriman <angrimae@hu-berlin.de>
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
#ifndef NETWORKIT_MATCHING_SUITOR_MATCHER_HPP_
|
|
10
|
+
#define NETWORKIT_MATCHING_SUITOR_MATCHER_HPP_
|
|
11
|
+
|
|
12
|
+
#include <vector>
|
|
13
|
+
|
|
14
|
+
#include <networkit/graph/Graph.hpp>
|
|
15
|
+
#include <networkit/matching/Matcher.hpp>
|
|
16
|
+
|
|
17
|
+
namespace NetworKit {
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @ingroup matching
|
|
21
|
+
* Suitor matching finding algorithm.
|
|
22
|
+
*/
|
|
23
|
+
class SuitorMatcher final : public Matcher {
|
|
24
|
+
|
|
25
|
+
static bool hasEdgesSortedByWeight(const Graph &G);
|
|
26
|
+
|
|
27
|
+
void findSuitor(node current);
|
|
28
|
+
void findSortSuitor(node current);
|
|
29
|
+
|
|
30
|
+
public:
|
|
31
|
+
/**
|
|
32
|
+
* Computes a 1/2-approximation of the maximum (weighted) matching of an undirected graph using
|
|
33
|
+
* the Suitor algorithm from Manne and Halappanavar presented in "New Effective Multithreaded
|
|
34
|
+
* Matching Algorithms", IPDPS 2014. The algorithm has two versions: SortSuitor (faster, but
|
|
35
|
+
* only works on graphs with adjacency lists sorted by non-increasing edge weight) and Suitor
|
|
36
|
+
* (works on generic graphs). If using SortSuitor, use GrapTools::sortEdgesByWeight(G, true) to
|
|
37
|
+
* sort the adjacency lists by non-increasing edge weight.
|
|
38
|
+
*
|
|
39
|
+
* @param G An undirected graph.
|
|
40
|
+
* @param sortSuitor If true uses the SortSuitor version, otherwise it uses Suitor.
|
|
41
|
+
* @param checkSortedEdges If true and sortSuitor is true it checks whether the adjacency lists
|
|
42
|
+
* of the input graph are sorted by non-increasing edge weight. If they are not, it throws a
|
|
43
|
+
* std::runtime_error.
|
|
44
|
+
*/
|
|
45
|
+
SuitorMatcher(const Graph &G, bool sortSuitor = true, bool checkSortedEdges = false);
|
|
46
|
+
|
|
47
|
+
~SuitorMatcher() override = default;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Runs the algorithm.
|
|
51
|
+
*/
|
|
52
|
+
void run() override;
|
|
53
|
+
|
|
54
|
+
private:
|
|
55
|
+
bool sortSuitor;
|
|
56
|
+
std::vector<node> suitor;
|
|
57
|
+
std::vector<edgeweight> ws;
|
|
58
|
+
std::vector<index> neighborIterators;
|
|
59
|
+
};
|
|
60
|
+
} // namespace NetworKit
|
|
61
|
+
|
|
62
|
+
#endif // NETWORKIT_MATCHING_SUITOR_MATCHER_HPP_
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* ConjugateGradient.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 15.06.2014
|
|
5
|
+
* Author: Daniel Hoske and Michael Wegner
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef NETWORKIT_NUMERICS_CONJUGATE_GRADIENT_HPP_
|
|
9
|
+
#define NETWORKIT_NUMERICS_CONJUGATE_GRADIENT_HPP_
|
|
10
|
+
|
|
11
|
+
#include <cstdint>
|
|
12
|
+
#include <utility>
|
|
13
|
+
|
|
14
|
+
#include <networkit/algebraic/CSRMatrix.hpp>
|
|
15
|
+
#include <networkit/algebraic/Vector.hpp>
|
|
16
|
+
#include <networkit/numerics/LinearSolver.hpp>
|
|
17
|
+
|
|
18
|
+
namespace NetworKit {
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @ingroup numerics
|
|
22
|
+
* Implementation of Conjugate Gradient.
|
|
23
|
+
*/
|
|
24
|
+
template <class Matrix, class Preconditioner>
|
|
25
|
+
class ConjugateGradient : public LinearSolver<Matrix> {
|
|
26
|
+
public:
|
|
27
|
+
ConjugateGradient(double tolerance = 1e-5)
|
|
28
|
+
: LinearSolver<Matrix>(tolerance), matrix(Matrix()) {}
|
|
29
|
+
|
|
30
|
+
void setup(const Matrix &matrix) override {
|
|
31
|
+
this->matrix = matrix;
|
|
32
|
+
precond = Preconditioner(matrix);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
void setupConnected(const Matrix &matrix) override {
|
|
36
|
+
this->matrix = matrix;
|
|
37
|
+
precond = Preconditioner(matrix);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Solves the linear system \f$Ax = b\f$ using the conjugate gradient method
|
|
42
|
+
* with a given preconditioner and with initial value \f$(0, \dots, 0)^T\f$.
|
|
43
|
+
* We the return the solution \f$x\f$. The solution \f$x\f$ fulfils
|
|
44
|
+
* \f$\frac{\Vert Ax - b\Vert}{\Vert b \Vert} \leq relative\_residual\f$ if the
|
|
45
|
+
* algorithm has converged.
|
|
46
|
+
*
|
|
47
|
+
* Obviously, @a A needs to have the same number of rows as @a b and
|
|
48
|
+
* @a status.residual must be nonnegative. You may also request that the algorithm
|
|
49
|
+
* does not run for more than @a status.max_iters iterations.
|
|
50
|
+
*/
|
|
51
|
+
SolverStatus solve(const Vector &rhs, Vector &result, count maxConvergenceTime = 5 * 60 * 1000,
|
|
52
|
+
count maxIterations = std::numeric_limits<count>::max()) const override;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Solves the linear systems in parallel.
|
|
56
|
+
* @param rhs
|
|
57
|
+
* @param results
|
|
58
|
+
* @param maxConvergenceTime
|
|
59
|
+
* @param maxIterations
|
|
60
|
+
*/
|
|
61
|
+
std::vector<SolverStatus>
|
|
62
|
+
parallelSolve(const std::vector<Vector> &rhs, std::vector<Vector> &results,
|
|
63
|
+
count maxConvergenceTime = 5 * 60 * 1000,
|
|
64
|
+
count maxIterations = std::numeric_limits<count>::max()) const override;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Abstract parallel solve function that computes and processes results using @a resultProcessor
|
|
68
|
+
* for the matrix currently setup and the right-hand sides (size of @a rhsSize) provided by @a
|
|
69
|
+
* rhsLoader. The maximum spent time for each system can be specified by @a maxConvergenceTime
|
|
70
|
+
* and the maximum number of iterations can be set by @a maxIterations.
|
|
71
|
+
* @param rhsLoader
|
|
72
|
+
* @param resultProcessor
|
|
73
|
+
* @param rhsSize
|
|
74
|
+
* @param maxConvergenceTime
|
|
75
|
+
* @param maxIterations
|
|
76
|
+
* @note If the solver does not support parallelism during solves, this function falls back to
|
|
77
|
+
* solving the systems sequentially.
|
|
78
|
+
*/
|
|
79
|
+
template <typename RHSLoader, typename ResultProcessor>
|
|
80
|
+
void parallelSolve(const RHSLoader &rhsLoader, const ResultProcessor &resultProcessor,
|
|
81
|
+
std::pair<count, count> rhsSize, count maxConvergenceTime = 5 * 60 * 1000,
|
|
82
|
+
count maxIterations = std::numeric_limits<count>::max()) {
|
|
83
|
+
const index numThreads = omp_get_max_threads();
|
|
84
|
+
count n = rhsSize.first;
|
|
85
|
+
count m = rhsSize.second;
|
|
86
|
+
std::vector<Vector> results(numThreads, Vector(m));
|
|
87
|
+
std::vector<Vector> RHSs(numThreads, Vector(m));
|
|
88
|
+
|
|
89
|
+
#pragma omp parallel for
|
|
90
|
+
for (omp_index i = 0; i < static_cast<omp_index>(n); ++i) {
|
|
91
|
+
index threadId = omp_get_thread_num();
|
|
92
|
+
const Vector &rhs = rhsLoader(i, RHSs[threadId]);
|
|
93
|
+
Vector &result = results[threadId];
|
|
94
|
+
|
|
95
|
+
this->solve(rhs, result, maxConvergenceTime, maxIterations);
|
|
96
|
+
resultProcessor(i, result);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
private:
|
|
101
|
+
Matrix matrix;
|
|
102
|
+
Preconditioner precond;
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
template <class Matrix, class Preconditioner>
|
|
106
|
+
SolverStatus ConjugateGradient<Matrix, Preconditioner>::solve(const Vector &rhs, Vector &result,
|
|
107
|
+
count, count maxIterations) const {
|
|
108
|
+
assert(matrix.numberOfRows() == rhs.getDimension());
|
|
109
|
+
|
|
110
|
+
// Absolute residual to achieve
|
|
111
|
+
double sqr_desired_residual = this->tolerance * this->tolerance * (rhs.length() * rhs.length());
|
|
112
|
+
|
|
113
|
+
// Main loop. See:
|
|
114
|
+
// http://en.wikipedia.org/wiki/Conjugate_gradient_method#The_resulting_algorithm
|
|
115
|
+
Vector residual_dir = rhs - matrix * result;
|
|
116
|
+
Vector conjugate_dir = precond.rhs(residual_dir);
|
|
117
|
+
double sqr_residual = Vector::innerProduct(residual_dir, residual_dir);
|
|
118
|
+
double sqr_residual_precond = Vector::innerProduct(residual_dir, conjugate_dir);
|
|
119
|
+
|
|
120
|
+
count niters = 0;
|
|
121
|
+
Vector tmp, residual_precond;
|
|
122
|
+
while (sqr_residual > sqr_desired_residual) {
|
|
123
|
+
niters++;
|
|
124
|
+
if (niters > maxIterations) {
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
tmp = matrix * conjugate_dir;
|
|
129
|
+
double step = sqr_residual_precond / Vector::innerProduct(conjugate_dir, tmp);
|
|
130
|
+
result += step * conjugate_dir;
|
|
131
|
+
residual_dir -= step * tmp;
|
|
132
|
+
sqr_residual = Vector::innerProduct(residual_dir, residual_dir);
|
|
133
|
+
|
|
134
|
+
residual_precond = precond.rhs(residual_dir);
|
|
135
|
+
double new_sqr_residual_precond = Vector::innerProduct(residual_dir, residual_precond);
|
|
136
|
+
conjugate_dir =
|
|
137
|
+
(new_sqr_residual_precond / sqr_residual_precond) * conjugate_dir + residual_precond;
|
|
138
|
+
sqr_residual_precond = new_sqr_residual_precond;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
SolverStatus status;
|
|
142
|
+
status.numIters = niters;
|
|
143
|
+
status.residual = (rhs - matrix * result).length();
|
|
144
|
+
status.converged = status.residual / rhs.length() <= this->tolerance;
|
|
145
|
+
|
|
146
|
+
return status;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
template <class Matrix, class Preconditioner>
|
|
150
|
+
std::vector<SolverStatus> ConjugateGradient<Matrix, Preconditioner>::parallelSolve(
|
|
151
|
+
const std::vector<Vector> &rhs, std::vector<Vector> &results, count maxConvergenceTime,
|
|
152
|
+
count maxIterations) const {
|
|
153
|
+
std::vector<SolverStatus> stati(rhs.size());
|
|
154
|
+
#pragma omp parallel for
|
|
155
|
+
for (omp_index i = 0; i < static_cast<omp_index>(rhs.size()); ++i) {
|
|
156
|
+
stati[i] = this->solve(rhs[i], results[i], maxConvergenceTime, maxIterations);
|
|
157
|
+
}
|
|
158
|
+
return stati;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
} /* namespace NetworKit */
|
|
162
|
+
|
|
163
|
+
#endif // NETWORKIT_NUMERICS_CONJUGATE_GRADIENT_HPP_
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* GaussSeidelRelaxation.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 27.10.2014
|
|
5
|
+
* Author: Michael Wegner (michael.wegner@student.kit.edu)
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef NETWORKIT_NUMERICS_GAUSS_SEIDEL_RELAXATION_HPP_
|
|
9
|
+
#define NETWORKIT_NUMERICS_GAUSS_SEIDEL_RELAXATION_HPP_
|
|
10
|
+
|
|
11
|
+
#include <networkit/numerics/Smoother.hpp>
|
|
12
|
+
|
|
13
|
+
namespace NetworKit {
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @ingroup numerics
|
|
17
|
+
* Implementation of the Gauss-Seidel smoother.
|
|
18
|
+
*/
|
|
19
|
+
template <class Matrix>
|
|
20
|
+
class GaussSeidelRelaxation : public Smoother<Matrix> {
|
|
21
|
+
|
|
22
|
+
private:
|
|
23
|
+
double tolerance;
|
|
24
|
+
|
|
25
|
+
public:
|
|
26
|
+
/**
|
|
27
|
+
* Constructs a Gauss-Seidel smoother with the given @a tolerance (default: 1e-15).
|
|
28
|
+
* @param tolerance
|
|
29
|
+
*/
|
|
30
|
+
GaussSeidelRelaxation(double tolerance = 1e-15) : tolerance(tolerance) {}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Utilizes Gauss-Seidel relaxations until the given number of @a maxIterations is reached or
|
|
34
|
+
* the relative residual is below the tolerance specified in the constructor. The solver starts
|
|
35
|
+
* with @a initialGuess as intitial guess to the solution.
|
|
36
|
+
* @param A The matrix.
|
|
37
|
+
* @param b The right-hand-side.
|
|
38
|
+
* @param initialGuess
|
|
39
|
+
* @param maxIterations
|
|
40
|
+
* @return The (approximate) solution to the system.
|
|
41
|
+
*/
|
|
42
|
+
Vector relax(const Matrix &A, const Vector &b, const Vector &initialGuess,
|
|
43
|
+
count maxIterations = std::numeric_limits<count>::max()) const override;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Utilizes Gauss-Seidel relaxations until the given number of @a maxIterations is reached or
|
|
47
|
+
* the relative residual is below the tolerance specified in the constructor.
|
|
48
|
+
* @param A The matrix.
|
|
49
|
+
* @param b The right-hand-side.
|
|
50
|
+
* @param maxIterations
|
|
51
|
+
* @return The (approximate) solution to the system.
|
|
52
|
+
*/
|
|
53
|
+
Vector relax(const Matrix &A, const Vector &b,
|
|
54
|
+
count maxIterations = std::numeric_limits<count>::max()) const override;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
template <class Matrix>
|
|
58
|
+
Vector GaussSeidelRelaxation<Matrix>::relax(const Matrix &A, const Vector &b,
|
|
59
|
+
const Vector &initialGuess,
|
|
60
|
+
const count maxIterations) const {
|
|
61
|
+
count iterations = 0;
|
|
62
|
+
Vector x_old = initialGuess;
|
|
63
|
+
Vector x_new = initialGuess;
|
|
64
|
+
if (maxIterations == 0)
|
|
65
|
+
return initialGuess;
|
|
66
|
+
|
|
67
|
+
count dimension = A.numberOfColumns();
|
|
68
|
+
Vector diagonal = A.diagonal();
|
|
69
|
+
|
|
70
|
+
do {
|
|
71
|
+
x_old = x_new;
|
|
72
|
+
|
|
73
|
+
for (index i = 0; i < dimension; ++i) {
|
|
74
|
+
double sigma = 0.0;
|
|
75
|
+
A.forNonZeroElementsInRow(i, [&](index column, double value) {
|
|
76
|
+
if (column != i) {
|
|
77
|
+
sigma += value * x_new[column];
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
x_new[i] = (b[i] - sigma) / diagonal[i];
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
iterations++;
|
|
85
|
+
} while (iterations < maxIterations && (A * x_new - b).length() / b.length() > tolerance);
|
|
86
|
+
|
|
87
|
+
return x_new;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
template <class Matrix>
|
|
91
|
+
Vector GaussSeidelRelaxation<Matrix>::relax(const Matrix &A, const Vector &b,
|
|
92
|
+
const count maxIterations) const {
|
|
93
|
+
Vector x(b.getDimension());
|
|
94
|
+
return relax(A, b, x, maxIterations);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
} /* namespace NetworKit */
|
|
98
|
+
|
|
99
|
+
#endif // NETWORKIT_NUMERICS_GAUSS_SEIDEL_RELAXATION_HPP_
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* LAMGSettings.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 09.01.2015
|
|
5
|
+
* Author: Michael
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef NETWORKIT_NUMERICS_LAMG_LAMG_SETTINGS_HPP_
|
|
9
|
+
#define NETWORKIT_NUMERICS_LAMG_LAMG_SETTINGS_HPP_
|
|
10
|
+
|
|
11
|
+
#include <networkit/Globals.hpp>
|
|
12
|
+
|
|
13
|
+
namespace NetworKit {
|
|
14
|
+
|
|
15
|
+
// #initial test vectors (TVs) at each level.
|
|
16
|
+
constexpr count TV_NUM = 4;
|
|
17
|
+
// #TVs to add upon each aggregation coarsening
|
|
18
|
+
constexpr count TV_INC = 1;
|
|
19
|
+
// maximum allowed#TVs
|
|
20
|
+
constexpr count TV_MAX = 10;
|
|
21
|
+
// #global sweeps to perform on each initial TV
|
|
22
|
+
constexpr count SETUP_TV_SWEEPS = 4;
|
|
23
|
+
// max size for direct solver
|
|
24
|
+
constexpr count MAX_DIRECT_SOLVE_SIZE = 200;
|
|
25
|
+
// maximum #aggregation coarsening levels to construct during the setup phase
|
|
26
|
+
constexpr count SETUP_MAX_AGG_LEVELS = 100;
|
|
27
|
+
// maximum TOTAL # of coarsening levels to construct during the setup phase
|
|
28
|
+
constexpr count SETUP_MAX_LEVELS = 100;
|
|
29
|
+
// solution cycle index. Also the design cycle index during setup phase.
|
|
30
|
+
constexpr double SETUP_CYCLE_INDEX = 1.5;
|
|
31
|
+
// minimum number of sweeps to run to estimate relax ACF
|
|
32
|
+
constexpr count SETUP_RELAX_ACF_MIN_SWEEPS = 7;
|
|
33
|
+
// if relaxation converges at this rate or faster, this becomes the CoarsestLevel
|
|
34
|
+
constexpr double SETUP_MAX_COARSE_RELAX_ACF = 0.3;
|
|
35
|
+
|
|
36
|
+
constexpr count MAX_COMBINED_ITERATES = 4;
|
|
37
|
+
|
|
38
|
+
/**************************
|
|
39
|
+
* SETUP - Elimination *
|
|
40
|
+
**************************/
|
|
41
|
+
|
|
42
|
+
// maximum degree up to which a node gets eliminated
|
|
43
|
+
constexpr count SETUP_ELIMINATION_MAX_DEGREE = 4;
|
|
44
|
+
// maximum number of elimination stages
|
|
45
|
+
constexpr count SETUP_ELIMINATION_MAX_STAGES = 1000;
|
|
46
|
+
// node elimination stops if number of coarse nodes is only this fraction of the initial number of
|
|
47
|
+
// nodes
|
|
48
|
+
constexpr double SETUP_ELIMINATION_MIN_ELIM_FRACTION = 0.01;
|
|
49
|
+
|
|
50
|
+
/**************************
|
|
51
|
+
* SETUP - Aggregation *
|
|
52
|
+
**************************/
|
|
53
|
+
|
|
54
|
+
constexpr double SETUP_AGGREGATION_WEAK_EDGE_THRESHOLD = 0.1;
|
|
55
|
+
// all nodes with a degree equal or higher than this threshold are marked as high-degree nodes
|
|
56
|
+
constexpr count SETUP_AGGREGATION_DEGREE_THRESHOLD = 8;
|
|
57
|
+
// #sweeps (nu) to use during coarsening stages
|
|
58
|
+
constexpr count SETUP_NU_DEFAULT = 3;
|
|
59
|
+
|
|
60
|
+
constexpr double SETUP_COARSENING_WORK_GUARD = 0.7;
|
|
61
|
+
|
|
62
|
+
constexpr count SETUP_MIN_AGGREGATION_STAGES = 1;
|
|
63
|
+
|
|
64
|
+
constexpr count SETUP_MAX_AGGREGATION_STAGES = 2;
|
|
65
|
+
|
|
66
|
+
constexpr count SETUP_RELAX_COARSEST_SWEEPS = 400;
|
|
67
|
+
|
|
68
|
+
} // namespace NetworKit
|
|
69
|
+
|
|
70
|
+
#endif // NETWORKIT_NUMERICS_LAMG_LAMG_SETTINGS_HPP_
|