@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,122 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Random.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 02.01.2014
|
|
5
|
+
* Author: FJW
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef NETWORKIT_AUXILIARY_RANDOM_HPP_
|
|
9
|
+
#define NETWORKIT_AUXILIARY_RANDOM_HPP_
|
|
10
|
+
|
|
11
|
+
#include <cassert>
|
|
12
|
+
#include <cstddef>
|
|
13
|
+
#include <cstdint>
|
|
14
|
+
#include <random>
|
|
15
|
+
#include <stdexcept>
|
|
16
|
+
|
|
17
|
+
namespace Aux {
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Provides several functions for random-numbers.
|
|
21
|
+
*
|
|
22
|
+
* All functions are guaranteed to be thread-safe.
|
|
23
|
+
*/
|
|
24
|
+
namespace Random {
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Sets the random seed that is used globally.
|
|
28
|
+
* @param seed The seed value
|
|
29
|
+
* @param useThreadId If the thread id shall be added to the seed value
|
|
30
|
+
*/
|
|
31
|
+
void setSeed(uint64_t seed, bool useThreadId);
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @returns a high-quality random seed for an URNG.
|
|
35
|
+
*/
|
|
36
|
+
uint64_t getSeed();
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @returns a reference to a seeded URNG that is thread_local.
|
|
40
|
+
*/
|
|
41
|
+
std::mt19937_64 &getURNG();
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @returns an integer distributed uniformly in an inclusive range;
|
|
45
|
+
* @param upperBound the upper bound, default = UNINT64_T_MAX
|
|
46
|
+
* @param lowerBound the lower bound, default = 0
|
|
47
|
+
*
|
|
48
|
+
* @warning Compared to obtaining a reference to a generator using
|
|
49
|
+
* @ref getURNG() and then using a local std::uniform_int_distribution,
|
|
50
|
+
* this method incurs a slow-down of up to 30%. Consider avoiding it
|
|
51
|
+
* in hot sections.
|
|
52
|
+
*/
|
|
53
|
+
uint64_t integer();
|
|
54
|
+
uint64_t integer(uint64_t upperBound);
|
|
55
|
+
uint64_t integer(uint64_t lowerBound, uint64_t upperBound);
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* @returns a double distributed uniformly in a half-open range: [lowerBound, upperBound)
|
|
59
|
+
* @param upperBound default = 1.0
|
|
60
|
+
* @param lowerBound default = 0.0
|
|
61
|
+
*
|
|
62
|
+
* @warning Compared to obtaining a reference to a generator using
|
|
63
|
+
* @ref getURNG() and then using a local std::uniform_real_distribution,
|
|
64
|
+
* this method incurs a slow-down of up to 30%. Consider avoiding it
|
|
65
|
+
* in hot sections.
|
|
66
|
+
*/
|
|
67
|
+
double real();
|
|
68
|
+
double real(double upperBound);
|
|
69
|
+
double real(double lowerBound, double upperBound);
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* @returns a double distributed uniformly in the range [0, 1]
|
|
73
|
+
* @note this differs from real() in returning a value in a closed instead of a half-open range.
|
|
74
|
+
*
|
|
75
|
+
* @warning Compared to obtaining a reference to a generator using
|
|
76
|
+
* @ref getURNG() and then using a local std::uniform_int_distribution,
|
|
77
|
+
* this method incurs a slow-down of up to 30%. Consider avoiding it
|
|
78
|
+
* in hot sections.
|
|
79
|
+
*/
|
|
80
|
+
double probability();
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* @returns a size_t in the range [0, max - 1] that can for example be used to
|
|
84
|
+
* access a random element of a container.
|
|
85
|
+
*/
|
|
86
|
+
std::size_t index(std::size_t max);
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* @returns a uniform random choice from an indexable container of elements.
|
|
90
|
+
*/
|
|
91
|
+
template <typename Container>
|
|
92
|
+
typename Container::const_reference choice(const Container &container) {
|
|
93
|
+
return container[index(container.size())];
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* @returns a weighted random choice from a vector of elements with given weights.
|
|
98
|
+
*/
|
|
99
|
+
template <typename Element>
|
|
100
|
+
const Element &weightedChoice(const std::vector<std::pair<Element, double>> &weightedElements) {
|
|
101
|
+
if (weightedElements.empty())
|
|
102
|
+
throw std::runtime_error("Random::weightedChoice: input size equal to 0");
|
|
103
|
+
double total = 0.0;
|
|
104
|
+
for (const auto &entry : weightedElements) {
|
|
105
|
+
assert(entry.second >= 0.0 && "This algorithm only works with non-negative weights");
|
|
106
|
+
total += entry.second;
|
|
107
|
+
}
|
|
108
|
+
double r = Aux::Random::real(total);
|
|
109
|
+
for (const auto &entry : weightedElements) {
|
|
110
|
+
if (r < entry.second) {
|
|
111
|
+
return entry.first;
|
|
112
|
+
}
|
|
113
|
+
r -= entry.second;
|
|
114
|
+
}
|
|
115
|
+
throw std::runtime_error(
|
|
116
|
+
"Random::weightedChoice: should never get here"); // should never get here
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
} // namespace Random
|
|
120
|
+
} // namespace Aux
|
|
121
|
+
|
|
122
|
+
#endif // NETWORKIT_AUXILIARY_RANDOM_HPP_
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* SetIntersector.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 14.05.2014
|
|
5
|
+
* Author: Henning
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef NETWORKIT_AUXILIARY_SET_INTERSECTOR_HPP_
|
|
9
|
+
#define NETWORKIT_AUXILIARY_SET_INTERSECTOR_HPP_
|
|
10
|
+
|
|
11
|
+
#include <cstdint>
|
|
12
|
+
#include <set>
|
|
13
|
+
#include <vector>
|
|
14
|
+
|
|
15
|
+
namespace Aux {
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Provides set intersection for sets with entries from 0 to an upper bound (exclusive).
|
|
19
|
+
* Preprocessing time: Linear time for object creation (creates a bit vector of size upperBound.
|
|
20
|
+
* Query time: O(|A|+|B|) for two sets A and B.
|
|
21
|
+
* Space complexity: upperBound + 64 bits.
|
|
22
|
+
*/
|
|
23
|
+
template <class T>
|
|
24
|
+
class SetIntersector {
|
|
25
|
+
public:
|
|
26
|
+
/**
|
|
27
|
+
* @param upperBound Exclusive upper bound for IDs of set members.
|
|
28
|
+
*/
|
|
29
|
+
SetIntersector(T upperBound);
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @return Intersection of sets provided in @a A and @a B.
|
|
33
|
+
*/
|
|
34
|
+
std::set<T> intersect(const std::vector<T> &A, const std::vector<T> &B);
|
|
35
|
+
|
|
36
|
+
private:
|
|
37
|
+
std::vector<bool> bv;
|
|
38
|
+
uint64_t n;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
} // namespace Aux
|
|
42
|
+
|
|
43
|
+
template <class T>
|
|
44
|
+
inline Aux::SetIntersector<T>::SetIntersector(T upperBound) : n(upperBound) {
|
|
45
|
+
bv.resize(n, false);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
template <class T>
|
|
49
|
+
inline std::set<T> Aux::SetIntersector<T>::intersect(const std::vector<T> &A,
|
|
50
|
+
const std::vector<T> &B) {
|
|
51
|
+
const std::vector<T> &smaller = (A.size() <= B.size()) ? A : B;
|
|
52
|
+
const std::vector<T> &larger = (A.size() <= B.size()) ? B : A;
|
|
53
|
+
|
|
54
|
+
for (auto entry : smaller) {
|
|
55
|
+
bv[entry] = true;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
std::set<T> result;
|
|
59
|
+
for (auto entry : larger) {
|
|
60
|
+
if (bv[entry]) {
|
|
61
|
+
result.insert(entry);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
for (auto entry : smaller) {
|
|
66
|
+
bv[entry] = false;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
#endif // NETWORKIT_AUXILIARY_SET_INTERSECTOR_HPP_
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#ifndef NETWORKIT_AUXILIARY_SIGNAL_HANDLING_HPP_
|
|
2
|
+
#define NETWORKIT_AUXILIARY_SIGNAL_HANDLING_HPP_
|
|
3
|
+
|
|
4
|
+
#include <cstdint>
|
|
5
|
+
#include <exception>
|
|
6
|
+
|
|
7
|
+
namespace Aux {
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Signal handler class used to support CTRL+c user interrupts.
|
|
11
|
+
* This class works by registering a interrupt handler during its lifetime; to check if an interrupt
|
|
12
|
+
* has been received or to immediately stop running a (long-running) algorithm, use the
|
|
13
|
+
* `assureRunning` or `isRunning` member functions.
|
|
14
|
+
* @note Make sure to delete this object when it is no longer required to free up the interrupt
|
|
15
|
+
* handler again for other code such as the python runtime!
|
|
16
|
+
*/
|
|
17
|
+
class SignalHandler {
|
|
18
|
+
public:
|
|
19
|
+
SignalHandler();
|
|
20
|
+
|
|
21
|
+
~SignalHandler();
|
|
22
|
+
|
|
23
|
+
void assureRunning();
|
|
24
|
+
|
|
25
|
+
bool isRunning();
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Special Exception to indicate that a SIGINT has been received.
|
|
29
|
+
*/
|
|
30
|
+
class InterruptException : public std::exception {
|
|
31
|
+
public:
|
|
32
|
+
InterruptException() : std::exception() {}
|
|
33
|
+
const char *what() const noexcept override { return "Received CTRL+C/SIGINT"; }
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
} // namespace Aux
|
|
38
|
+
|
|
39
|
+
#endif // NETWORKIT_AUXILIARY_SIGNAL_HANDLING_HPP_
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* SortedList.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 21.09.2018
|
|
5
|
+
* Author: Eugenio Angriman
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef NETWORKIT_AUXILIARY_SORTED_LIST_HPP_
|
|
9
|
+
#define NETWORKIT_AUXILIARY_SORTED_LIST_HPP_
|
|
10
|
+
|
|
11
|
+
#include <algorithm>
|
|
12
|
+
#include <vector>
|
|
13
|
+
|
|
14
|
+
namespace Aux {
|
|
15
|
+
/*
|
|
16
|
+
* Keeps a sorted list of pairs with at most k elements.
|
|
17
|
+
* If more than k elements are inserted, the elements with smallest value are
|
|
18
|
+
* removed. The list is implemented on top of vector, thus the insert operation
|
|
19
|
+
* takes O(k) time.
|
|
20
|
+
*
|
|
21
|
+
* Warning: this sorted list was designed for the Kadabra algorithm; we assume
|
|
22
|
+
* that all the newly inserted elements have a value that is greater or equal
|
|
23
|
+
* to 0 if not already present in the list, or greater or equal their previous
|
|
24
|
+
* value.
|
|
25
|
+
* TODO: generalize this data structure.
|
|
26
|
+
*/
|
|
27
|
+
class SortedList {
|
|
28
|
+
private:
|
|
29
|
+
std::vector<std::pair<uint64_t, double>> elements;
|
|
30
|
+
std::vector<uint64_t> position;
|
|
31
|
+
uint64_t virtualSize;
|
|
32
|
+
const uint64_t size;
|
|
33
|
+
const uint64_t maxKey;
|
|
34
|
+
|
|
35
|
+
public:
|
|
36
|
+
/**
|
|
37
|
+
* Creates a SortedList of size @a size accepting key values from 0 to
|
|
38
|
+
* @a maxKey.
|
|
39
|
+
*/
|
|
40
|
+
SortedList(uint64_t size, uint64_t maxKey);
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Insert a key-value element.
|
|
44
|
+
*/
|
|
45
|
+
void insert(uint64_t newElement, double newValue);
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Returns the value at position @a i in the ranking.
|
|
49
|
+
*/
|
|
50
|
+
double getValue(const uint64_t i) const { return elements[i].second; }
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Returns the element at position @a i in the ranking.
|
|
54
|
+
*/
|
|
55
|
+
uint64_t getElement(const uint64_t i) const { return elements[i].first; }
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Returns the number of elements stored in the list.
|
|
59
|
+
*/
|
|
60
|
+
uint64_t getSize() const { return virtualSize; }
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Removes all the elements in the list.
|
|
64
|
+
*/
|
|
65
|
+
void clear();
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
inline SortedList::SortedList(const uint64_t size, const uint64_t maxKey)
|
|
69
|
+
: size(size), maxKey(maxKey) {
|
|
70
|
+
if (maxKey < size) {
|
|
71
|
+
throw std::runtime_error("maxKey must be bigger than the size.");
|
|
72
|
+
}
|
|
73
|
+
clear();
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
inline void SortedList::clear() {
|
|
77
|
+
elements.resize(size);
|
|
78
|
+
position.resize(maxKey);
|
|
79
|
+
uint64_t i;
|
|
80
|
+
for (i = 0; i < size; ++i) {
|
|
81
|
+
elements[i] = std::make_pair(i, 0.);
|
|
82
|
+
position[i] = i;
|
|
83
|
+
}
|
|
84
|
+
for (i = size; i < maxKey; ++i) {
|
|
85
|
+
position[i] = i;
|
|
86
|
+
}
|
|
87
|
+
virtualSize = 0;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
inline void SortedList::insert(const uint64_t newElement, const double newValue) {
|
|
91
|
+
uint64_t ub = std::upper_bound(elements.begin(), elements.begin() + virtualSize, newValue,
|
|
92
|
+
[&](const double val, const std::pair<uint64_t, double> pair) {
|
|
93
|
+
return val > pair.second;
|
|
94
|
+
})
|
|
95
|
+
- elements.begin();
|
|
96
|
+
|
|
97
|
+
uint64_t oldPos;
|
|
98
|
+
// We assume that if the same key is inserted again, its value will be
|
|
99
|
+
// greater than before (i.e., oldPos >= ub).
|
|
100
|
+
if (ub < size) {
|
|
101
|
+
oldPos = std::min(position[newElement], size - 1);
|
|
102
|
+
if (position[newElement] < size) {
|
|
103
|
+
assert(elements[ub].second <= newValue);
|
|
104
|
+
}
|
|
105
|
+
if (virtualSize < size && oldPos >= virtualSize) {
|
|
106
|
+
++virtualSize;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (ub < oldPos) {
|
|
110
|
+
std::rotate(elements.begin() + ub, elements.begin() + oldPos,
|
|
111
|
+
elements.begin() + oldPos + 1);
|
|
112
|
+
|
|
113
|
+
if (oldPos == size - 1) {
|
|
114
|
+
++position[elements[ub].first];
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
elements[ub] = std::make_pair(newElement, newValue);
|
|
118
|
+
for (auto it = elements.begin() + ub + 1; it < elements.begin() + oldPos + 1; ++it) {
|
|
119
|
+
++position[(*it).first];
|
|
120
|
+
}
|
|
121
|
+
} else {
|
|
122
|
+
elements[ub].second = newValue;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
} // namespace Aux
|
|
127
|
+
|
|
128
|
+
#endif // NETWORKIT_AUXILIARY_SORTED_LIST_HPP_
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* SparseVector.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created: 2019-10-15
|
|
5
|
+
* Author: Armin Wiebigke
|
|
6
|
+
*/
|
|
7
|
+
#ifndef NETWORKIT_AUXILIARY_SPARSE_VECTOR_HPP_
|
|
8
|
+
#define NETWORKIT_AUXILIARY_SPARSE_VECTOR_HPP_
|
|
9
|
+
|
|
10
|
+
#include <algorithm>
|
|
11
|
+
#include <cassert>
|
|
12
|
+
#include <vector>
|
|
13
|
+
|
|
14
|
+
#include <networkit/Globals.hpp>
|
|
15
|
+
|
|
16
|
+
namespace NetworKit {
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* A vector that imitates a map with unsigned integer keys.
|
|
20
|
+
* This class has faster access than a map, but needs space linear in the maximum key value.
|
|
21
|
+
*/
|
|
22
|
+
template <typename T>
|
|
23
|
+
class SparseVector {
|
|
24
|
+
public:
|
|
25
|
+
SparseVector();
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Construct an empty vector. Empty values are created using the default constructor.
|
|
29
|
+
* @param size upper bound for the maximum usable index
|
|
30
|
+
*/
|
|
31
|
+
explicit SparseVector(index size);
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Construct an empty vector.
|
|
35
|
+
* @param size upper bound for the maximum usable index
|
|
36
|
+
* @param emptyValue value used for empty entries
|
|
37
|
+
*/
|
|
38
|
+
SparseVector(index size, T emptyValue);
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Resize the vector so that indexes up to size-1 can be used.
|
|
42
|
+
*/
|
|
43
|
+
void setUpperBound(index size);
|
|
44
|
+
|
|
45
|
+
/** *
|
|
46
|
+
* @return the upper bound of the indexes that can be used
|
|
47
|
+
*/
|
|
48
|
+
index upperBound() const;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* @return the number of inserted elements.
|
|
52
|
+
*/
|
|
53
|
+
count size() const;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Insert a value at a given position.
|
|
57
|
+
* @param i index where the value is inserted
|
|
58
|
+
* @param value
|
|
59
|
+
*/
|
|
60
|
+
void insert(index i, T value);
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Access operator. Before accessing an element, insert it by using the insert() method.
|
|
64
|
+
*/
|
|
65
|
+
T &operator[](index i);
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Const access operator. Before accessing an element, insert it by using the insert() method.
|
|
69
|
+
*/
|
|
70
|
+
const T &operator[](index i) const;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Returns true iff an element was previously inserted at the given index.
|
|
74
|
+
* @param idx
|
|
75
|
+
*/
|
|
76
|
+
bool indexIsUsed(index idx);
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Inserts value at position i, or replaces the value if previously inserted
|
|
80
|
+
* @param i
|
|
81
|
+
* @param value
|
|
82
|
+
*/
|
|
83
|
+
void insertOrSet(index i, T value);
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Remove all indexes for which the value is set to the emptyValue.
|
|
87
|
+
*/
|
|
88
|
+
void removeUnusedIndexes() {
|
|
89
|
+
auto new_end = std::remove_if(usedIndexes.begin(), usedIndexes.end(),
|
|
90
|
+
[&](index i) { return data[i] == emptyValue; });
|
|
91
|
+
usedIndexes.erase(new_end, usedIndexes.end());
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Reset all values to the default value, so it is "empty". The upper bound is not changed.
|
|
96
|
+
*/
|
|
97
|
+
void reset();
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Clear the vector, setting the upper bound of usable indexes to 0.
|
|
101
|
+
*/
|
|
102
|
+
void clear();
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Reallocate the datastructure if size exceeds current upper bound
|
|
106
|
+
* This is different from setUpperBound() since we want to make sure both usedIndexes and data
|
|
107
|
+
* are allocated on the socket of the calling thread
|
|
108
|
+
* @param size
|
|
109
|
+
* @param emptyValue new emptyValue
|
|
110
|
+
*/
|
|
111
|
+
void resize(size_t size, T emptyValue);
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Applies the given lambda to each inserted index and associated value
|
|
115
|
+
* @tparam ElementHandler
|
|
116
|
+
* @param lambda
|
|
117
|
+
*/
|
|
118
|
+
template <typename ElementHandler>
|
|
119
|
+
void forElements(ElementHandler &&lambda) {
|
|
120
|
+
for (index i : usedIndexes) {
|
|
121
|
+
lambda(i, data[i]);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
private:
|
|
126
|
+
std::vector<T> data;
|
|
127
|
+
std::vector<index> usedIndexes;
|
|
128
|
+
T emptyValue;
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
template <typename T>
|
|
132
|
+
SparseVector<T>::SparseVector() : emptyValue(T{}) {}
|
|
133
|
+
|
|
134
|
+
template <typename T>
|
|
135
|
+
SparseVector<T>::SparseVector(count size) : SparseVector(size, T{}) {}
|
|
136
|
+
|
|
137
|
+
template <typename T>
|
|
138
|
+
SparseVector<T>::SparseVector(count size, T emptyValue)
|
|
139
|
+
: data(size, emptyValue), emptyValue(emptyValue) {}
|
|
140
|
+
|
|
141
|
+
template <typename T>
|
|
142
|
+
void SparseVector<T>::reset() {
|
|
143
|
+
for (index i : usedIndexes) {
|
|
144
|
+
data[i] = emptyValue;
|
|
145
|
+
}
|
|
146
|
+
usedIndexes.clear();
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
template <typename T>
|
|
150
|
+
void SparseVector<T>::insert(index i, T value) {
|
|
151
|
+
assert(data[i] == emptyValue);
|
|
152
|
+
usedIndexes.push_back(i);
|
|
153
|
+
data[i] = std::move(value);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
template <typename T>
|
|
157
|
+
T &SparseVector<T>::operator[](index i) {
|
|
158
|
+
return data[i];
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
template <typename T>
|
|
162
|
+
const T &NetworKit::SparseVector<T>::operator[](NetworKit::index i) const {
|
|
163
|
+
assert(i < data.size());
|
|
164
|
+
return data[i];
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
template <typename T>
|
|
168
|
+
void SparseVector<T>::setUpperBound(index size) {
|
|
169
|
+
data.resize(size, emptyValue);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
template <typename T>
|
|
173
|
+
index SparseVector<T>::upperBound() const {
|
|
174
|
+
return data.size();
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
template <typename T>
|
|
178
|
+
count SparseVector<T>::size() const {
|
|
179
|
+
return usedIndexes.size();
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
template <typename T>
|
|
183
|
+
void NetworKit::SparseVector<T>::clear() {
|
|
184
|
+
usedIndexes.clear();
|
|
185
|
+
usedIndexes.shrink_to_fit();
|
|
186
|
+
data.clear();
|
|
187
|
+
data.shrink_to_fit();
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
template <typename T>
|
|
191
|
+
void NetworKit::SparseVector<T>::resize(size_t size, T emptyValue) {
|
|
192
|
+
if (size > upperBound()) {
|
|
193
|
+
this->emptyValue = emptyValue;
|
|
194
|
+
data = std::vector<T>(size, this->emptyValue);
|
|
195
|
+
usedIndexes = std::vector<index>();
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
template <typename T>
|
|
200
|
+
bool NetworKit::SparseVector<T>::indexIsUsed(index idx) {
|
|
201
|
+
return data[idx] != emptyValue;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
template <typename T>
|
|
205
|
+
void NetworKit::SparseVector<T>::insertOrSet(NetworKit::index i, T value) {
|
|
206
|
+
if (!indexIsUsed(i)) {
|
|
207
|
+
insert(i, value);
|
|
208
|
+
} else {
|
|
209
|
+
data[i] = value;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
} /* namespace NetworKit */
|
|
214
|
+
|
|
215
|
+
#endif // NETWORKIT_AUXILIARY_SPARSE_VECTOR_HPP_
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#ifndef NETWORKIT_AUXILIARY_SPIN_LOCK_HPP_
|
|
2
|
+
#define NETWORKIT_AUXILIARY_SPIN_LOCK_HPP_
|
|
3
|
+
|
|
4
|
+
#include <atomic>
|
|
5
|
+
|
|
6
|
+
namespace Aux {
|
|
7
|
+
|
|
8
|
+
class Spinlock {
|
|
9
|
+
public:
|
|
10
|
+
void lock() {
|
|
11
|
+
while (spinner.test_and_set(std::memory_order_acquire)) {
|
|
12
|
+
/* spin */
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
void unlock() { spinner.clear(std::memory_order_release); }
|
|
16
|
+
|
|
17
|
+
private:
|
|
18
|
+
std::atomic_flag spinner = ATOMIC_FLAG_INIT;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
} // namespace Aux
|
|
22
|
+
|
|
23
|
+
#endif // NETWORKIT_AUXILIARY_SPIN_LOCK_HPP_
|