@ladybugmem/icebug 0.1.0 → 0.1.2
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/binding.gyp +32 -10
- package/lib/index.js +23 -11
- package/package.json +9 -15
- package/prebuilds/darwin-arm64/icebug.node +0 -0
- package/{vendor/lib → prebuilds/darwin-arm64}/libnetworkit.dylib +0 -0
- package/prebuilds/linux-x64/icebug.node +0 -0
- package/prebuilds/linux-x64/libnetworkit.so +0 -0
- package/scripts/download-icebug.sh +92 -0
- package/build/Release/.deps/Release/icebug.node.d +0 -1
- package/build/Release/.deps/Release/obj.target/icebug/src/addon.o.d +0 -291
- package/build/Release/icebug.node +0 -0
- package/build/Release/obj.target/icebug/src/addon.o +0 -0
- package/vendor/include/networkit/GlobalState.hpp +0 -86
- package/vendor/include/networkit/Globals.hpp +0 -41
- package/vendor/include/networkit/algebraic/AlgebraicGlobals.hpp +0 -27
- package/vendor/include/networkit/algebraic/CSRGeneralMatrix.hpp +0 -1292
- package/vendor/include/networkit/algebraic/CSRMatrix.hpp +0 -11
- package/vendor/include/networkit/algebraic/DenseMatrix.hpp +0 -537
- package/vendor/include/networkit/algebraic/DynamicMatrix.hpp +0 -514
- package/vendor/include/networkit/algebraic/GraphBLAS.hpp +0 -323
- package/vendor/include/networkit/algebraic/MatrixTools.hpp +0 -156
- package/vendor/include/networkit/algebraic/Semirings.hpp +0 -171
- package/vendor/include/networkit/algebraic/SparseAccumulator.hpp +0 -111
- package/vendor/include/networkit/algebraic/Vector.hpp +0 -371
- package/vendor/include/networkit/algebraic/algorithms/AlgebraicBFS.hpp +0 -72
- package/vendor/include/networkit/algebraic/algorithms/AlgebraicBellmanFord.hpp +0 -88
- package/vendor/include/networkit/algebraic/algorithms/AlgebraicMatchingCoarsening.hpp +0 -96
- package/vendor/include/networkit/algebraic/algorithms/AlgebraicPageRank.hpp +0 -145
- package/vendor/include/networkit/algebraic/algorithms/AlgebraicSpanningEdgeCentrality.hpp +0 -122
- package/vendor/include/networkit/algebraic/algorithms/AlgebraicTriangleCounting.hpp +0 -76
- package/vendor/include/networkit/auxiliary/AlignedAllocator.hpp +0 -113
- package/vendor/include/networkit/auxiliary/ArrayTools.hpp +0 -85
- package/vendor/include/networkit/auxiliary/BloomFilter.hpp +0 -70
- package/vendor/include/networkit/auxiliary/BucketPQ.hpp +0 -142
- package/vendor/include/networkit/auxiliary/Enforce.hpp +0 -117
- package/vendor/include/networkit/auxiliary/FunctionTraits.hpp +0 -74
- package/vendor/include/networkit/auxiliary/HashUtils.hpp +0 -28
- package/vendor/include/networkit/auxiliary/IncrementalUniformRandomSelector.hpp +0 -52
- package/vendor/include/networkit/auxiliary/Log.hpp +0 -119
- package/vendor/include/networkit/auxiliary/MissingMath.hpp +0 -48
- package/vendor/include/networkit/auxiliary/Multiprecision.hpp +0 -17
- package/vendor/include/networkit/auxiliary/NumberParsing.hpp +0 -307
- package/vendor/include/networkit/auxiliary/NumericTools.hpp +0 -57
- package/vendor/include/networkit/auxiliary/Parallel.hpp +0 -56
- package/vendor/include/networkit/auxiliary/Parallelism.hpp +0 -33
- package/vendor/include/networkit/auxiliary/PrioQueue.hpp +0 -252
- package/vendor/include/networkit/auxiliary/Random.hpp +0 -122
- package/vendor/include/networkit/auxiliary/SetIntersector.hpp +0 -72
- package/vendor/include/networkit/auxiliary/SignalHandling.hpp +0 -39
- package/vendor/include/networkit/auxiliary/SortedList.hpp +0 -128
- package/vendor/include/networkit/auxiliary/SparseVector.hpp +0 -215
- package/vendor/include/networkit/auxiliary/SpinLock.hpp +0 -23
- package/vendor/include/networkit/auxiliary/StringBuilder.hpp +0 -322
- package/vendor/include/networkit/auxiliary/StringTools.hpp +0 -76
- package/vendor/include/networkit/auxiliary/TemplateUtils.hpp +0 -76
- package/vendor/include/networkit/auxiliary/Timer.hpp +0 -145
- package/vendor/include/networkit/auxiliary/VectorComparator.hpp +0 -32
- package/vendor/include/networkit/base/Algorithm.hpp +0 -41
- package/vendor/include/networkit/base/DynAlgorithm.hpp +0 -31
- package/vendor/include/networkit/centrality/ApproxBetweenness.hpp +0 -62
- package/vendor/include/networkit/centrality/ApproxCloseness.hpp +0 -136
- package/vendor/include/networkit/centrality/ApproxElectricalCloseness.hpp +0 -156
- package/vendor/include/networkit/centrality/ApproxGroupBetweenness.hpp +0 -124
- package/vendor/include/networkit/centrality/ApproxSpanningEdge.hpp +0 -84
- package/vendor/include/networkit/centrality/Betweenness.hpp +0 -47
- package/vendor/include/networkit/centrality/Centrality.hpp +0 -98
- package/vendor/include/networkit/centrality/Closeness.hpp +0 -107
- package/vendor/include/networkit/centrality/ComplexPaths.hpp +0 -113
- package/vendor/include/networkit/centrality/CoreDecomposition.hpp +0 -161
- package/vendor/include/networkit/centrality/DegreeCentrality.hpp +0 -55
- package/vendor/include/networkit/centrality/DynApproxBetweenness.hpp +0 -95
- package/vendor/include/networkit/centrality/DynBetweenness.hpp +0 -99
- package/vendor/include/networkit/centrality/DynBetweennessOneNode.hpp +0 -98
- package/vendor/include/networkit/centrality/DynKatzCentrality.hpp +0 -115
- package/vendor/include/networkit/centrality/DynTopHarmonicCloseness.hpp +0 -223
- package/vendor/include/networkit/centrality/EigenvectorCentrality.hpp +0 -41
- package/vendor/include/networkit/centrality/EstimateBetweenness.hpp +0 -51
- package/vendor/include/networkit/centrality/ForestCentrality.hpp +0 -112
- package/vendor/include/networkit/centrality/GedWalk.hpp +0 -225
- package/vendor/include/networkit/centrality/GroupCloseness.hpp +0 -115
- package/vendor/include/networkit/centrality/GroupClosenessGrowShrink.hpp +0 -78
- package/vendor/include/networkit/centrality/GroupClosenessLocalSearch.hpp +0 -77
- package/vendor/include/networkit/centrality/GroupClosenessLocalSwaps.hpp +0 -106
- package/vendor/include/networkit/centrality/GroupDegree.hpp +0 -155
- package/vendor/include/networkit/centrality/GroupHarmonicCloseness.hpp +0 -83
- package/vendor/include/networkit/centrality/HarmonicCloseness.hpp +0 -48
- package/vendor/include/networkit/centrality/KPathCentrality.hpp +0 -52
- package/vendor/include/networkit/centrality/KadabraBetweenness.hpp +0 -242
- package/vendor/include/networkit/centrality/KatzCentrality.hpp +0 -62
- package/vendor/include/networkit/centrality/LaplacianCentrality.hpp +0 -44
- package/vendor/include/networkit/centrality/LocalClusteringCoefficient.hpp +0 -60
- package/vendor/include/networkit/centrality/LocalPartitionCoverage.hpp +0 -43
- package/vendor/include/networkit/centrality/LocalSquareClusteringCoefficient.hpp +0 -42
- package/vendor/include/networkit/centrality/PageRank.hpp +0 -101
- package/vendor/include/networkit/centrality/PermanenceCentrality.hpp +0 -48
- package/vendor/include/networkit/centrality/Sfigality.hpp +0 -45
- package/vendor/include/networkit/centrality/SpanningEdgeCentrality.hpp +0 -86
- package/vendor/include/networkit/centrality/TopCloseness.hpp +0 -136
- package/vendor/include/networkit/centrality/TopHarmonicCloseness.hpp +0 -151
- package/vendor/include/networkit/clique/MaximalCliques.hpp +0 -83
- package/vendor/include/networkit/coarsening/ClusteringProjector.hpp +0 -59
- package/vendor/include/networkit/coarsening/CoarsenedGraphView.hpp +0 -156
- package/vendor/include/networkit/coarsening/GraphCoarsening.hpp +0 -57
- package/vendor/include/networkit/coarsening/MatchingCoarsening.hpp +0 -43
- package/vendor/include/networkit/coarsening/ParallelPartitionCoarsening.hpp +0 -33
- package/vendor/include/networkit/coarsening/ParallelPartitionCoarseningView.hpp +0 -62
- package/vendor/include/networkit/community/AdjustedRandMeasure.hpp +0 -31
- package/vendor/include/networkit/community/ClusteringGenerator.hpp +0 -75
- package/vendor/include/networkit/community/CommunityDetectionAlgorithm.hpp +0 -58
- package/vendor/include/networkit/community/Conductance.hpp +0 -32
- package/vendor/include/networkit/community/CoverF1Similarity.hpp +0 -53
- package/vendor/include/networkit/community/CoverHubDominance.hpp +0 -38
- package/vendor/include/networkit/community/Coverage.hpp +0 -25
- package/vendor/include/networkit/community/CutClustering.hpp +0 -62
- package/vendor/include/networkit/community/DissimilarityMeasure.hpp +0 -31
- package/vendor/include/networkit/community/DynamicNMIDistance.hpp +0 -44
- package/vendor/include/networkit/community/EdgeCut.hpp +0 -24
- package/vendor/include/networkit/community/GraphClusteringTools.hpp +0 -103
- package/vendor/include/networkit/community/GraphStructuralRandMeasure.hpp +0 -28
- package/vendor/include/networkit/community/HubDominance.hpp +0 -46
- package/vendor/include/networkit/community/IntrapartitionDensity.hpp +0 -44
- package/vendor/include/networkit/community/IsolatedInterpartitionConductance.hpp +0 -40
- package/vendor/include/networkit/community/IsolatedInterpartitionExpansion.hpp +0 -40
- package/vendor/include/networkit/community/JaccardMeasure.hpp +0 -25
- package/vendor/include/networkit/community/LFM.hpp +0 -49
- package/vendor/include/networkit/community/LPDegreeOrdered.hpp +0 -48
- package/vendor/include/networkit/community/LocalCommunityEvaluation.hpp +0 -100
- package/vendor/include/networkit/community/LocalCoverEvaluation.hpp +0 -31
- package/vendor/include/networkit/community/LocalPartitionEvaluation.hpp +0 -31
- package/vendor/include/networkit/community/LouvainMapEquation.hpp +0 -135
- package/vendor/include/networkit/community/Modularity.hpp +0 -54
- package/vendor/include/networkit/community/NMIDistance.hpp +0 -28
- package/vendor/include/networkit/community/NodeStructuralRandMeasure.hpp +0 -27
- package/vendor/include/networkit/community/OverlappingCommunityDetectionAlgorithm.hpp +0 -51
- package/vendor/include/networkit/community/OverlappingNMIDistance.hpp +0 -175
- package/vendor/include/networkit/community/PLM.hpp +0 -89
- package/vendor/include/networkit/community/PLP.hpp +0 -83
- package/vendor/include/networkit/community/ParallelAgglomerativeClusterer.hpp +0 -37
- package/vendor/include/networkit/community/ParallelLeiden.hpp +0 -96
- package/vendor/include/networkit/community/ParallelLeidenView.hpp +0 -138
- package/vendor/include/networkit/community/PartitionFragmentation.hpp +0 -30
- package/vendor/include/networkit/community/PartitionHubDominance.hpp +0 -37
- package/vendor/include/networkit/community/PartitionIntersection.hpp +0 -25
- package/vendor/include/networkit/community/QualityMeasure.hpp +0 -27
- package/vendor/include/networkit/community/SampledGraphStructuralRandMeasure.hpp +0 -40
- package/vendor/include/networkit/community/SampledNodeStructuralRandMeasure.hpp +0 -40
- package/vendor/include/networkit/community/StablePartitionNodes.hpp +0 -48
- package/vendor/include/networkit/components/BiconnectedComponents.hpp +0 -116
- package/vendor/include/networkit/components/ComponentDecomposition.hpp +0 -72
- package/vendor/include/networkit/components/ConnectedComponents.hpp +0 -55
- package/vendor/include/networkit/components/DynConnectedComponents.hpp +0 -71
- package/vendor/include/networkit/components/DynWeaklyConnectedComponents.hpp +0 -73
- package/vendor/include/networkit/components/ParallelConnectedComponents.hpp +0 -44
- package/vendor/include/networkit/components/RandomSpanningForest.hpp +0 -36
- package/vendor/include/networkit/components/StronglyConnectedComponents.hpp +0 -50
- package/vendor/include/networkit/components/WeaklyConnectedComponents.hpp +0 -59
- package/vendor/include/networkit/correlation/Assortativity.hpp +0 -64
- package/vendor/include/networkit/distance/APSP.hpp +0 -70
- package/vendor/include/networkit/distance/AStar.hpp +0 -68
- package/vendor/include/networkit/distance/AStarGeneral.hpp +0 -110
- package/vendor/include/networkit/distance/AdamicAdarDistance.hpp +0 -52
- package/vendor/include/networkit/distance/AffectedNodes.hpp +0 -130
- package/vendor/include/networkit/distance/AlgebraicDistance.hpp +0 -63
- package/vendor/include/networkit/distance/BFS.hpp +0 -43
- package/vendor/include/networkit/distance/BidirectionalBFS.hpp +0 -51
- package/vendor/include/networkit/distance/BidirectionalDijkstra.hpp +0 -69
- package/vendor/include/networkit/distance/CommuteTimeDistance.hpp +0 -89
- package/vendor/include/networkit/distance/Diameter.hpp +0 -97
- package/vendor/include/networkit/distance/Dijkstra.hpp +0 -50
- package/vendor/include/networkit/distance/DynAPSP.hpp +0 -67
- package/vendor/include/networkit/distance/DynBFS.hpp +0 -56
- package/vendor/include/networkit/distance/DynDijkstra.hpp +0 -57
- package/vendor/include/networkit/distance/DynPrunedLandmarkLabeling.hpp +0 -67
- package/vendor/include/networkit/distance/DynSSSP.hpp +0 -87
- package/vendor/include/networkit/distance/Eccentricity.hpp +0 -32
- package/vendor/include/networkit/distance/EffectiveDiameter.hpp +0 -47
- package/vendor/include/networkit/distance/EffectiveDiameterApproximation.hpp +0 -57
- package/vendor/include/networkit/distance/FloydWarshall.hpp +0 -93
- package/vendor/include/networkit/distance/GraphDistance.hpp +0 -49
- package/vendor/include/networkit/distance/HopPlotApproximation.hpp +0 -62
- package/vendor/include/networkit/distance/IncompleteDijkstra.hpp +0 -66
- package/vendor/include/networkit/distance/IncompleteSSSP.hpp +0 -41
- package/vendor/include/networkit/distance/JaccardDistance.hpp +0 -57
- package/vendor/include/networkit/distance/MultiTargetBFS.hpp +0 -32
- package/vendor/include/networkit/distance/MultiTargetDijkstra.hpp +0 -40
- package/vendor/include/networkit/distance/NeighborhoodFunction.hpp +0 -47
- package/vendor/include/networkit/distance/NeighborhoodFunctionApproximation.hpp +0 -56
- package/vendor/include/networkit/distance/NeighborhoodFunctionHeuristic.hpp +0 -56
- package/vendor/include/networkit/distance/NodeDistance.hpp +0 -54
- package/vendor/include/networkit/distance/PrunedLandmarkLabeling.hpp +0 -76
- package/vendor/include/networkit/distance/ReverseBFS.hpp +0 -46
- package/vendor/include/networkit/distance/SPSP.hpp +0 -143
- package/vendor/include/networkit/distance/SSSP.hpp +0 -216
- package/vendor/include/networkit/distance/STSP.hpp +0 -193
- package/vendor/include/networkit/distance/Volume.hpp +0 -66
- package/vendor/include/networkit/dynamics/DGSStreamParser.hpp +0 -40
- package/vendor/include/networkit/dynamics/DGSWriter.hpp +0 -30
- package/vendor/include/networkit/dynamics/GraphDifference.hpp +0 -110
- package/vendor/include/networkit/dynamics/GraphEvent.hpp +0 -55
- package/vendor/include/networkit/dynamics/GraphEventHandler.hpp +0 -39
- package/vendor/include/networkit/dynamics/GraphEventProxy.hpp +0 -55
- package/vendor/include/networkit/dynamics/GraphUpdater.hpp +0 -38
- package/vendor/include/networkit/edgescores/ChibaNishizekiQuadrangleEdgeScore.hpp +0 -26
- package/vendor/include/networkit/edgescores/ChibaNishizekiTriangleEdgeScore.hpp +0 -33
- package/vendor/include/networkit/edgescores/EdgeScore.hpp +0 -50
- package/vendor/include/networkit/edgescores/EdgeScoreAsWeight.hpp +0 -33
- package/vendor/include/networkit/edgescores/EdgeScoreBlender.hpp +0 -33
- package/vendor/include/networkit/edgescores/EdgeScoreLinearizer.hpp +0 -32
- package/vendor/include/networkit/edgescores/EdgeScoreNormalizer.hpp +0 -35
- package/vendor/include/networkit/edgescores/GeometricMeanScore.hpp +0 -29
- package/vendor/include/networkit/edgescores/PrefixJaccardScore.hpp +0 -23
- package/vendor/include/networkit/edgescores/TriangleEdgeScore.hpp +0 -39
- package/vendor/include/networkit/embedding/Node2Vec.hpp +0 -83
- package/vendor/include/networkit/flow/EdmondsKarp.hpp +0 -112
- package/vendor/include/networkit/generators/BarabasiAlbertGenerator.hpp +0 -87
- package/vendor/include/networkit/generators/ChungLuGenerator.hpp +0 -46
- package/vendor/include/networkit/generators/ChungLuGeneratorAlamEtAl.hpp +0 -63
- package/vendor/include/networkit/generators/ClusteredRandomGraphGenerator.hpp +0 -56
- package/vendor/include/networkit/generators/ConfigurationModel.hpp +0 -36
- package/vendor/include/networkit/generators/DorogovtsevMendesGenerator.hpp +0 -33
- package/vendor/include/networkit/generators/DynamicBarabasiAlbertGenerator.hpp +0 -33
- package/vendor/include/networkit/generators/DynamicDGSParser.hpp +0 -51
- package/vendor/include/networkit/generators/DynamicDorogovtsevMendesGenerator.hpp +0 -34
- package/vendor/include/networkit/generators/DynamicForestFireGenerator.hpp +0 -55
- package/vendor/include/networkit/generators/DynamicGraphGenerator.hpp +0 -40
- package/vendor/include/networkit/generators/DynamicGraphSource.hpp +0 -79
- package/vendor/include/networkit/generators/DynamicHyperbolicGenerator.hpp +0 -143
- package/vendor/include/networkit/generators/DynamicPathGenerator.hpp +0 -26
- package/vendor/include/networkit/generators/DynamicPubWebGenerator.hpp +0 -54
- package/vendor/include/networkit/generators/EdgeSwitchingMarkovChainGenerator.hpp +0 -65
- package/vendor/include/networkit/generators/ErdosRenyiEnumerator.hpp +0 -318
- package/vendor/include/networkit/generators/ErdosRenyiGenerator.hpp +0 -56
- package/vendor/include/networkit/generators/HavelHakimiGenerator.hpp +0 -48
- package/vendor/include/networkit/generators/HyperbolicGenerator.hpp +0 -236
- package/vendor/include/networkit/generators/LFRGenerator.hpp +0 -175
- package/vendor/include/networkit/generators/MocnikGenerator.hpp +0 -147
- package/vendor/include/networkit/generators/MocnikGeneratorBasic.hpp +0 -58
- package/vendor/include/networkit/generators/PowerlawDegreeSequence.hpp +0 -128
- package/vendor/include/networkit/generators/PubWebGenerator.hpp +0 -94
- package/vendor/include/networkit/generators/RegularRingLatticeGenerator.hpp +0 -37
- package/vendor/include/networkit/generators/RmatGenerator.hpp +0 -67
- package/vendor/include/networkit/generators/StaticDegreeSequenceGenerator.hpp +0 -42
- package/vendor/include/networkit/generators/StaticGraphGenerator.hpp +0 -30
- package/vendor/include/networkit/generators/StochasticBlockmodel.hpp +0 -41
- package/vendor/include/networkit/generators/WattsStrogatzGenerator.hpp +0 -43
- package/vendor/include/networkit/generators/quadtree/QuadNode.hpp +0 -857
- package/vendor/include/networkit/generators/quadtree/QuadNodeCartesianEuclid.hpp +0 -587
- package/vendor/include/networkit/generators/quadtree/QuadNodePolarEuclid.hpp +0 -726
- package/vendor/include/networkit/generators/quadtree/Quadtree.hpp +0 -232
- package/vendor/include/networkit/generators/quadtree/QuadtreeCartesianEuclid.hpp +0 -149
- package/vendor/include/networkit/generators/quadtree/QuadtreePolarEuclid.hpp +0 -143
- package/vendor/include/networkit/geometric/HyperbolicSpace.hpp +0 -248
- package/vendor/include/networkit/geometric/Point2DWithIndex.hpp +0 -145
- package/vendor/include/networkit/global/ClusteringCoefficient.hpp +0 -42
- package/vendor/include/networkit/global/GlobalClusteringCoefficient.hpp +0 -24
- package/vendor/include/networkit/graph/Attributes.hpp +0 -568
- package/vendor/include/networkit/graph/BFS.hpp +0 -111
- package/vendor/include/networkit/graph/DFS.hpp +0 -71
- package/vendor/include/networkit/graph/Dijkstra.hpp +0 -83
- package/vendor/include/networkit/graph/EdgeIterators.hpp +0 -171
- package/vendor/include/networkit/graph/Graph.hpp +0 -2083
- package/vendor/include/networkit/graph/GraphBuilder.hpp +0 -289
- package/vendor/include/networkit/graph/GraphR.hpp +0 -133
- package/vendor/include/networkit/graph/GraphTools.hpp +0 -589
- package/vendor/include/networkit/graph/GraphW.hpp +0 -1236
- package/vendor/include/networkit/graph/KruskalMSF.hpp +0 -50
- package/vendor/include/networkit/graph/NeighborIterators.hpp +0 -163
- package/vendor/include/networkit/graph/NodeIterators.hpp +0 -127
- package/vendor/include/networkit/graph/PrimMSF.hpp +0 -66
- package/vendor/include/networkit/graph/RandomMaximumSpanningForest.hpp +0 -133
- package/vendor/include/networkit/graph/SpanningForest.hpp +0 -41
- package/vendor/include/networkit/graph/TopologicalSort.hpp +0 -87
- package/vendor/include/networkit/graph/UnionMaximumSpanningForest.hpp +0 -126
- package/vendor/include/networkit/graph/test/GraphBuilderBenchmark.hpp +0 -68
- package/vendor/include/networkit/independentset/IndependentSetFinder.hpp +0 -44
- package/vendor/include/networkit/independentset/Luby.hpp +0 -27
- package/vendor/include/networkit/io/BinaryEdgeListPartitionReader.hpp +0 -45
- package/vendor/include/networkit/io/BinaryEdgeListPartitionWriter.hpp +0 -47
- package/vendor/include/networkit/io/BinaryPartitionReader.hpp +0 -41
- package/vendor/include/networkit/io/BinaryPartitionWriter.hpp +0 -44
- package/vendor/include/networkit/io/CoverReader.hpp +0 -27
- package/vendor/include/networkit/io/CoverWriter.hpp +0 -21
- package/vendor/include/networkit/io/DGSReader.hpp +0 -39
- package/vendor/include/networkit/io/DibapGraphReader.hpp +0 -43
- package/vendor/include/networkit/io/DotGraphWriter.hpp +0 -39
- package/vendor/include/networkit/io/DotPartitionWriter.hpp +0 -23
- package/vendor/include/networkit/io/DynamicGraphReader.hpp +0 -29
- package/vendor/include/networkit/io/EdgeListCoverReader.hpp +0 -35
- package/vendor/include/networkit/io/EdgeListPartitionReader.hpp +0 -43
- package/vendor/include/networkit/io/EdgeListReader.hpp +0 -61
- package/vendor/include/networkit/io/EdgeListWriter.hpp +0 -48
- package/vendor/include/networkit/io/GMLGraphReader.hpp +0 -33
- package/vendor/include/networkit/io/GMLGraphWriter.hpp +0 -33
- package/vendor/include/networkit/io/GraphIO.hpp +0 -52
- package/vendor/include/networkit/io/GraphReader.hpp +0 -40
- package/vendor/include/networkit/io/GraphToolBinaryReader.hpp +0 -71
- package/vendor/include/networkit/io/GraphToolBinaryWriter.hpp +0 -61
- package/vendor/include/networkit/io/GraphWriter.hpp +0 -27
- package/vendor/include/networkit/io/KONECTGraphReader.hpp +0 -44
- package/vendor/include/networkit/io/LineFileReader.hpp +0 -42
- package/vendor/include/networkit/io/METISGraphReader.hpp +0 -36
- package/vendor/include/networkit/io/METISGraphWriter.hpp +0 -29
- package/vendor/include/networkit/io/METISParser.hpp +0 -63
- package/vendor/include/networkit/io/MTXGraphReader.hpp +0 -31
- package/vendor/include/networkit/io/MTXParser.hpp +0 -87
- package/vendor/include/networkit/io/MatrixMarketReader.hpp +0 -33
- package/vendor/include/networkit/io/MatrixReader.hpp +0 -33
- package/vendor/include/networkit/io/MemoryMappedFile.hpp +0 -80
- package/vendor/include/networkit/io/NetworkitBinaryGraph.hpp +0 -144
- package/vendor/include/networkit/io/NetworkitBinaryReader.hpp +0 -50
- package/vendor/include/networkit/io/NetworkitBinaryWriter.hpp +0 -71
- package/vendor/include/networkit/io/PartitionReader.hpp +0 -34
- package/vendor/include/networkit/io/PartitionWriter.hpp +0 -31
- package/vendor/include/networkit/io/RBGraphReader.hpp +0 -37
- package/vendor/include/networkit/io/RBMatrixReader.hpp +0 -49
- package/vendor/include/networkit/io/RasterReader.hpp +0 -40
- package/vendor/include/networkit/io/SNAPEdgeListPartitionReader.hpp +0 -28
- package/vendor/include/networkit/io/SNAPGraphReader.hpp +0 -53
- package/vendor/include/networkit/io/SNAPGraphWriter.hpp +0 -53
- package/vendor/include/networkit/io/ThrillGraphBinaryReader.hpp +0 -44
- package/vendor/include/networkit/io/ThrillGraphBinaryWriter.hpp +0 -27
- package/vendor/include/networkit/layout/LayoutAlgorithm.hpp +0 -39
- package/vendor/include/networkit/linkprediction/AdamicAdarIndex.hpp +0 -37
- package/vendor/include/networkit/linkprediction/AdjustedRandIndex.hpp +0 -36
- package/vendor/include/networkit/linkprediction/AlgebraicDistanceIndex.hpp +0 -70
- package/vendor/include/networkit/linkprediction/CommonNeighborsIndex.hpp +0 -39
- package/vendor/include/networkit/linkprediction/EvaluationMetric.hpp +0 -135
- package/vendor/include/networkit/linkprediction/JaccardIndex.hpp +0 -44
- package/vendor/include/networkit/linkprediction/KatzIndex.hpp +0 -84
- package/vendor/include/networkit/linkprediction/LinkPredictor.hpp +0 -98
- package/vendor/include/networkit/linkprediction/LinkThresholder.hpp +0 -56
- package/vendor/include/networkit/linkprediction/MissingLinksFinder.hpp +0 -60
- package/vendor/include/networkit/linkprediction/NeighborhoodDistanceIndex.hpp +0 -42
- package/vendor/include/networkit/linkprediction/NeighborhoodUtility.hpp +0 -54
- package/vendor/include/networkit/linkprediction/NeighborsMeasureIndex.hpp +0 -48
- package/vendor/include/networkit/linkprediction/PrecisionRecallMetric.hpp +0 -40
- package/vendor/include/networkit/linkprediction/PredictionsSorter.hpp +0 -66
- package/vendor/include/networkit/linkprediction/PreferentialAttachmentIndex.hpp +0 -37
- package/vendor/include/networkit/linkprediction/ROCMetric.hpp +0 -39
- package/vendor/include/networkit/linkprediction/RandomLinkSampler.hpp +0 -47
- package/vendor/include/networkit/linkprediction/ResourceAllocationIndex.hpp +0 -38
- package/vendor/include/networkit/linkprediction/SameCommunityIndex.hpp +0 -50
- package/vendor/include/networkit/linkprediction/TotalNeighborsIndex.hpp +0 -39
- package/vendor/include/networkit/linkprediction/UDegreeIndex.hpp +0 -35
- package/vendor/include/networkit/linkprediction/VDegreeIndex.hpp +0 -35
- package/vendor/include/networkit/matching/BMatcher.hpp +0 -52
- package/vendor/include/networkit/matching/BMatching.hpp +0 -115
- package/vendor/include/networkit/matching/BSuitorMatcher.hpp +0 -170
- package/vendor/include/networkit/matching/DynamicBSuitorMatcher.hpp +0 -78
- package/vendor/include/networkit/matching/LocalMaxMatcher.hpp +0 -35
- package/vendor/include/networkit/matching/Matcher.hpp +0 -55
- package/vendor/include/networkit/matching/Matching.hpp +0 -111
- package/vendor/include/networkit/matching/PathGrowingMatcher.hpp +0 -46
- package/vendor/include/networkit/matching/SuitorMatcher.hpp +0 -62
- package/vendor/include/networkit/numerics/ConjugateGradient.hpp +0 -163
- package/vendor/include/networkit/numerics/GaussSeidelRelaxation.hpp +0 -99
- package/vendor/include/networkit/numerics/LAMG/LAMGSettings.hpp +0 -70
- package/vendor/include/networkit/numerics/LAMG/Lamg.hpp +0 -460
- package/vendor/include/networkit/numerics/LAMG/Level/EliminationStage.hpp +0 -47
- package/vendor/include/networkit/numerics/LAMG/Level/Level.hpp +0 -56
- package/vendor/include/networkit/numerics/LAMG/Level/LevelAggregation.hpp +0 -52
- package/vendor/include/networkit/numerics/LAMG/Level/LevelElimination.hpp +0 -133
- package/vendor/include/networkit/numerics/LAMG/Level/LevelFinest.hpp +0 -28
- package/vendor/include/networkit/numerics/LAMG/LevelHierarchy.hpp +0 -165
- package/vendor/include/networkit/numerics/LAMG/MultiLevelSetup.hpp +0 -1090
- package/vendor/include/networkit/numerics/LAMG/SolverLamg.hpp +0 -316
- package/vendor/include/networkit/numerics/LinearSolver.hpp +0 -151
- package/vendor/include/networkit/numerics/Preconditioner/DiagonalPreconditioner.hpp +0 -61
- package/vendor/include/networkit/numerics/Preconditioner/IdentityPreconditioner.hpp +0 -36
- package/vendor/include/networkit/numerics/Smoother.hpp +0 -37
- package/vendor/include/networkit/overlap/HashingOverlapper.hpp +0 -28
- package/vendor/include/networkit/overlap/Overlapper.hpp +0 -27
- package/vendor/include/networkit/planarity/LeftRightPlanarityCheck.hpp +0 -113
- package/vendor/include/networkit/randomization/Curveball.hpp +0 -49
- package/vendor/include/networkit/randomization/CurveballGlobalTradeGenerator.hpp +0 -39
- package/vendor/include/networkit/randomization/CurveballUniformTradeGenerator.hpp +0 -39
- package/vendor/include/networkit/randomization/DegreePreservingShuffle.hpp +0 -82
- package/vendor/include/networkit/randomization/EdgeSwitching.hpp +0 -157
- package/vendor/include/networkit/randomization/GlobalCurveball.hpp +0 -69
- package/vendor/include/networkit/randomization/GlobalTradeSequence.hpp +0 -303
- package/vendor/include/networkit/reachability/AllSimplePaths.hpp +0 -122
- package/vendor/include/networkit/reachability/ReachableNodes.hpp +0 -83
- package/vendor/include/networkit/scd/ApproximatePageRank.hpp +0 -51
- package/vendor/include/networkit/scd/CliqueDetect.hpp +0 -55
- package/vendor/include/networkit/scd/CombinedSCD.hpp +0 -51
- package/vendor/include/networkit/scd/GCE.hpp +0 -42
- package/vendor/include/networkit/scd/LFMLocal.hpp +0 -54
- package/vendor/include/networkit/scd/LocalT.hpp +0 -40
- package/vendor/include/networkit/scd/LocalTightnessExpansion.hpp +0 -46
- package/vendor/include/networkit/scd/PageRankNibble.hpp +0 -55
- package/vendor/include/networkit/scd/RandomBFS.hpp +0 -33
- package/vendor/include/networkit/scd/SCDGroundTruthComparison.hpp +0 -121
- package/vendor/include/networkit/scd/SelectiveCommunityDetector.hpp +0 -76
- package/vendor/include/networkit/scd/SetConductance.hpp +0 -47
- package/vendor/include/networkit/scd/TCE.hpp +0 -41
- package/vendor/include/networkit/scd/TwoPhaseL.hpp +0 -40
- package/vendor/include/networkit/scoring/EdgeScoring.hpp +0 -44
- package/vendor/include/networkit/scoring/ModularityScoring.hpp +0 -79
- package/vendor/include/networkit/simulation/EpidemicSimulationSEIR.hpp +0 -59
- package/vendor/include/networkit/sparsification/ChanceCorrectedTriangleScore.hpp +0 -28
- package/vendor/include/networkit/sparsification/ForestFireScore.hpp +0 -34
- package/vendor/include/networkit/sparsification/GlobalThresholdFilter.hpp +0 -40
- package/vendor/include/networkit/sparsification/LocalDegreeScore.hpp +0 -30
- package/vendor/include/networkit/sparsification/LocalFilterScore.hpp +0 -124
- package/vendor/include/networkit/sparsification/LocalSimilarityScore.hpp +0 -63
- package/vendor/include/networkit/sparsification/MultiscaleScore.hpp +0 -38
- package/vendor/include/networkit/sparsification/RandomEdgeScore.hpp +0 -33
- package/vendor/include/networkit/sparsification/RandomNodeEdgeScore.hpp +0 -29
- package/vendor/include/networkit/sparsification/SCANStructuralSimilarityScore.hpp +0 -23
- package/vendor/include/networkit/sparsification/SimmelianOverlapScore.hpp +0 -35
- package/vendor/include/networkit/sparsification/SimmelianScore.hpp +0 -92
- package/vendor/include/networkit/sparsification/Sparsifiers.hpp +0 -166
- package/vendor/include/networkit/structures/Cover.hpp +0 -248
- package/vendor/include/networkit/structures/LocalCommunity.hpp +0 -363
- package/vendor/include/networkit/structures/Partition.hpp +0 -335
- package/vendor/include/networkit/structures/UnionFind.hpp +0 -66
- package/vendor/include/networkit/viz/GraphLayoutAlgorithm.hpp +0 -157
- package/vendor/include/networkit/viz/MaxentStress.hpp +0 -346
- package/vendor/include/networkit/viz/Octree.hpp +0 -428
- package/vendor/include/networkit/viz/PivotMDS.hpp +0 -63
- package/vendor/include/networkit/viz/Point.hpp +0 -415
- package/vendor/include/networkit/viz/PostscriptWriter.hpp +0 -78
- package/vendor/include/tlx/algorithm/exclusive_scan.hpp +0 -56
- package/vendor/include/tlx/algorithm/is_sorted_cmp.hpp +0 -56
- package/vendor/include/tlx/algorithm/merge_advance.hpp +0 -177
- package/vendor/include/tlx/algorithm/merge_combine.hpp +0 -76
- package/vendor/include/tlx/algorithm/multisequence_partition.hpp +0 -346
- package/vendor/include/tlx/algorithm/multisequence_selection.hpp +0 -351
- package/vendor/include/tlx/algorithm/multiway_merge.hpp +0 -1385
- package/vendor/include/tlx/algorithm/multiway_merge_splitting.hpp +0 -257
- package/vendor/include/tlx/algorithm/parallel_multiway_merge.hpp +0 -408
- package/vendor/include/tlx/algorithm/random_bipartition_shuffle.hpp +0 -116
- package/vendor/include/tlx/algorithm.hpp +0 -36
- package/vendor/include/tlx/allocator_base.hpp +0 -100
- package/vendor/include/tlx/backtrace.hpp +0 -54
- package/vendor/include/tlx/cmdline_parser.hpp +0 -498
- package/vendor/include/tlx/container/btree.hpp +0 -3977
- package/vendor/include/tlx/container/btree_map.hpp +0 -634
- package/vendor/include/tlx/container/btree_multimap.hpp +0 -627
- package/vendor/include/tlx/container/btree_multiset.hpp +0 -612
- package/vendor/include/tlx/container/btree_set.hpp +0 -612
- package/vendor/include/tlx/container/d_ary_addressable_int_heap.hpp +0 -416
- package/vendor/include/tlx/container/d_ary_heap.hpp +0 -311
- package/vendor/include/tlx/container/loser_tree.hpp +0 -1009
- package/vendor/include/tlx/container/lru_cache.hpp +0 -319
- package/vendor/include/tlx/container/radix_heap.hpp +0 -735
- package/vendor/include/tlx/container/ring_buffer.hpp +0 -428
- package/vendor/include/tlx/container/simple_vector.hpp +0 -304
- package/vendor/include/tlx/container/splay_tree.hpp +0 -399
- package/vendor/include/tlx/container/string_view.hpp +0 -805
- package/vendor/include/tlx/container.hpp +0 -40
- package/vendor/include/tlx/counting_ptr.hpp +0 -522
- package/vendor/include/tlx/define/attribute_always_inline.hpp +0 -34
- package/vendor/include/tlx/define/attribute_fallthrough.hpp +0 -36
- package/vendor/include/tlx/define/attribute_format_printf.hpp +0 -34
- package/vendor/include/tlx/define/attribute_packed.hpp +0 -34
- package/vendor/include/tlx/define/attribute_warn_unused_result.hpp +0 -34
- package/vendor/include/tlx/define/constexpr.hpp +0 -31
- package/vendor/include/tlx/define/deprecated.hpp +0 -39
- package/vendor/include/tlx/define/endian.hpp +0 -49
- package/vendor/include/tlx/define/likely.hpp +0 -33
- package/vendor/include/tlx/define/visibility_hidden.hpp +0 -34
- package/vendor/include/tlx/define.hpp +0 -36
- package/vendor/include/tlx/delegate.hpp +0 -524
- package/vendor/include/tlx/die/core.hpp +0 -311
- package/vendor/include/tlx/die.hpp +0 -106
- package/vendor/include/tlx/digest/md5.hpp +0 -81
- package/vendor/include/tlx/digest/sha1.hpp +0 -81
- package/vendor/include/tlx/digest/sha256.hpp +0 -81
- package/vendor/include/tlx/digest/sha512.hpp +0 -81
- package/vendor/include/tlx/digest.hpp +0 -30
- package/vendor/include/tlx/logger/all.hpp +0 -33
- package/vendor/include/tlx/logger/array.hpp +0 -43
- package/vendor/include/tlx/logger/core.hpp +0 -287
- package/vendor/include/tlx/logger/deque.hpp +0 -42
- package/vendor/include/tlx/logger/map.hpp +0 -65
- package/vendor/include/tlx/logger/set.hpp +0 -60
- package/vendor/include/tlx/logger/tuple.hpp +0 -66
- package/vendor/include/tlx/logger/unordered_map.hpp +0 -68
- package/vendor/include/tlx/logger/unordered_set.hpp +0 -64
- package/vendor/include/tlx/logger/wrap_unprintable.hpp +0 -75
- package/vendor/include/tlx/logger.hpp +0 -44
- package/vendor/include/tlx/math/abs_diff.hpp +0 -35
- package/vendor/include/tlx/math/aggregate.hpp +0 -231
- package/vendor/include/tlx/math/aggregate_min_max.hpp +0 -116
- package/vendor/include/tlx/math/bswap.hpp +0 -148
- package/vendor/include/tlx/math/bswap_be.hpp +0 -79
- package/vendor/include/tlx/math/bswap_le.hpp +0 -79
- package/vendor/include/tlx/math/clz.hpp +0 -174
- package/vendor/include/tlx/math/ctz.hpp +0 -174
- package/vendor/include/tlx/math/div_ceil.hpp +0 -36
- package/vendor/include/tlx/math/ffs.hpp +0 -123
- package/vendor/include/tlx/math/integer_log2.hpp +0 -189
- package/vendor/include/tlx/math/is_power_of_two.hpp +0 -74
- package/vendor/include/tlx/math/polynomial_regression.hpp +0 -243
- package/vendor/include/tlx/math/popcount.hpp +0 -173
- package/vendor/include/tlx/math/power_to_the.hpp +0 -44
- package/vendor/include/tlx/math/rol.hpp +0 -112
- package/vendor/include/tlx/math/ror.hpp +0 -112
- package/vendor/include/tlx/math/round_to_power_of_two.hpp +0 -121
- package/vendor/include/tlx/math/round_up.hpp +0 -36
- package/vendor/include/tlx/math/sgn.hpp +0 -38
- package/vendor/include/tlx/math.hpp +0 -46
- package/vendor/include/tlx/meta/apply_tuple.hpp +0 -55
- package/vendor/include/tlx/meta/call_for_range.hpp +0 -78
- package/vendor/include/tlx/meta/call_foreach.hpp +0 -60
- package/vendor/include/tlx/meta/call_foreach_tuple.hpp +0 -60
- package/vendor/include/tlx/meta/call_foreach_tuple_with_index.hpp +0 -61
- package/vendor/include/tlx/meta/call_foreach_with_index.hpp +0 -64
- package/vendor/include/tlx/meta/enable_if.hpp +0 -37
- package/vendor/include/tlx/meta/fold_left.hpp +0 -63
- package/vendor/include/tlx/meta/fold_left_tuple.hpp +0 -60
- package/vendor/include/tlx/meta/fold_right.hpp +0 -63
- package/vendor/include/tlx/meta/fold_right_tuple.hpp +0 -60
- package/vendor/include/tlx/meta/function_chain.hpp +0 -197
- package/vendor/include/tlx/meta/function_stack.hpp +0 -189
- package/vendor/include/tlx/meta/has_member.hpp +0 -80
- package/vendor/include/tlx/meta/has_method.hpp +0 -117
- package/vendor/include/tlx/meta/index_sequence.hpp +0 -66
- package/vendor/include/tlx/meta/is_std_array.hpp +0 -40
- package/vendor/include/tlx/meta/is_std_pair.hpp +0 -39
- package/vendor/include/tlx/meta/is_std_tuple.hpp +0 -39
- package/vendor/include/tlx/meta/is_std_vector.hpp +0 -39
- package/vendor/include/tlx/meta/log2.hpp +0 -101
- package/vendor/include/tlx/meta/no_operation.hpp +0 -55
- package/vendor/include/tlx/meta/static_index.hpp +0 -42
- package/vendor/include/tlx/meta/vexpand.hpp +0 -34
- package/vendor/include/tlx/meta/vmap_for_range.hpp +0 -84
- package/vendor/include/tlx/meta/vmap_foreach.hpp +0 -63
- package/vendor/include/tlx/meta/vmap_foreach_tuple.hpp +0 -59
- package/vendor/include/tlx/meta/vmap_foreach_tuple_with_index.hpp +0 -62
- package/vendor/include/tlx/meta/vmap_foreach_with_index.hpp +0 -70
- package/vendor/include/tlx/meta.hpp +0 -55
- package/vendor/include/tlx/multi_timer.hpp +0 -148
- package/vendor/include/tlx/port/setenv.hpp +0 -31
- package/vendor/include/tlx/port.hpp +0 -27
- package/vendor/include/tlx/semaphore.hpp +0 -119
- package/vendor/include/tlx/simple_vector.hpp +0 -20
- package/vendor/include/tlx/siphash.hpp +0 -282
- package/vendor/include/tlx/sort/networks/best.hpp +0 -611
- package/vendor/include/tlx/sort/networks/bose_nelson.hpp +0 -412
- package/vendor/include/tlx/sort/networks/bose_nelson_parameter.hpp +0 -507
- package/vendor/include/tlx/sort/networks/cswap.hpp +0 -60
- package/vendor/include/tlx/sort/parallel_mergesort.hpp +0 -398
- package/vendor/include/tlx/sort/strings/insertion_sort.hpp +0 -232
- package/vendor/include/tlx/sort/strings/multikey_quicksort.hpp +0 -185
- package/vendor/include/tlx/sort/strings/parallel_sample_sort.hpp +0 -1647
- package/vendor/include/tlx/sort/strings/radix_sort.hpp +0 -934
- package/vendor/include/tlx/sort/strings/sample_sort_tools.hpp +0 -756
- package/vendor/include/tlx/sort/strings/string_ptr.hpp +0 -426
- package/vendor/include/tlx/sort/strings/string_set.hpp +0 -800
- package/vendor/include/tlx/sort/strings.hpp +0 -329
- package/vendor/include/tlx/sort/strings_parallel.hpp +0 -325
- package/vendor/include/tlx/sort.hpp +0 -29
- package/vendor/include/tlx/stack_allocator.hpp +0 -226
- package/vendor/include/tlx/string/appendline.hpp +0 -35
- package/vendor/include/tlx/string/base64.hpp +0 -87
- package/vendor/include/tlx/string/bitdump.hpp +0 -139
- package/vendor/include/tlx/string/compare_icase.hpp +0 -42
- package/vendor/include/tlx/string/contains.hpp +0 -36
- package/vendor/include/tlx/string/contains_word.hpp +0 -42
- package/vendor/include/tlx/string/ends_with.hpp +0 -79
- package/vendor/include/tlx/string/equal_icase.hpp +0 -42
- package/vendor/include/tlx/string/erase_all.hpp +0 -70
- package/vendor/include/tlx/string/escape_html.hpp +0 -34
- package/vendor/include/tlx/string/escape_uri.hpp +0 -34
- package/vendor/include/tlx/string/expand_environment_variables.hpp +0 -49
- package/vendor/include/tlx/string/extract_between.hpp +0 -40
- package/vendor/include/tlx/string/format_iec_units.hpp +0 -32
- package/vendor/include/tlx/string/format_si_iec_units.hpp +0 -19
- package/vendor/include/tlx/string/format_si_units.hpp +0 -32
- package/vendor/include/tlx/string/hash_djb2.hpp +0 -87
- package/vendor/include/tlx/string/hash_sdbm.hpp +0 -86
- package/vendor/include/tlx/string/hexdump.hpp +0 -154
- package/vendor/include/tlx/string/index_of.hpp +0 -56
- package/vendor/include/tlx/string/join.hpp +0 -65
- package/vendor/include/tlx/string/join_generic.hpp +0 -89
- package/vendor/include/tlx/string/join_quoted.hpp +0 -46
- package/vendor/include/tlx/string/less_icase.hpp +0 -64
- package/vendor/include/tlx/string/levenshtein.hpp +0 -193
- package/vendor/include/tlx/string/pad.hpp +0 -39
- package/vendor/include/tlx/string/parse_si_iec_units.hpp +0 -46
- package/vendor/include/tlx/string/parse_uri.hpp +0 -66
- package/vendor/include/tlx/string/parse_uri_form_data.hpp +0 -136
- package/vendor/include/tlx/string/replace.hpp +0 -141
- package/vendor/include/tlx/string/split.hpp +0 -170
- package/vendor/include/tlx/string/split_quoted.hpp +0 -49
- package/vendor/include/tlx/string/split_view.hpp +0 -218
- package/vendor/include/tlx/string/split_words.hpp +0 -53
- package/vendor/include/tlx/string/ssprintf.hpp +0 -45
- package/vendor/include/tlx/string/ssprintf_generic.hpp +0 -95
- package/vendor/include/tlx/string/starts_with.hpp +0 -44
- package/vendor/include/tlx/string/to_lower.hpp +0 -47
- package/vendor/include/tlx/string/to_upper.hpp +0 -47
- package/vendor/include/tlx/string/trim.hpp +0 -298
- package/vendor/include/tlx/string/union_words.hpp +0 -33
- package/vendor/include/tlx/string/word_wrap.hpp +0 -35
- package/vendor/include/tlx/string.hpp +0 -68
- package/vendor/include/tlx/thread_barrier_mutex.hpp +0 -109
- package/vendor/include/tlx/thread_barrier_spin.hpp +0 -127
- package/vendor/include/tlx/thread_pool.hpp +0 -151
- package/vendor/include/tlx/timestamp.hpp +0 -23
- package/vendor/include/tlx/unused.hpp +0 -28
- package/vendor/include/tlx/vector_free.hpp +0 -30
- package/vendor/include/tlx/version.hpp +0 -49
- package/vendor/include/ttmath/ttmath.h +0 -2881
- package/vendor/include/ttmath/ttmathbig.h +0 -6111
- package/vendor/include/ttmath/ttmathdec.h +0 -419
- package/vendor/include/ttmath/ttmathint.h +0 -1923
- package/vendor/include/ttmath/ttmathmisc.h +0 -250
- package/vendor/include/ttmath/ttmathobjects.h +0 -812
- package/vendor/include/ttmath/ttmathparser.h +0 -2791
- package/vendor/include/ttmath/ttmaththreads.h +0 -252
- package/vendor/include/ttmath/ttmathtypes.h +0 -707
- package/vendor/include/ttmath/ttmathuint.h +0 -4190
- package/vendor/include/ttmath/ttmathuint_noasm.h +0 -1038
- package/vendor/include/ttmath/ttmathuint_x86.h +0 -1620
- package/vendor/include/ttmath/ttmathuint_x86_64.h +0 -1177
- package/vendor/lib/cmake/tlx/tlx-config.cmake +0 -51
- package/vendor/lib/cmake/tlx/tlx-targets-release.cmake +0 -19
- package/vendor/lib/cmake/tlx/tlx-targets.cmake +0 -106
- package/vendor/lib/cmake/tlx/tlx-version.cmake +0 -11
- package/vendor/lib/libtlx.a +0 -0
- package/vendor/lib/pkgconfig/networkit.pc +0 -11
- package/vendor/lib/pkgconfig/tlx.pc +0 -11
|
@@ -1,257 +0,0 @@
|
|
|
1
|
-
/*******************************************************************************
|
|
2
|
-
* tlx/algorithm/multiway_merge_splitting.hpp
|
|
3
|
-
*
|
|
4
|
-
* Two splitting variants for balancing parallel multiway merge.
|
|
5
|
-
*
|
|
6
|
-
* Copied and modified from STXXL, see http://stxxl.org, which itself extracted
|
|
7
|
-
* it from MCSTL http://algo2.iti.uni-karlsruhe.de/singler/mcstl/. Both are
|
|
8
|
-
* distributed under the Boost Software License, Version 1.0.
|
|
9
|
-
*
|
|
10
|
-
* Part of tlx - http://panthema.net/tlx
|
|
11
|
-
*
|
|
12
|
-
* Copyright (C) 2007 Johannes Singler <singler@ira.uka.de>
|
|
13
|
-
* Copyright (C) 2014-2018 Timo Bingmann <tb@panthema.net>
|
|
14
|
-
*
|
|
15
|
-
* All rights reserved. Published under the Boost Software License, Version 1.0
|
|
16
|
-
******************************************************************************/
|
|
17
|
-
|
|
18
|
-
#ifndef TLX_ALGORITHM_MULTIWAY_MERGE_SPLITTING_HEADER
|
|
19
|
-
#define TLX_ALGORITHM_MULTIWAY_MERGE_SPLITTING_HEADER
|
|
20
|
-
|
|
21
|
-
#include <tlx/algorithm/multisequence_partition.hpp>
|
|
22
|
-
#include <tlx/container/simple_vector.hpp>
|
|
23
|
-
#include <algorithm>
|
|
24
|
-
#include <cstddef>
|
|
25
|
-
#include <iterator>
|
|
26
|
-
#include <vector>
|
|
27
|
-
|
|
28
|
-
namespace tlx {
|
|
29
|
-
|
|
30
|
-
//! \addtogroup tlx_algorithm
|
|
31
|
-
//! \{
|
|
32
|
-
|
|
33
|
-
/*!
|
|
34
|
-
* Different splitting strategies for sorting/merging: by sampling, exact
|
|
35
|
-
*/
|
|
36
|
-
enum MultiwayMergeSplittingAlgorithm
|
|
37
|
-
{
|
|
38
|
-
MWMSA_SAMPLING,
|
|
39
|
-
MWMSA_EXACT,
|
|
40
|
-
MWMSA_LAST,
|
|
41
|
-
MWMSA_DEFAULT = MWMSA_EXACT
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
namespace multiway_merge_detail {
|
|
45
|
-
|
|
46
|
-
/*!
|
|
47
|
-
* Split a sequence into parts of almost equal size.
|
|
48
|
-
*
|
|
49
|
-
* The resulting sequence s of length p+1 contains the splitting positions when
|
|
50
|
-
* splitting the range [0,n) into parts of almost equal size (plus minus 1).
|
|
51
|
-
* The first entry is 0, the last one n. There may result empty parts.
|
|
52
|
-
*
|
|
53
|
-
* \param n Number of elements
|
|
54
|
-
* \param p Number of parts
|
|
55
|
-
* \param s Splitters
|
|
56
|
-
* \returns End of splitter sequence, i. e. \c s+p+1
|
|
57
|
-
*/
|
|
58
|
-
template <typename DiffType, typename DiffTypeOutputIterator>
|
|
59
|
-
DiffTypeOutputIterator equally_split(DiffType n, size_t p,
|
|
60
|
-
DiffTypeOutputIterator s)
|
|
61
|
-
{
|
|
62
|
-
DiffType chunk_length = n / p, split = n % p, start = 0;
|
|
63
|
-
for (size_t i = 0; i < p; i++)
|
|
64
|
-
{
|
|
65
|
-
*s++ = start;
|
|
66
|
-
start += (static_cast<DiffType>(i) < split) ? (chunk_length + 1) :
|
|
67
|
-
chunk_length;
|
|
68
|
-
if (start >= n)
|
|
69
|
-
start = n - 1;
|
|
70
|
-
}
|
|
71
|
-
*s++ = n;
|
|
72
|
-
|
|
73
|
-
return s;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
} // namespace multiway_merge_detail
|
|
77
|
-
|
|
78
|
-
/*!
|
|
79
|
-
* Splitting method for parallel multi-way merge routine: use sampling and
|
|
80
|
-
* binary search for in-exact splitting.
|
|
81
|
-
*
|
|
82
|
-
* \param seqs_begin Begin iterator of iterator pair input sequence.
|
|
83
|
-
* \param seqs_end End iterator of iterator pair input sequence.
|
|
84
|
-
* \param size Maximum size to merge.
|
|
85
|
-
* \param total_size Total size of all sequences combined.
|
|
86
|
-
* \param comp Comparator.
|
|
87
|
-
* \param chunks Output subsequences for num_threads.
|
|
88
|
-
* \param num_threads Split the sequences into for num_threads.
|
|
89
|
-
* \param merge_oversampling oversampling factor
|
|
90
|
-
* \tparam Stable Stable merging incurs a performance penalty.
|
|
91
|
-
* \return End iterator of output sequence.
|
|
92
|
-
*/
|
|
93
|
-
template <bool Stable, typename RandomAccessIteratorIterator,
|
|
94
|
-
typename Comparator>
|
|
95
|
-
void multiway_merge_sampling_splitting(
|
|
96
|
-
const RandomAccessIteratorIterator& seqs_begin,
|
|
97
|
-
const RandomAccessIteratorIterator& seqs_end,
|
|
98
|
-
typename std::iterator_traits<typename std::iterator_traits<
|
|
99
|
-
RandomAccessIteratorIterator>::value_type::first_type>::difference_type
|
|
100
|
-
size,
|
|
101
|
-
typename std::iterator_traits<typename std::iterator_traits<
|
|
102
|
-
RandomAccessIteratorIterator>::value_type::first_type>::difference_type
|
|
103
|
-
total_size,
|
|
104
|
-
Comparator comp,
|
|
105
|
-
std::vector<typename std::iterator_traits<
|
|
106
|
-
RandomAccessIteratorIterator>::value_type>* chunks,
|
|
107
|
-
const size_t num_threads, const size_t merge_oversampling)
|
|
108
|
-
{
|
|
109
|
-
using RandomAccessIterator = typename std::iterator_traits<
|
|
110
|
-
RandomAccessIteratorIterator>::value_type::first_type;
|
|
111
|
-
using value_type =
|
|
112
|
-
typename std::iterator_traits<RandomAccessIterator>::value_type;
|
|
113
|
-
using DiffType =
|
|
114
|
-
typename std::iterator_traits<RandomAccessIterator>::difference_type;
|
|
115
|
-
|
|
116
|
-
const DiffType num_seqs = seqs_end - seqs_begin;
|
|
117
|
-
const DiffType num_samples =
|
|
118
|
-
num_threads * static_cast<DiffType>(merge_oversampling);
|
|
119
|
-
|
|
120
|
-
// pick samples
|
|
121
|
-
simple_vector<value_type> samples(num_seqs * num_samples);
|
|
122
|
-
|
|
123
|
-
for (DiffType s = 0; s < num_seqs; ++s)
|
|
124
|
-
{
|
|
125
|
-
for (DiffType i = 0; i < num_samples; ++i)
|
|
126
|
-
{
|
|
127
|
-
DiffType sample_index = static_cast<DiffType>(
|
|
128
|
-
double(seqs_begin[s].second - seqs_begin[s].first) *
|
|
129
|
-
(double(i + 1) / double(num_samples + 1)) *
|
|
130
|
-
(double(size) / double(total_size)));
|
|
131
|
-
samples[s * num_samples + i] = seqs_begin[s].first[sample_index];
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
if (Stable)
|
|
136
|
-
std::stable_sort(samples.begin(), samples.end(), comp);
|
|
137
|
-
else
|
|
138
|
-
std::sort(samples.begin(), samples.end(), comp);
|
|
139
|
-
|
|
140
|
-
// for each processor
|
|
141
|
-
for (size_t slab = 0; slab < num_threads; ++slab)
|
|
142
|
-
{
|
|
143
|
-
// for each sequence
|
|
144
|
-
for (DiffType seq = 0; seq < num_seqs; ++seq)
|
|
145
|
-
{
|
|
146
|
-
if (slab > 0)
|
|
147
|
-
{
|
|
148
|
-
chunks[slab][static_cast<size_t>(seq)].first = std::upper_bound(
|
|
149
|
-
seqs_begin[seq].first, seqs_begin[seq].second,
|
|
150
|
-
samples[num_samples * num_seqs * slab / num_threads], comp);
|
|
151
|
-
}
|
|
152
|
-
else // absolute beginning
|
|
153
|
-
chunks[slab][static_cast<size_t>(seq)].first =
|
|
154
|
-
seqs_begin[seq].first;
|
|
155
|
-
|
|
156
|
-
if ((slab + 1) < num_threads)
|
|
157
|
-
{
|
|
158
|
-
chunks[slab][static_cast<size_t>(seq)]
|
|
159
|
-
.second = std::upper_bound(
|
|
160
|
-
seqs_begin[seq].first, seqs_begin[seq].second,
|
|
161
|
-
samples[num_samples * num_seqs * (slab + 1) / num_threads],
|
|
162
|
-
comp);
|
|
163
|
-
}
|
|
164
|
-
else // absolute ending
|
|
165
|
-
chunks[slab][static_cast<size_t>(seq)].second =
|
|
166
|
-
seqs_begin[seq].second;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
/*!
|
|
172
|
-
* Splitting method for parallel multi-way merge routine: use multisequence
|
|
173
|
-
* selection for exact splitting.
|
|
174
|
-
*
|
|
175
|
-
* \param seqs_begin Begin iterator of iterator pair input sequence.
|
|
176
|
-
* \param seqs_end End iterator of iterator pair input sequence.
|
|
177
|
-
* \param size Maximum size to merge.
|
|
178
|
-
* \param total_size Total size of all sequences combined.
|
|
179
|
-
* \param comp Comparator.
|
|
180
|
-
* \param chunks Output subsequences for num_threads.
|
|
181
|
-
* \param num_threads Split the sequences into for num_threads.
|
|
182
|
-
* \tparam Stable Stable merging incurs a performance penalty.
|
|
183
|
-
* \return End iterator of output sequence.
|
|
184
|
-
*/
|
|
185
|
-
template <bool Stable, typename RandomAccessIteratorIterator,
|
|
186
|
-
typename Comparator>
|
|
187
|
-
void multiway_merge_exact_splitting(
|
|
188
|
-
const RandomAccessIteratorIterator& seqs_begin,
|
|
189
|
-
const RandomAccessIteratorIterator& seqs_end,
|
|
190
|
-
typename std::iterator_traits<typename std::iterator_traits<
|
|
191
|
-
RandomAccessIteratorIterator>::value_type::first_type>::difference_type
|
|
192
|
-
size,
|
|
193
|
-
typename std::iterator_traits<typename std::iterator_traits<
|
|
194
|
-
RandomAccessIteratorIterator>::value_type::first_type>::difference_type
|
|
195
|
-
total_size,
|
|
196
|
-
Comparator comp,
|
|
197
|
-
std::vector<typename std::iterator_traits<
|
|
198
|
-
RandomAccessIteratorIterator>::value_type>* chunks,
|
|
199
|
-
const size_t num_threads)
|
|
200
|
-
{
|
|
201
|
-
using RandomAccessIteratorPair =
|
|
202
|
-
typename std::iterator_traits<RandomAccessIteratorIterator>::value_type;
|
|
203
|
-
using RandomAccessIterator = typename RandomAccessIteratorPair ::first_type;
|
|
204
|
-
using DiffType =
|
|
205
|
-
typename std::iterator_traits<RandomAccessIterator>::difference_type;
|
|
206
|
-
|
|
207
|
-
const size_t num_seqs = static_cast<size_t>(seqs_end - seqs_begin);
|
|
208
|
-
const bool tight = (total_size == size);
|
|
209
|
-
|
|
210
|
-
simple_vector<std::vector<RandomAccessIterator> > offsets(num_threads);
|
|
211
|
-
|
|
212
|
-
std::vector<DiffType> ranks(static_cast<size_t>(num_threads + 1));
|
|
213
|
-
multiway_merge_detail::equally_split(size, num_threads, ranks.begin());
|
|
214
|
-
|
|
215
|
-
for (size_t s = 0; s < (num_threads - 1); ++s)
|
|
216
|
-
{
|
|
217
|
-
offsets[s].resize(num_seqs);
|
|
218
|
-
multisequence_partition(seqs_begin, seqs_end,
|
|
219
|
-
ranks[static_cast<size_t>(s + 1)],
|
|
220
|
-
offsets[s].begin(), comp);
|
|
221
|
-
|
|
222
|
-
if (!tight) // last one also needed and available
|
|
223
|
-
{
|
|
224
|
-
offsets[num_threads - 1].resize(num_seqs);
|
|
225
|
-
multisequence_partition(seqs_begin, seqs_end, size,
|
|
226
|
-
offsets[num_threads - 1].begin(), comp);
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
// for each processor
|
|
231
|
-
for (size_t slab = 0; slab < num_threads; ++slab)
|
|
232
|
-
{
|
|
233
|
-
// for each sequence
|
|
234
|
-
for (size_t s = 0; s < num_seqs; ++s)
|
|
235
|
-
{
|
|
236
|
-
if (slab == 0) // absolute beginning
|
|
237
|
-
chunks[slab][s].first =
|
|
238
|
-
seqs_begin[static_cast<DiffType>(s)].first;
|
|
239
|
-
else
|
|
240
|
-
chunks[slab][s].first = offsets[slab - 1][s];
|
|
241
|
-
|
|
242
|
-
if (!tight || slab < (num_threads - 1))
|
|
243
|
-
chunks[slab][s].second = offsets[slab][s];
|
|
244
|
-
else // slab == num_threads - 1
|
|
245
|
-
chunks[slab][s].second =
|
|
246
|
-
seqs_begin[static_cast<DiffType>(s)].second;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
//! \}
|
|
252
|
-
|
|
253
|
-
} // namespace tlx
|
|
254
|
-
|
|
255
|
-
#endif // !TLX_ALGORITHM_MULTIWAY_MERGE_SPLITTING_HEADER
|
|
256
|
-
|
|
257
|
-
/******************************************************************************/
|
|
@@ -1,408 +0,0 @@
|
|
|
1
|
-
/*******************************************************************************
|
|
2
|
-
* tlx/algorithm/parallel_multiway_merge.hpp
|
|
3
|
-
*
|
|
4
|
-
* Parallel multiway merge.
|
|
5
|
-
*
|
|
6
|
-
* Copied and modified from STXXL, see http://stxxl.org, which itself extracted
|
|
7
|
-
* it from MCSTL http://algo2.iti.uni-karlsruhe.de/singler/mcstl/. Both are
|
|
8
|
-
* distributed under the Boost Software License, Version 1.0.
|
|
9
|
-
*
|
|
10
|
-
* Part of tlx - http://panthema.net/tlx
|
|
11
|
-
*
|
|
12
|
-
* Copyright (C) 2007 Johannes Singler <singler@ira.uka.de>
|
|
13
|
-
* Copyright (C) 2014-2018 Timo Bingmann <tb@panthema.net>
|
|
14
|
-
*
|
|
15
|
-
* All rights reserved. Published under the Boost Software License, Version 1.0
|
|
16
|
-
******************************************************************************/
|
|
17
|
-
|
|
18
|
-
#ifndef TLX_ALGORITHM_PARALLEL_MULTIWAY_MERGE_HEADER
|
|
19
|
-
#define TLX_ALGORITHM_PARALLEL_MULTIWAY_MERGE_HEADER
|
|
20
|
-
|
|
21
|
-
#include <algorithm>
|
|
22
|
-
#include <cstddef>
|
|
23
|
-
#include <functional>
|
|
24
|
-
#include <iterator>
|
|
25
|
-
#include <thread>
|
|
26
|
-
#include <vector>
|
|
27
|
-
|
|
28
|
-
#if defined(_OPENMP)
|
|
29
|
-
#include <omp.h>
|
|
30
|
-
#endif
|
|
31
|
-
|
|
32
|
-
#include <tlx/algorithm/multiway_merge.hpp>
|
|
33
|
-
#include <tlx/algorithm/multiway_merge_splitting.hpp>
|
|
34
|
-
#include <tlx/container/simple_vector.hpp>
|
|
35
|
-
|
|
36
|
-
namespace tlx {
|
|
37
|
-
|
|
38
|
-
//! \addtogroup tlx_algorithm
|
|
39
|
-
//! \{
|
|
40
|
-
|
|
41
|
-
//! default oversampling factor for parallel_multiway_merge
|
|
42
|
-
extern size_t parallel_multiway_merge_oversampling;
|
|
43
|
-
|
|
44
|
-
/*!
|
|
45
|
-
* Parallel multi-way merge routine.
|
|
46
|
-
*
|
|
47
|
-
* Implemented either using OpenMP or with std::threads, depending on if
|
|
48
|
-
* compiled with -fopenmp or not. The OpenMP version uses the implicit thread
|
|
49
|
-
* pool, which is faster when using this method often.
|
|
50
|
-
*
|
|
51
|
-
* \param seqs_begin Begin iterator of iterator pair input sequence.
|
|
52
|
-
* \param seqs_end End iterator of iterator pair input sequence.
|
|
53
|
-
* \param target Begin iterator out output sequence.
|
|
54
|
-
* \param size Maximum size to merge.
|
|
55
|
-
* \param comp Comparator.
|
|
56
|
-
* \param mwma MultiwayMergeAlgorithm set to use.
|
|
57
|
-
* \param mwmsa MultiwayMergeSplittingAlgorithm to use.
|
|
58
|
-
* \param num_threads Number of threads to use (defaults to all cores)
|
|
59
|
-
* \tparam Stable Stable merging incurs a performance penalty.
|
|
60
|
-
* \return End iterator of output sequence.
|
|
61
|
-
*/
|
|
62
|
-
template <bool Stable, typename RandomAccessIteratorIterator,
|
|
63
|
-
typename RandomAccessIterator3,
|
|
64
|
-
typename Comparator = std::less<typename std::iterator_traits<
|
|
65
|
-
typename std::iterator_traits<RandomAccessIteratorIterator>::
|
|
66
|
-
value_type::first_type>::value_type> >
|
|
67
|
-
RandomAccessIterator3 parallel_multiway_merge_base(
|
|
68
|
-
RandomAccessIteratorIterator seqs_begin,
|
|
69
|
-
RandomAccessIteratorIterator seqs_end, RandomAccessIterator3 target,
|
|
70
|
-
const typename std::iterator_traits<typename std::iterator_traits<
|
|
71
|
-
RandomAccessIteratorIterator>::value_type::first_type>::difference_type
|
|
72
|
-
size,
|
|
73
|
-
Comparator comp = Comparator(),
|
|
74
|
-
MultiwayMergeAlgorithm mwma = MWMA_ALGORITHM_DEFAULT,
|
|
75
|
-
MultiwayMergeSplittingAlgorithm mwmsa = MWMSA_DEFAULT,
|
|
76
|
-
size_t num_threads = std::thread::hardware_concurrency())
|
|
77
|
-
{
|
|
78
|
-
using RandomAccessIteratorPair =
|
|
79
|
-
typename std::iterator_traits<RandomAccessIteratorIterator>::value_type;
|
|
80
|
-
using RandomAccessIterator = typename RandomAccessIteratorPair::first_type;
|
|
81
|
-
using DiffType =
|
|
82
|
-
typename std::iterator_traits<RandomAccessIterator>::difference_type;
|
|
83
|
-
|
|
84
|
-
// leave only non-empty sequences
|
|
85
|
-
std::vector<RandomAccessIteratorPair> seqs_ne;
|
|
86
|
-
seqs_ne.reserve(static_cast<size_t>(seqs_end - seqs_begin));
|
|
87
|
-
DiffType total_size = 0;
|
|
88
|
-
|
|
89
|
-
for (RandomAccessIteratorIterator ii = seqs_begin; ii != seqs_end; ++ii)
|
|
90
|
-
{
|
|
91
|
-
if (ii->first != ii->second)
|
|
92
|
-
{
|
|
93
|
-
total_size += ii->second - ii->first;
|
|
94
|
-
seqs_ne.push_back(*ii);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
size_t num_seqs = seqs_ne.size();
|
|
99
|
-
|
|
100
|
-
if (total_size == 0 || num_seqs == 0)
|
|
101
|
-
return target;
|
|
102
|
-
|
|
103
|
-
if (static_cast<DiffType>(num_threads) > total_size)
|
|
104
|
-
num_threads = total_size;
|
|
105
|
-
|
|
106
|
-
// thread t will have to merge chunks[iam][0..k - 1]
|
|
107
|
-
|
|
108
|
-
simple_vector<std::vector<RandomAccessIteratorPair> > chunks(num_threads);
|
|
109
|
-
|
|
110
|
-
for (size_t s = 0; s < num_threads; ++s)
|
|
111
|
-
chunks[s].resize(num_seqs);
|
|
112
|
-
|
|
113
|
-
if (mwmsa == MWMSA_SAMPLING)
|
|
114
|
-
{
|
|
115
|
-
multiway_merge_sampling_splitting<Stable>(
|
|
116
|
-
seqs_ne.begin(), seqs_ne.end(), static_cast<DiffType>(size),
|
|
117
|
-
total_size, comp, chunks.data(), num_threads,
|
|
118
|
-
parallel_multiway_merge_oversampling);
|
|
119
|
-
}
|
|
120
|
-
else // (mwmsa == MWMSA_EXACT)
|
|
121
|
-
{
|
|
122
|
-
multiway_merge_exact_splitting<Stable>(
|
|
123
|
-
seqs_ne.begin(), seqs_ne.end(), static_cast<DiffType>(size),
|
|
124
|
-
total_size, comp, chunks.data(), num_threads);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
#if defined(_OPENMP)
|
|
128
|
-
#pragma omp parallel num_threads(num_threads)
|
|
129
|
-
{
|
|
130
|
-
size_t iam = omp_get_thread_num();
|
|
131
|
-
|
|
132
|
-
DiffType target_position = 0, local_size = 0;
|
|
133
|
-
|
|
134
|
-
for (size_t s = 0; s < num_seqs; ++s)
|
|
135
|
-
{
|
|
136
|
-
target_position += chunks[iam][s].first - seqs_ne[s].first;
|
|
137
|
-
local_size += chunks[iam][s].second - chunks[iam][s].first;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
multiway_merge_base<Stable, false>(
|
|
141
|
-
chunks[iam].begin(), chunks[iam].end(), target + target_position,
|
|
142
|
-
std::min(local_size, static_cast<DiffType>(size) - target_position),
|
|
143
|
-
comp, mwma);
|
|
144
|
-
}
|
|
145
|
-
#else
|
|
146
|
-
std::vector<std::thread> threads(num_threads);
|
|
147
|
-
|
|
148
|
-
for (size_t iam = 0; iam < num_threads; ++iam)
|
|
149
|
-
{
|
|
150
|
-
threads[iam] = std::thread([&, iam]() {
|
|
151
|
-
DiffType target_position = 0, local_size = 0;
|
|
152
|
-
|
|
153
|
-
for (size_t s = 0; s < num_seqs; ++s)
|
|
154
|
-
{
|
|
155
|
-
target_position += chunks[iam][s].first - seqs_ne[s].first;
|
|
156
|
-
local_size += chunks[iam][s].second - chunks[iam][s].first;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
multiway_merge_base<Stable, false>(
|
|
160
|
-
chunks[iam].begin(), chunks[iam].end(),
|
|
161
|
-
target + target_position,
|
|
162
|
-
std::min(local_size,
|
|
163
|
-
static_cast<DiffType>(size) - target_position),
|
|
164
|
-
comp, mwma);
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
for (size_t i = 0; i < num_threads; ++i)
|
|
169
|
-
threads[i].join();
|
|
170
|
-
#endif
|
|
171
|
-
|
|
172
|
-
// update ends of sequences
|
|
173
|
-
size_t count_seqs = 0;
|
|
174
|
-
for (RandomAccessIteratorIterator ii = seqs_begin; ii != seqs_end; ++ii)
|
|
175
|
-
{
|
|
176
|
-
if (ii->first != ii->second)
|
|
177
|
-
ii->first = chunks[num_threads - 1][count_seqs++].second;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
return target + size;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
/******************************************************************************/
|
|
184
|
-
// parallel_multiway_merge() Frontends
|
|
185
|
-
|
|
186
|
-
//! setting to force all parallel_multiway_merge() calls to run sequentially
|
|
187
|
-
extern bool parallel_multiway_merge_force_sequential;
|
|
188
|
-
|
|
189
|
-
//! setting to force parallel_multiway_merge() calls to run with parallel code
|
|
190
|
-
extern bool parallel_multiway_merge_force_parallel;
|
|
191
|
-
|
|
192
|
-
//! minimal number of sequences for switching to parallel merging
|
|
193
|
-
extern size_t parallel_multiway_merge_minimal_k;
|
|
194
|
-
|
|
195
|
-
//! minimal number of items for switching to parallel merging
|
|
196
|
-
extern size_t parallel_multiway_merge_minimal_n;
|
|
197
|
-
|
|
198
|
-
/*!
|
|
199
|
-
* Parallel multi-way merge routine.
|
|
200
|
-
*
|
|
201
|
-
* Implemented either using OpenMP or with std::threads, depending on if
|
|
202
|
-
* compiled with -fopenmp or not. The OpenMP version uses the implicit thread
|
|
203
|
-
* pool, which is faster when using this method often.
|
|
204
|
-
*
|
|
205
|
-
* \param seqs_begin Begin iterator of iterator pair input sequence.
|
|
206
|
-
* \param seqs_end End iterator of iterator pair input sequence.
|
|
207
|
-
* \param target Begin iterator out output sequence.
|
|
208
|
-
* \param size Maximum size to merge.
|
|
209
|
-
* \param comp Comparator.
|
|
210
|
-
* \param mwma MultiwayMergeAlgorithm set to use.
|
|
211
|
-
* \param mwmsa MultiwayMergeSplittingAlgorithm to use.
|
|
212
|
-
* \param num_threads Number of threads to use (defaults to all cores)
|
|
213
|
-
* \tparam Stable Stable merging incurs a performance penalty.
|
|
214
|
-
* \return End iterator of output sequence.
|
|
215
|
-
*/
|
|
216
|
-
template <typename RandomAccessIteratorIterator, typename RandomAccessIterator3,
|
|
217
|
-
typename Comparator = std::less<typename std::iterator_traits<
|
|
218
|
-
typename std::iterator_traits<RandomAccessIteratorIterator>::
|
|
219
|
-
value_type::first_type>::value_type> >
|
|
220
|
-
RandomAccessIterator3 parallel_multiway_merge(
|
|
221
|
-
RandomAccessIteratorIterator seqs_begin,
|
|
222
|
-
RandomAccessIteratorIterator seqs_end, RandomAccessIterator3 target,
|
|
223
|
-
const typename std::iterator_traits<typename std::iterator_traits<
|
|
224
|
-
RandomAccessIteratorIterator>::value_type::first_type>::difference_type
|
|
225
|
-
size,
|
|
226
|
-
Comparator comp = Comparator(),
|
|
227
|
-
MultiwayMergeAlgorithm mwma = MWMA_ALGORITHM_DEFAULT,
|
|
228
|
-
MultiwayMergeSplittingAlgorithm mwmsa = MWMSA_DEFAULT,
|
|
229
|
-
size_t num_threads = std::thread::hardware_concurrency())
|
|
230
|
-
{
|
|
231
|
-
if (seqs_begin == seqs_end)
|
|
232
|
-
return target;
|
|
233
|
-
|
|
234
|
-
if (!parallel_multiway_merge_force_sequential &&
|
|
235
|
-
(parallel_multiway_merge_force_parallel ||
|
|
236
|
-
(num_threads > 1 &&
|
|
237
|
-
(static_cast<size_t>(seqs_end - seqs_begin) >=
|
|
238
|
-
parallel_multiway_merge_minimal_k) &&
|
|
239
|
-
static_cast<size_t>(size) >= parallel_multiway_merge_minimal_n)))
|
|
240
|
-
{
|
|
241
|
-
return parallel_multiway_merge_base</* Stable */ false>(
|
|
242
|
-
seqs_begin, seqs_end, target, size, comp, mwma, mwmsa, num_threads);
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
return multiway_merge_base</* Stable */ false, /* Sentinels */ false>(
|
|
246
|
-
seqs_begin, seqs_end, target, size, comp, mwma);
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
/*!
|
|
250
|
-
* Stable parallel multi-way merge routine.
|
|
251
|
-
*
|
|
252
|
-
* Implemented either using OpenMP or with std::threads, depending on if
|
|
253
|
-
* compiled with -fopenmp or not. The OpenMP version uses the implicit thread
|
|
254
|
-
* pool, which is faster when using this method often.
|
|
255
|
-
*
|
|
256
|
-
* \param seqs_begin Begin iterator of iterator pair input sequence.
|
|
257
|
-
* \param seqs_end End iterator of iterator pair input sequence.
|
|
258
|
-
* \param target Begin iterator out output sequence.
|
|
259
|
-
* \param size Maximum size to merge.
|
|
260
|
-
* \param comp Comparator.
|
|
261
|
-
* \param mwma MultiwayMergeAlgorithm set to use.
|
|
262
|
-
* \param mwmsa MultiwayMergeSplittingAlgorithm to use.
|
|
263
|
-
* \param num_threads Number of threads to use (defaults to all cores)
|
|
264
|
-
* \tparam Stable Stable merging incurs a performance penalty.
|
|
265
|
-
* \return End iterator of output sequence.
|
|
266
|
-
*/
|
|
267
|
-
template <typename RandomAccessIteratorIterator, typename RandomAccessIterator3,
|
|
268
|
-
typename Comparator = std::less<typename std::iterator_traits<
|
|
269
|
-
typename std::iterator_traits<RandomAccessIteratorIterator>::
|
|
270
|
-
value_type::first_type>::value_type> >
|
|
271
|
-
RandomAccessIterator3 stable_parallel_multiway_merge(
|
|
272
|
-
RandomAccessIteratorIterator seqs_begin,
|
|
273
|
-
RandomAccessIteratorIterator seqs_end, RandomAccessIterator3 target,
|
|
274
|
-
const typename std::iterator_traits<typename std::iterator_traits<
|
|
275
|
-
RandomAccessIteratorIterator>::value_type::first_type>::difference_type
|
|
276
|
-
size,
|
|
277
|
-
Comparator comp = Comparator(),
|
|
278
|
-
MultiwayMergeAlgorithm mwma = MWMA_ALGORITHM_DEFAULT,
|
|
279
|
-
MultiwayMergeSplittingAlgorithm mwmsa = MWMSA_DEFAULT,
|
|
280
|
-
size_t num_threads = std::thread::hardware_concurrency())
|
|
281
|
-
{
|
|
282
|
-
if (seqs_begin == seqs_end)
|
|
283
|
-
return target;
|
|
284
|
-
|
|
285
|
-
if (!parallel_multiway_merge_force_sequential &&
|
|
286
|
-
(parallel_multiway_merge_force_parallel ||
|
|
287
|
-
(num_threads > 1 &&
|
|
288
|
-
(static_cast<size_t>(seqs_end - seqs_begin) >=
|
|
289
|
-
parallel_multiway_merge_minimal_k) &&
|
|
290
|
-
static_cast<size_t>(size) >= parallel_multiway_merge_minimal_n)))
|
|
291
|
-
{
|
|
292
|
-
return parallel_multiway_merge_base</* Stable */ true>(
|
|
293
|
-
seqs_begin, seqs_end, target, size, comp, mwma, mwmsa, num_threads);
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
return multiway_merge_base</* Stable */ true, /* Sentinels */ false>(
|
|
297
|
-
seqs_begin, seqs_end, target, size, comp, mwma);
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
/*!
|
|
301
|
-
* Parallel multi-way merge routine with sentinels.
|
|
302
|
-
*
|
|
303
|
-
* Implemented either using OpenMP or with std::threads, depending on if
|
|
304
|
-
* compiled with -fopenmp or not. The OpenMP version uses the implicit thread
|
|
305
|
-
* pool, which is faster when using this method often.
|
|
306
|
-
*
|
|
307
|
-
* \param seqs_begin Begin iterator of iterator pair input sequence.
|
|
308
|
-
* \param seqs_end End iterator of iterator pair input sequence.
|
|
309
|
-
* \param target Begin iterator out output sequence.
|
|
310
|
-
* \param size Maximum size to merge.
|
|
311
|
-
* \param comp Comparator.
|
|
312
|
-
* \param mwma MultiwayMergeAlgorithm set to use.
|
|
313
|
-
* \param mwmsa MultiwayMergeSplittingAlgorithm to use.
|
|
314
|
-
* \param num_threads Number of threads to use (defaults to all cores)
|
|
315
|
-
* \tparam Stable Stable merging incurs a performance penalty.
|
|
316
|
-
* \return End iterator of output sequence.
|
|
317
|
-
*/
|
|
318
|
-
template <typename RandomAccessIteratorIterator, typename RandomAccessIterator3,
|
|
319
|
-
typename Comparator = std::less<typename std::iterator_traits<
|
|
320
|
-
typename std::iterator_traits<RandomAccessIteratorIterator>::
|
|
321
|
-
value_type::first_type>::value_type> >
|
|
322
|
-
RandomAccessIterator3 parallel_multiway_merge_sentinels(
|
|
323
|
-
RandomAccessIteratorIterator seqs_begin,
|
|
324
|
-
RandomAccessIteratorIterator seqs_end, RandomAccessIterator3 target,
|
|
325
|
-
const typename std::iterator_traits<typename std::iterator_traits<
|
|
326
|
-
RandomAccessIteratorIterator>::value_type::first_type>::difference_type
|
|
327
|
-
size,
|
|
328
|
-
Comparator comp = Comparator(),
|
|
329
|
-
MultiwayMergeAlgorithm mwma = MWMA_ALGORITHM_DEFAULT,
|
|
330
|
-
MultiwayMergeSplittingAlgorithm mwmsa = MWMSA_DEFAULT,
|
|
331
|
-
size_t num_threads = std::thread::hardware_concurrency())
|
|
332
|
-
{
|
|
333
|
-
if (seqs_begin == seqs_end)
|
|
334
|
-
return target;
|
|
335
|
-
|
|
336
|
-
if (!parallel_multiway_merge_force_sequential &&
|
|
337
|
-
(parallel_multiway_merge_force_parallel ||
|
|
338
|
-
(num_threads > 1 &&
|
|
339
|
-
(static_cast<size_t>(seqs_end - seqs_begin) >=
|
|
340
|
-
parallel_multiway_merge_minimal_k) &&
|
|
341
|
-
static_cast<size_t>(size) >= parallel_multiway_merge_minimal_n)))
|
|
342
|
-
{
|
|
343
|
-
return parallel_multiway_merge_base</* Stable */ false>(
|
|
344
|
-
seqs_begin, seqs_end, target, size, comp, mwma, mwmsa, num_threads);
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
return multiway_merge_base</* Stable */ false, /* Sentinels */ true>(
|
|
348
|
-
seqs_begin, seqs_end, target, size, comp, mwma);
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
/*!
|
|
352
|
-
* Stable parallel multi-way merge routine with sentinels.
|
|
353
|
-
*
|
|
354
|
-
* Implemented either using OpenMP or with std::threads, depending on if
|
|
355
|
-
* compiled with -fopenmp or not. The OpenMP version uses the implicit thread
|
|
356
|
-
* pool, which is faster when using this method often.
|
|
357
|
-
*
|
|
358
|
-
* \param seqs_begin Begin iterator of iterator pair input sequence.
|
|
359
|
-
* \param seqs_end End iterator of iterator pair input sequence.
|
|
360
|
-
* \param target Begin iterator out output sequence.
|
|
361
|
-
* \param size Maximum size to merge.
|
|
362
|
-
* \param comp Comparator.
|
|
363
|
-
* \param mwma MultiwayMergeAlgorithm set to use.
|
|
364
|
-
* \param mwmsa MultiwayMergeSplittingAlgorithm to use.
|
|
365
|
-
* \param num_threads Number of threads to use (defaults to all cores)
|
|
366
|
-
* \tparam Stable Stable merging incurs a performance penalty.
|
|
367
|
-
* \return End iterator of output sequence.
|
|
368
|
-
*/
|
|
369
|
-
template <typename RandomAccessIteratorIterator, typename RandomAccessIterator3,
|
|
370
|
-
typename Comparator = std::less<typename std::iterator_traits<
|
|
371
|
-
typename std::iterator_traits<RandomAccessIteratorIterator>::
|
|
372
|
-
value_type::first_type>::value_type> >
|
|
373
|
-
RandomAccessIterator3 stable_parallel_multiway_merge_sentinels(
|
|
374
|
-
RandomAccessIteratorIterator seqs_begin,
|
|
375
|
-
RandomAccessIteratorIterator seqs_end, RandomAccessIterator3 target,
|
|
376
|
-
const typename std::iterator_traits<typename std::iterator_traits<
|
|
377
|
-
RandomAccessIteratorIterator>::value_type::first_type>::difference_type
|
|
378
|
-
size,
|
|
379
|
-
Comparator comp = Comparator(),
|
|
380
|
-
MultiwayMergeAlgorithm mwma = MWMA_ALGORITHM_DEFAULT,
|
|
381
|
-
MultiwayMergeSplittingAlgorithm mwmsa = MWMSA_DEFAULT,
|
|
382
|
-
size_t num_threads = std::thread::hardware_concurrency())
|
|
383
|
-
{
|
|
384
|
-
if (seqs_begin == seqs_end)
|
|
385
|
-
return target;
|
|
386
|
-
|
|
387
|
-
if (!parallel_multiway_merge_force_sequential &&
|
|
388
|
-
(parallel_multiway_merge_force_parallel ||
|
|
389
|
-
(num_threads > 1 &&
|
|
390
|
-
(static_cast<size_t>(seqs_end - seqs_begin) >=
|
|
391
|
-
parallel_multiway_merge_minimal_k) &&
|
|
392
|
-
static_cast<size_t>(size) >= parallel_multiway_merge_minimal_n)))
|
|
393
|
-
{
|
|
394
|
-
return parallel_multiway_merge_base</* Stable */ true>(
|
|
395
|
-
seqs_begin, seqs_end, target, size, comp, mwma, mwmsa, num_threads);
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
return multiway_merge_base</* Stable */ true, /* Sentinels */ true>(
|
|
399
|
-
seqs_begin, seqs_end, target, size, comp, mwma);
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
//! \}
|
|
403
|
-
|
|
404
|
-
} // namespace tlx
|
|
405
|
-
|
|
406
|
-
#endif // !TLX_ALGORITHM_PARALLEL_MULTIWAY_MERGE_HEADER
|
|
407
|
-
|
|
408
|
-
/******************************************************************************/
|