@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,307 @@
|
|
|
1
|
+
#ifndef NETWORKIT_AUXILIARY_NUMBER_PARSING_HPP_
|
|
2
|
+
#define NETWORKIT_AUXILIARY_NUMBER_PARSING_HPP_
|
|
3
|
+
|
|
4
|
+
#include <algorithm>
|
|
5
|
+
#include <cassert>
|
|
6
|
+
#include <cctype>
|
|
7
|
+
#include <cstdint>
|
|
8
|
+
#include <limits>
|
|
9
|
+
#include <stdexcept>
|
|
10
|
+
#include <tuple>
|
|
11
|
+
#include <type_traits>
|
|
12
|
+
|
|
13
|
+
#include <networkit/auxiliary/Enforce.hpp>
|
|
14
|
+
|
|
15
|
+
namespace Aux {
|
|
16
|
+
namespace Parsing {
|
|
17
|
+
|
|
18
|
+
namespace Impl {
|
|
19
|
+
|
|
20
|
+
template <typename CharIterator>
|
|
21
|
+
std::tuple<CharIterator, char> dropSpaces(CharIterator it, CharIterator end);
|
|
22
|
+
|
|
23
|
+
template <typename Integer>
|
|
24
|
+
double powerOf10(Integer exp);
|
|
25
|
+
|
|
26
|
+
class IntegerTag {};
|
|
27
|
+
|
|
28
|
+
template <typename Integer, typename CharIterator, typename ValidationPolicy>
|
|
29
|
+
std::tuple<Integer, CharIterator> strTo(CharIterator it, CharIterator end, IntegerTag);
|
|
30
|
+
|
|
31
|
+
class RealTag {};
|
|
32
|
+
|
|
33
|
+
template <typename Real, typename CharIterator, typename ValidationPolicy>
|
|
34
|
+
std::tuple<Real, CharIterator> strTo(CharIterator it, CharIterator end, RealTag);
|
|
35
|
+
|
|
36
|
+
template <typename T>
|
|
37
|
+
using ArithmeticTag = typename std::conditional<
|
|
38
|
+
std::is_integral<T>::value, IntegerTag,
|
|
39
|
+
typename std::conditional<std::is_floating_point<T>::value, RealTag, void>::type>::type;
|
|
40
|
+
|
|
41
|
+
} // namespace Impl
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Parses a range of characters as number.
|
|
45
|
+
*
|
|
46
|
+
* @param Number must be either a floating-point-type or an integer-type
|
|
47
|
+
* @param CharIterator must be a valid input-iterator over a type that is
|
|
48
|
+
* implicitly convertable to char
|
|
49
|
+
* @param ValidationPolicy must be a type that is compatible to the checkers from Enforce.h,
|
|
50
|
+
* the default is Asserter, which will check conditions via assert()
|
|
51
|
+
* @param it the start of the character-range
|
|
52
|
+
* @param end the end of the character-range
|
|
53
|
+
*
|
|
54
|
+
* Requirements: The range [it, end) must contain a valid number.
|
|
55
|
+
*
|
|
56
|
+
* @return: A tuple of the parsed value and the iterator after parsing the number and dropping
|
|
57
|
+
* any surrounding whitespace.
|
|
58
|
+
*
|
|
59
|
+
*/
|
|
60
|
+
template <typename Number, typename CharIterator, typename ValidationPolicy = Checkers::Asserter>
|
|
61
|
+
std::tuple<Number, CharIterator> strTo(CharIterator it, CharIterator end) {
|
|
62
|
+
return Impl::strTo<Number, CharIterator, ValidationPolicy>(it, end,
|
|
63
|
+
Impl::ArithmeticTag<Number>{});
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
namespace Impl {
|
|
67
|
+
|
|
68
|
+
template <typename Integer, typename CharIterator, typename ValidationPolicy>
|
|
69
|
+
std::tuple<Integer, CharIterator> strTo(CharIterator it, const CharIterator end, IntegerTag) {
|
|
70
|
+
using Impl::dropSpaces;
|
|
71
|
+
ValidationPolicy::enforce(it != end);
|
|
72
|
+
|
|
73
|
+
char c = *it;
|
|
74
|
+
std::tie(it, c) = dropSpaces(it, end);
|
|
75
|
+
|
|
76
|
+
bool isNegative = false;
|
|
77
|
+
if (std::is_signed<Integer>::value) { // this should be optimized away entirely
|
|
78
|
+
switch (c) {
|
|
79
|
+
case '-':
|
|
80
|
+
isNegative = true;
|
|
81
|
+
// fallthrough
|
|
82
|
+
case '+':
|
|
83
|
+
++it;
|
|
84
|
+
if (it == end) {
|
|
85
|
+
throw std::invalid_argument{"string contains no digits after sign"};
|
|
86
|
+
}
|
|
87
|
+
c = *it;
|
|
88
|
+
break;
|
|
89
|
+
default:
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
if (!isdigit(c)) {
|
|
95
|
+
throw std::invalid_argument{"string contains no digits"};
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
Integer val = 0;
|
|
99
|
+
while (true) {
|
|
100
|
+
ValidationPolicy::enforce(std::numeric_limits<Integer>::max() / 10 >= val);
|
|
101
|
+
|
|
102
|
+
val *= 10;
|
|
103
|
+
|
|
104
|
+
c -= '0';
|
|
105
|
+
ValidationPolicy::enforce(std::numeric_limits<Integer>::max() - c >= val);
|
|
106
|
+
|
|
107
|
+
val += c;
|
|
108
|
+
|
|
109
|
+
++it;
|
|
110
|
+
if (it == end) {
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
c = *it;
|
|
114
|
+
if (!isdigit(c)) {
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (isNegative) {
|
|
120
|
+
val = -val;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
std::tie(it, c) = dropSpaces(it, end);
|
|
124
|
+
|
|
125
|
+
return std::make_tuple(val, it);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
template <typename Real, typename CharIterator, typename ValidationPolicy>
|
|
129
|
+
std::tuple<Real, CharIterator> strTo(CharIterator it, const CharIterator end, RealTag) {
|
|
130
|
+
|
|
131
|
+
static_assert(std::numeric_limits<Real>::max_digits10
|
|
132
|
+
<= std::numeric_limits<std::uintmax_t>::digits10,
|
|
133
|
+
"can't safe mantissa in biggest integer");
|
|
134
|
+
|
|
135
|
+
using Impl::dropSpaces;
|
|
136
|
+
using Impl::powerOf10;
|
|
137
|
+
|
|
138
|
+
char c;
|
|
139
|
+
bool isNegative = false;
|
|
140
|
+
std::uintmax_t mantissa = 0;
|
|
141
|
+
int exp = 0;
|
|
142
|
+
|
|
143
|
+
auto makeReturnValue = [&]() {
|
|
144
|
+
Real fp_mantissa = mantissa;
|
|
145
|
+
Real value = fp_mantissa * powerOf10(exp);
|
|
146
|
+
if (isNegative) {
|
|
147
|
+
value = -value;
|
|
148
|
+
}
|
|
149
|
+
return std::make_tuple(value, it);
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
// drop whitespace:
|
|
153
|
+
std::tie(it, c) = dropSpaces(it, end);
|
|
154
|
+
|
|
155
|
+
ValidationPolicy::enforce(it != end);
|
|
156
|
+
|
|
157
|
+
// set sign:
|
|
158
|
+
switch (c) {
|
|
159
|
+
case '-':
|
|
160
|
+
isNegative = true;
|
|
161
|
+
// fallthrough
|
|
162
|
+
case '+':
|
|
163
|
+
++it;
|
|
164
|
+
if (it == end) {
|
|
165
|
+
throw std::invalid_argument{"string contains no digits"};
|
|
166
|
+
}
|
|
167
|
+
c = *it;
|
|
168
|
+
break;
|
|
169
|
+
default:
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// number of decimal digits that can be stored in the mantissa and the used integer
|
|
174
|
+
unsigned remainingDigits = std::numeric_limits<Real>::max_digits10;
|
|
175
|
+
|
|
176
|
+
// read 'big' part of the mantissa:
|
|
177
|
+
while (remainingDigits > 0) {
|
|
178
|
+
if (!isdigit(c)) {
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
181
|
+
--remainingDigits;
|
|
182
|
+
mantissa *= 10;
|
|
183
|
+
mantissa += c - '0';
|
|
184
|
+
++it;
|
|
185
|
+
if (it == end) {
|
|
186
|
+
return makeReturnValue();
|
|
187
|
+
}
|
|
188
|
+
c = *it;
|
|
189
|
+
}
|
|
190
|
+
if (remainingDigits == 0) {
|
|
191
|
+
if (isdigit(c)) {
|
|
192
|
+
// round correctly:
|
|
193
|
+
if (c - '0' >= 5) {
|
|
194
|
+
++mantissa;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
while (isdigit(c)) {
|
|
198
|
+
++exp;
|
|
199
|
+
++it;
|
|
200
|
+
if (it == end) {
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
203
|
+
c = *it;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
// read 'small' part of the mantissa
|
|
207
|
+
if (c == '.') {
|
|
208
|
+
++it;
|
|
209
|
+
if (it == end) {
|
|
210
|
+
return makeReturnValue();
|
|
211
|
+
}
|
|
212
|
+
c = *it;
|
|
213
|
+
while (remainingDigits > 0) {
|
|
214
|
+
if (!isdigit(c)) {
|
|
215
|
+
break;
|
|
216
|
+
}
|
|
217
|
+
--exp;
|
|
218
|
+
--remainingDigits;
|
|
219
|
+
mantissa *= 10;
|
|
220
|
+
mantissa += c - '0';
|
|
221
|
+
++it;
|
|
222
|
+
if (it == end) {
|
|
223
|
+
return makeReturnValue();
|
|
224
|
+
}
|
|
225
|
+
c = *it;
|
|
226
|
+
}
|
|
227
|
+
if (isdigit(c)) {
|
|
228
|
+
// round correctly:
|
|
229
|
+
if (c - '0' >= 5) {
|
|
230
|
+
++mantissa;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
// skip the remaining digits:
|
|
234
|
+
it = std::find_if_not(it, end, isdigit);
|
|
235
|
+
if (it == end) {
|
|
236
|
+
return makeReturnValue();
|
|
237
|
+
}
|
|
238
|
+
c = *it;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
// calculate the final exponent:
|
|
242
|
+
if (c == 'e' || c == 'E') {
|
|
243
|
+
++it;
|
|
244
|
+
int tmp;
|
|
245
|
+
// we need to pass IntegerTag explicitly here because we are in a
|
|
246
|
+
// nested namespace. This shouldn't be required anywhere else
|
|
247
|
+
std::tie(tmp, it) = strTo<int, CharIterator, ValidationPolicy>(it, end, IntegerTag{});
|
|
248
|
+
exp += tmp;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// drop further whitespace:
|
|
252
|
+
std::tie(it, c) = dropSpaces(it, end);
|
|
253
|
+
|
|
254
|
+
return makeReturnValue();
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
template <typename CharIterator>
|
|
258
|
+
std::tuple<CharIterator, char> dropSpaces(CharIterator it, CharIterator end) {
|
|
259
|
+
char c = 0;
|
|
260
|
+
while (it != end && std::isspace((c = *it))) {
|
|
261
|
+
++it;
|
|
262
|
+
}
|
|
263
|
+
return std::make_tuple(it, c);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
template <typename Integer>
|
|
267
|
+
double powerOf10(Integer exp) {
|
|
268
|
+
if (exp < 0) {
|
|
269
|
+
return 1.0 / powerOf10(-exp);
|
|
270
|
+
}
|
|
271
|
+
switch (exp) {
|
|
272
|
+
case 0:
|
|
273
|
+
return 1;
|
|
274
|
+
case 1:
|
|
275
|
+
return 10;
|
|
276
|
+
case 2:
|
|
277
|
+
return 100;
|
|
278
|
+
case 3:
|
|
279
|
+
return 1000;
|
|
280
|
+
case 4:
|
|
281
|
+
return 10000;
|
|
282
|
+
case 5:
|
|
283
|
+
return 100000;
|
|
284
|
+
case 6:
|
|
285
|
+
return 1000000;
|
|
286
|
+
case 7:
|
|
287
|
+
return 10000000;
|
|
288
|
+
case 8:
|
|
289
|
+
return 100000000;
|
|
290
|
+
case 9:
|
|
291
|
+
return 1000000000;
|
|
292
|
+
default:
|
|
293
|
+
auto tmp = powerOf10(exp / 2);
|
|
294
|
+
if (exp % 2 == 0) {
|
|
295
|
+
return tmp * tmp;
|
|
296
|
+
} else {
|
|
297
|
+
return tmp * tmp * 10;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
} // namespace Impl
|
|
303
|
+
|
|
304
|
+
} // namespace Parsing
|
|
305
|
+
} // namespace Aux
|
|
306
|
+
|
|
307
|
+
#endif // NETWORKIT_AUXILIARY_NUMBER_PARSING_HPP_
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* NumericTools.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 15.02.2013
|
|
5
|
+
* Author: Christian Staudt (christian.staudt@kit.edu)
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef NETWORKIT_AUXILIARY_NUMERIC_TOOLS_HPP_
|
|
9
|
+
#define NETWORKIT_AUXILIARY_NUMERIC_TOOLS_HPP_
|
|
10
|
+
|
|
11
|
+
#include <limits>
|
|
12
|
+
|
|
13
|
+
namespace Aux {
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Tools to deal with limited precision in numeric computations.
|
|
17
|
+
*/
|
|
18
|
+
namespace NumericTools {
|
|
19
|
+
|
|
20
|
+
static constexpr double machineEpsilon = std::numeric_limits<double>::epsilon();
|
|
21
|
+
|
|
22
|
+
static constexpr double acceptableError = 1e-12;
|
|
23
|
+
|
|
24
|
+
template <typename T>
|
|
25
|
+
bool willOverflow(const T &pX, const T &pValue, const T &pMax = std::numeric_limits<T>::max()) {
|
|
26
|
+
return pMax - pValue < pX;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
template <typename T>
|
|
30
|
+
bool willUnderflow(const T &pX, const T &pValue, const T &pMin = std::numeric_limits<T>::min()) {
|
|
31
|
+
return pMin + pValue > pX;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Test doubles for equality within a given error.
|
|
36
|
+
*/
|
|
37
|
+
bool equal(double x, double y, double error = acceptableError);
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Test doubles for equality within a given error.
|
|
41
|
+
*/
|
|
42
|
+
bool le(double x, double y, double error = acceptableError);
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Test doubles for equality within a given error.
|
|
46
|
+
*/
|
|
47
|
+
bool ge(double x, double y, double error = acceptableError);
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Test doubles for equality within the smallest possible error.
|
|
51
|
+
*/
|
|
52
|
+
bool logically_equal(double a, double b, double error_factor = 1.0);
|
|
53
|
+
|
|
54
|
+
} /* namespace NumericTools */
|
|
55
|
+
|
|
56
|
+
} // namespace Aux
|
|
57
|
+
#endif // NETWORKIT_AUXILIARY_NUMERIC_TOOLS_HPP_
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Header which provides parallel STL implementations when available.
|
|
3
|
+
*/
|
|
4
|
+
#ifndef NETWORKIT_AUXILIARY_PARALLEL_HPP_
|
|
5
|
+
#define NETWORKIT_AUXILIARY_PARALLEL_HPP_
|
|
6
|
+
|
|
7
|
+
#include <atomic>
|
|
8
|
+
#include <functional>
|
|
9
|
+
|
|
10
|
+
#if ((defined(__GNUC__) || defined(__GNUG__)) \
|
|
11
|
+
&& !(defined(__clang__) || defined(__INTEL_COMPILER))) \
|
|
12
|
+
&& defined _OPENMP
|
|
13
|
+
#include <parallel/algorithm>
|
|
14
|
+
#else
|
|
15
|
+
#define NETWORKIT_NO_PARALLEL_STL
|
|
16
|
+
#include <algorithm>
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
|
+
namespace Aux {
|
|
20
|
+
namespace Parallel {
|
|
21
|
+
#ifdef NETWORKIT_NO_PARALLEL_STL
|
|
22
|
+
using std::max_element;
|
|
23
|
+
using std::sort;
|
|
24
|
+
#else
|
|
25
|
+
using __gnu_parallel::max_element;
|
|
26
|
+
using __gnu_parallel::sort;
|
|
27
|
+
#endif // NETWORKIT_NO_PARALLEL_STL
|
|
28
|
+
|
|
29
|
+
template <typename ValueType, typename Comp>
|
|
30
|
+
void atomic_set(std::atomic<ValueType> &target, const ValueType &input, Comp shallSet) {
|
|
31
|
+
// load current value
|
|
32
|
+
auto curValue = target.load(std::memory_order_relaxed);
|
|
33
|
+
|
|
34
|
+
do {
|
|
35
|
+
if (!shallSet(input, curValue))
|
|
36
|
+
break; // skip if shall not be set (anymore)
|
|
37
|
+
// set new value unless current value has been changed in the meantime, if current value has
|
|
38
|
+
// changed load it (so we can compare again)
|
|
39
|
+
} while (!target.compare_exchange_weak(curValue, input, std::memory_order_release,
|
|
40
|
+
std::memory_order_relaxed));
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
template <typename ValueType>
|
|
44
|
+
void atomic_max(std::atomic<ValueType> &target, const ValueType &input) {
|
|
45
|
+
atomic_set(target, input, std::greater<ValueType>());
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
template <typename ValueType>
|
|
49
|
+
void atomic_min(std::atomic<ValueType> &target, const ValueType &input) {
|
|
50
|
+
atomic_set(target, input, std::less<ValueType>());
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
} // namespace Parallel
|
|
54
|
+
} // namespace Aux
|
|
55
|
+
|
|
56
|
+
#endif // NETWORKIT_AUXILIARY_PARALLEL_HPP_
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Parallelism.hpp
|
|
3
|
+
*
|
|
4
|
+
* Control functions related to parallelism.
|
|
5
|
+
*
|
|
6
|
+
* Created on: 13.11.2013
|
|
7
|
+
* Author: Christian Staudt (christian.staudt@kit.edu)
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#ifndef NETWORKIT_AUXILIARY_PARALLELISM_HPP_
|
|
11
|
+
#define NETWORKIT_AUXILIARY_PARALLELISM_HPP_
|
|
12
|
+
|
|
13
|
+
namespace Aux {
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Set the number of threads available to the program.
|
|
17
|
+
*/
|
|
18
|
+
void setNumberOfThreads(int nThreads);
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
* @return The number of threads currently running.
|
|
23
|
+
*/
|
|
24
|
+
int getCurrentNumberOfThreads();
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
*
|
|
28
|
+
* @return The maximum number of threads available to the program.
|
|
29
|
+
*/
|
|
30
|
+
int getMaxNumberOfThreads();
|
|
31
|
+
} // namespace Aux
|
|
32
|
+
|
|
33
|
+
#endif // NETWORKIT_AUXILIARY_PARALLELISM_HPP_
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* PrioQueue.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 02.03.2017
|
|
5
|
+
* Author: Henning
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef NETWORKIT_AUXILIARY_PRIO_QUEUE_HPP_
|
|
9
|
+
#define NETWORKIT_AUXILIARY_PRIO_QUEUE_HPP_
|
|
10
|
+
|
|
11
|
+
#include <cstdint>
|
|
12
|
+
#include <limits>
|
|
13
|
+
#include <set>
|
|
14
|
+
#include <vector>
|
|
15
|
+
|
|
16
|
+
#include <networkit/auxiliary/Log.hpp>
|
|
17
|
+
|
|
18
|
+
namespace Aux {
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Priority queue with extract-min and decrease-key.
|
|
22
|
+
* The type Val takes on integer values between 0 and n-1.
|
|
23
|
+
* O(n log n) for construction, O(log n) for typical operations.
|
|
24
|
+
*/
|
|
25
|
+
template <class Key, class Value>
|
|
26
|
+
class PrioQueue {
|
|
27
|
+
private:
|
|
28
|
+
using ElemType = std::pair<Key, Value>;
|
|
29
|
+
|
|
30
|
+
std::set<ElemType> pqset; // TODO: would std::map work and simplify things?
|
|
31
|
+
std::vector<Key> mapValToKey;
|
|
32
|
+
|
|
33
|
+
const Key undefined = std::numeric_limits<Key>::max(); // TODO: make static
|
|
34
|
+
|
|
35
|
+
protected:
|
|
36
|
+
/**
|
|
37
|
+
* Default constructor without functionality. Only here for derived classes!
|
|
38
|
+
*/
|
|
39
|
+
PrioQueue() = default;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Removes key-value pair given by @a elem.
|
|
43
|
+
*/
|
|
44
|
+
virtual void remove(const ElemType &elem);
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @return current content of queue
|
|
48
|
+
*/
|
|
49
|
+
virtual std::set<std::pair<Key, Value>> content() const;
|
|
50
|
+
|
|
51
|
+
public:
|
|
52
|
+
/**
|
|
53
|
+
* Builds priority queue from the vector @a keys, values are indices
|
|
54
|
+
* of @a keys.
|
|
55
|
+
*/
|
|
56
|
+
PrioQueue(const std::vector<Key> &keys);
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Builds priority queue of the specified capacity @a capacity.
|
|
60
|
+
*/
|
|
61
|
+
PrioQueue(uint64_t capacity);
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Default destructor
|
|
65
|
+
*/
|
|
66
|
+
virtual ~PrioQueue() = default;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Inserts key-value pair stored in @a elem.
|
|
70
|
+
*/
|
|
71
|
+
virtual void insert(Key key, Value value);
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Returns the @a n-th element in the priority queue.
|
|
75
|
+
*/
|
|
76
|
+
virtual ElemType peekMin(size_t n = 0);
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Removes the element with minimum key and returns it.
|
|
80
|
+
*/
|
|
81
|
+
virtual ElemType extractMin();
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Modifies entry with value @a value.
|
|
85
|
+
* The entry is then set to @a newKey with the same value.
|
|
86
|
+
* If the corresponding key is not present, the element will be inserted.
|
|
87
|
+
*/
|
|
88
|
+
virtual void changeKey(Key newKey, Value value);
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* @return Number of elements in PQ.
|
|
92
|
+
*/
|
|
93
|
+
virtual uint64_t size() const;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* @return Whether or not the PQ is empty.
|
|
97
|
+
*/
|
|
98
|
+
virtual bool empty() const noexcept;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* @return Whether or not the PQ contains the given value.
|
|
102
|
+
*/
|
|
103
|
+
virtual bool contains(const Value &value) const;
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Removes key-value pair given by value @a val.
|
|
107
|
+
*/
|
|
108
|
+
virtual void remove(const Value &val);
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Removes all the elements from the priority queue.
|
|
112
|
+
*/
|
|
113
|
+
virtual void clear();
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Iterates over all the elements of the priority queue and call @a handle
|
|
117
|
+
* (lambda closure).
|
|
118
|
+
*/
|
|
119
|
+
template <typename L>
|
|
120
|
+
void forElements(L handle) const;
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Iterates over all the elements of the priority queue while the condition
|
|
124
|
+
* is satisfied and call @a handle (lambda closure).
|
|
125
|
+
*/
|
|
126
|
+
template <typename C, typename L>
|
|
127
|
+
void forElementsWhile(C condition, L handle) const;
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* DEBUGGING
|
|
131
|
+
*/
|
|
132
|
+
virtual void print() {
|
|
133
|
+
DEBUG("num entries: ", mapValToKey.size());
|
|
134
|
+
for (uint64_t i = 0; i < mapValToKey.size(); ++i) {
|
|
135
|
+
DEBUG("key: ", mapValToKey[i], ", val: ", i, "\n");
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
template <class Key, class Value>
|
|
141
|
+
Aux::PrioQueue<Key, Value>::PrioQueue(const std::vector<Key> &keys) {
|
|
142
|
+
mapValToKey.resize(keys.size());
|
|
143
|
+
uint64_t index = 0;
|
|
144
|
+
for (auto key : keys) {
|
|
145
|
+
insert(key, index);
|
|
146
|
+
++index;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
template <class Key, class Value>
|
|
151
|
+
Aux::PrioQueue<Key, Value>::PrioQueue(uint64_t capacity) {
|
|
152
|
+
mapValToKey.resize(capacity);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
template <class Key, class Value>
|
|
156
|
+
void Aux::PrioQueue<Key, Value>::insert(Key key, Value value) {
|
|
157
|
+
if (value >= mapValToKey.size()) {
|
|
158
|
+
uint64_t doubledSize = 2 * mapValToKey.size();
|
|
159
|
+
assert(value < doubledSize);
|
|
160
|
+
mapValToKey.resize(doubledSize);
|
|
161
|
+
}
|
|
162
|
+
pqset.insert(std::make_pair(key, value));
|
|
163
|
+
mapValToKey.at(value) = key;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
template <class Key, class Value>
|
|
167
|
+
void Aux::PrioQueue<Key, Value>::remove(const ElemType &elem) {
|
|
168
|
+
remove(elem.second);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
template <class Key, class Value>
|
|
172
|
+
void Aux::PrioQueue<Key, Value>::remove(const Value &val) {
|
|
173
|
+
Key key = mapValToKey.at(val);
|
|
174
|
+
pqset.erase(std::make_pair(key, val));
|
|
175
|
+
mapValToKey.at(val) = undefined;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
template <class Key, class Value>
|
|
179
|
+
std::pair<Key, Value> Aux::PrioQueue<Key, Value>::peekMin(size_t n) {
|
|
180
|
+
assert(pqset.size() > n);
|
|
181
|
+
ElemType elem = *std::next(pqset.begin(), n);
|
|
182
|
+
return elem;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
template <class Key, class Value>
|
|
186
|
+
std::pair<Key, Value> Aux::PrioQueue<Key, Value>::extractMin() {
|
|
187
|
+
assert(!pqset.empty());
|
|
188
|
+
ElemType elem = (*pqset.begin());
|
|
189
|
+
remove(elem);
|
|
190
|
+
return elem;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
template <class Key, class Value>
|
|
194
|
+
void Aux::PrioQueue<Key, Value>::changeKey(Key newKey, Value value) {
|
|
195
|
+
// find and remove element with given key
|
|
196
|
+
remove(value);
|
|
197
|
+
|
|
198
|
+
// insert element with new value
|
|
199
|
+
insert(newKey, value);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
template <class Key, class Value>
|
|
203
|
+
uint64_t Aux::PrioQueue<Key, Value>::size() const {
|
|
204
|
+
return pqset.size();
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
template <class Key, class Value>
|
|
208
|
+
bool Aux::PrioQueue<Key, Value>::empty() const noexcept {
|
|
209
|
+
return pqset.empty();
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
template <class Key, class Value>
|
|
213
|
+
bool Aux::PrioQueue<Key, Value>::contains(const Value &value) const {
|
|
214
|
+
return value < mapValToKey.size() && mapValToKey.at(value) != undefined;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
template <class Key, class Value>
|
|
218
|
+
std::set<std::pair<Key, Value>> Aux::PrioQueue<Key, Value>::content() const {
|
|
219
|
+
return pqset;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
template <class Key, class Value>
|
|
223
|
+
void Aux::PrioQueue<Key, Value>::clear() {
|
|
224
|
+
pqset.clear();
|
|
225
|
+
auto capacity = mapValToKey.size();
|
|
226
|
+
mapValToKey.clear();
|
|
227
|
+
mapValToKey.resize(capacity);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
template <class Key, class Value>
|
|
231
|
+
template <typename L>
|
|
232
|
+
void Aux::PrioQueue<Key, Value>::forElements(L handle) const {
|
|
233
|
+
for (auto it = pqset.begin(); it != pqset.end(); ++it) {
|
|
234
|
+
ElemType elem = *it;
|
|
235
|
+
handle(elem.first, elem.second);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
template <class Key, class Value>
|
|
240
|
+
template <typename C, typename L>
|
|
241
|
+
void Aux::PrioQueue<Key, Value>::forElementsWhile(C condition, L handle) const {
|
|
242
|
+
for (auto it = pqset.begin(); it != pqset.end(); ++it) {
|
|
243
|
+
if (!condition()) {
|
|
244
|
+
break;
|
|
245
|
+
}
|
|
246
|
+
ElemType elem = *it;
|
|
247
|
+
handle(elem.first, elem.second);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
} /* namespace Aux */
|
|
252
|
+
#endif // NETWORKIT_AUXILIARY_PRIO_QUEUE_HPP_
|