@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,177 @@
|
|
|
1
|
+
/*******************************************************************************
|
|
2
|
+
* tlx/algorithm/merge_advance.hpp
|
|
3
|
+
*
|
|
4
|
+
* Variants of binary merge with output size limit.
|
|
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_MERGE_ADVANCE_HEADER
|
|
19
|
+
#define TLX_ALGORITHM_MERGE_ADVANCE_HEADER
|
|
20
|
+
|
|
21
|
+
#include <algorithm>
|
|
22
|
+
#include <iterator>
|
|
23
|
+
|
|
24
|
+
namespace tlx {
|
|
25
|
+
|
|
26
|
+
//! \addtogroup tlx_algorithm
|
|
27
|
+
//! \{
|
|
28
|
+
|
|
29
|
+
/*!
|
|
30
|
+
* Merge routine being able to merge only the \c max_size smallest elements.
|
|
31
|
+
*
|
|
32
|
+
* The \c begin iterators are advanced accordingly, they might not reach \c end,
|
|
33
|
+
* in contrast to the usual variant.
|
|
34
|
+
*
|
|
35
|
+
* \param begin1 Begin iterator of first sequence.
|
|
36
|
+
* \param end1 End iterator of first sequence.
|
|
37
|
+
* \param begin2 Begin iterator of second sequence.
|
|
38
|
+
* \param end2 End iterator of second sequence.
|
|
39
|
+
* \param target Target begin iterator.
|
|
40
|
+
* \param max_size Maximum number of elements to merge.
|
|
41
|
+
* \param comp Comparator.
|
|
42
|
+
* \return Output end iterator.
|
|
43
|
+
*/
|
|
44
|
+
template <typename RandomAccessIterator1, typename RandomAccessIterator2,
|
|
45
|
+
typename OutputIterator, typename DiffType, typename Comparator>
|
|
46
|
+
OutputIterator merge_advance_usual(RandomAccessIterator1& begin1,
|
|
47
|
+
RandomAccessIterator1 end1,
|
|
48
|
+
RandomAccessIterator2& begin2,
|
|
49
|
+
RandomAccessIterator2 end2,
|
|
50
|
+
OutputIterator target, DiffType max_size,
|
|
51
|
+
Comparator comp)
|
|
52
|
+
{
|
|
53
|
+
while (begin1 != end1 && begin2 != end2 && max_size > 0)
|
|
54
|
+
{
|
|
55
|
+
// array1[i1] < array0[i0]
|
|
56
|
+
if (comp(*begin2, *begin1))
|
|
57
|
+
*target++ = *begin2++;
|
|
58
|
+
else
|
|
59
|
+
*target++ = *begin1++;
|
|
60
|
+
--max_size;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (begin1 != end1)
|
|
64
|
+
{
|
|
65
|
+
target = std::copy(begin1, begin1 + max_size, target);
|
|
66
|
+
begin1 += max_size;
|
|
67
|
+
}
|
|
68
|
+
else
|
|
69
|
+
{
|
|
70
|
+
target = std::copy(begin2, begin2 + max_size, target);
|
|
71
|
+
begin2 += max_size;
|
|
72
|
+
}
|
|
73
|
+
return target;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/*!
|
|
77
|
+
* Merge routine being able to merge only the \c max_size smallest elements.
|
|
78
|
+
*
|
|
79
|
+
* The \c begin iterators are advanced accordingly, they might not reach \c end,
|
|
80
|
+
* in contrast to the usual variant. Specially designed code should allow the
|
|
81
|
+
* compiler to generate conditional moves instead of branches.
|
|
82
|
+
*
|
|
83
|
+
* \param begin1 Begin iterator of first sequence.
|
|
84
|
+
* \param end1 End iterator of first sequence.
|
|
85
|
+
* \param begin2 Begin iterator of second sequence.
|
|
86
|
+
* \param end2 End iterator of second sequence.
|
|
87
|
+
* \param target Target begin iterator.
|
|
88
|
+
* \param max_size Maximum number of elements to merge.
|
|
89
|
+
* \param comp Comparator.
|
|
90
|
+
* \return Output end iterator.
|
|
91
|
+
*/
|
|
92
|
+
template <typename RandomAccessIterator1, typename RandomAccessIterator2,
|
|
93
|
+
typename OutputIterator, typename DiffType, typename Comparator>
|
|
94
|
+
OutputIterator merge_advance_movc(RandomAccessIterator1& begin1,
|
|
95
|
+
RandomAccessIterator1 end1,
|
|
96
|
+
RandomAccessIterator2& begin2,
|
|
97
|
+
RandomAccessIterator2 end2,
|
|
98
|
+
OutputIterator target, DiffType max_size,
|
|
99
|
+
Comparator comp)
|
|
100
|
+
{
|
|
101
|
+
using ValueType1 =
|
|
102
|
+
typename std::iterator_traits<RandomAccessIterator1>::value_type;
|
|
103
|
+
using ValueType2 =
|
|
104
|
+
typename std::iterator_traits<RandomAccessIterator2>::value_type;
|
|
105
|
+
|
|
106
|
+
while (begin1 != end1 && begin2 != end2 && max_size > 0)
|
|
107
|
+
{
|
|
108
|
+
RandomAccessIterator1 next1 = begin1 + 1;
|
|
109
|
+
RandomAccessIterator2 next2 = begin2 + 1;
|
|
110
|
+
ValueType1 element1 = *begin1;
|
|
111
|
+
ValueType2 element2 = *begin2;
|
|
112
|
+
|
|
113
|
+
if (comp(element2, element1))
|
|
114
|
+
{
|
|
115
|
+
element1 = element2;
|
|
116
|
+
begin2 = next2;
|
|
117
|
+
}
|
|
118
|
+
else
|
|
119
|
+
{
|
|
120
|
+
begin1 = next1;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
*target = element1;
|
|
124
|
+
|
|
125
|
+
++target;
|
|
126
|
+
--max_size;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
if (begin1 != end1)
|
|
130
|
+
{
|
|
131
|
+
target = std::copy(begin1, begin1 + max_size, target);
|
|
132
|
+
begin1 += max_size;
|
|
133
|
+
}
|
|
134
|
+
else
|
|
135
|
+
{
|
|
136
|
+
target = std::copy(begin2, begin2 + max_size, target);
|
|
137
|
+
begin2 += max_size;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
return target;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/*!
|
|
144
|
+
* Merge routine being able to merge only the \c max_size smallest elements.
|
|
145
|
+
*
|
|
146
|
+
* The \c begin iterators are advanced accordingly, they might not reach \c end,
|
|
147
|
+
* in contrast to the usual variant. Static switch on whether to use the
|
|
148
|
+
* conditional-move variant.
|
|
149
|
+
*
|
|
150
|
+
* \param begin1 Begin iterator of first sequence.
|
|
151
|
+
* \param end1 End iterator of first sequence.
|
|
152
|
+
* \param begin2 Begin iterator of second sequence.
|
|
153
|
+
* \param end2 End iterator of second sequence.
|
|
154
|
+
* \param target Target begin iterator.
|
|
155
|
+
* \param max_size Maximum number of elements to merge.
|
|
156
|
+
* \param comp Comparator.
|
|
157
|
+
* \return Output end iterator.
|
|
158
|
+
*/
|
|
159
|
+
template <typename RandomAccessIterator1, typename RandomAccessIterator2,
|
|
160
|
+
typename OutputIterator, typename DiffType, typename Comparator>
|
|
161
|
+
OutputIterator merge_advance(RandomAccessIterator1& begin1,
|
|
162
|
+
RandomAccessIterator1 end1,
|
|
163
|
+
RandomAccessIterator2& begin2,
|
|
164
|
+
RandomAccessIterator2 end2, OutputIterator target,
|
|
165
|
+
DiffType max_size, Comparator comp)
|
|
166
|
+
{
|
|
167
|
+
return merge_advance_movc(begin1, end1, begin2, end2, target, max_size,
|
|
168
|
+
comp);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
//! \}
|
|
172
|
+
|
|
173
|
+
} // namespace tlx
|
|
174
|
+
|
|
175
|
+
#endif // !TLX_ALGORITHM_MERGE_ADVANCE_HEADER
|
|
176
|
+
|
|
177
|
+
/******************************************************************************/
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/*******************************************************************************
|
|
2
|
+
* tlx/algorithm/merge_combine.hpp
|
|
3
|
+
*
|
|
4
|
+
* Part of tlx - http://panthema.net/tlx
|
|
5
|
+
*
|
|
6
|
+
* Copyright (C) 2018 Timo Bingmann <tb@panthema.net>
|
|
7
|
+
*
|
|
8
|
+
* All rights reserved. Published under the Boost Software License, Version 1.0
|
|
9
|
+
******************************************************************************/
|
|
10
|
+
|
|
11
|
+
#ifndef TLX_ALGORITHM_MERGE_COMBINE_HEADER
|
|
12
|
+
#define TLX_ALGORITHM_MERGE_COMBINE_HEADER
|
|
13
|
+
|
|
14
|
+
#include <algorithm>
|
|
15
|
+
#include <functional>
|
|
16
|
+
#include <iterator>
|
|
17
|
+
|
|
18
|
+
namespace tlx {
|
|
19
|
+
|
|
20
|
+
//! \addtogroup tlx_algorithm
|
|
21
|
+
//! \{
|
|
22
|
+
|
|
23
|
+
/*!
|
|
24
|
+
* Merge two sorted ranges and add all items comparing equal. Both ranges must
|
|
25
|
+
* be sorted using the three-way Comparator (with memcmp() semantics). Item
|
|
26
|
+
* pairs comparing equal (cmp returns 0) are combined together using a combine
|
|
27
|
+
* operator.
|
|
28
|
+
*
|
|
29
|
+
* \warning This method does not check if the ranges are sorted. Also make sure
|
|
30
|
+
* that the comparator does not work with unsigned types.
|
|
31
|
+
*/
|
|
32
|
+
template <typename InputIterator1, typename InputIterator2,
|
|
33
|
+
typename OutputIterator, typename Comparator,
|
|
34
|
+
typename Combine = std::plus<
|
|
35
|
+
typename std::iterator_traits<InputIterator1>::value_type> >
|
|
36
|
+
OutputIterator merge_combine(InputIterator1 first1, InputIterator1 last1,
|
|
37
|
+
InputIterator2 first2, InputIterator2 last2,
|
|
38
|
+
OutputIterator result,
|
|
39
|
+
Comparator cmp = Comparator(),
|
|
40
|
+
Combine combine = Combine())
|
|
41
|
+
{
|
|
42
|
+
while (true)
|
|
43
|
+
{
|
|
44
|
+
// if either range is done -> copy the rest of the other
|
|
45
|
+
if (first1 == last1)
|
|
46
|
+
return std::copy(first2, last2, result);
|
|
47
|
+
if (first2 == last2)
|
|
48
|
+
return std::copy(first1, last1, result);
|
|
49
|
+
|
|
50
|
+
// compare both items, copy or combine.
|
|
51
|
+
if (cmp(*first1, *first2) < 0)
|
|
52
|
+
{
|
|
53
|
+
*result = *first1;
|
|
54
|
+
++first1;
|
|
55
|
+
}
|
|
56
|
+
else if (cmp(*first1, *first2) > 0)
|
|
57
|
+
{
|
|
58
|
+
*result = *first2;
|
|
59
|
+
++first2;
|
|
60
|
+
}
|
|
61
|
+
else
|
|
62
|
+
{
|
|
63
|
+
*result = combine(*first1, *first2);
|
|
64
|
+
++first1, ++first2;
|
|
65
|
+
}
|
|
66
|
+
++result;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
//! \}
|
|
71
|
+
|
|
72
|
+
} // namespace tlx
|
|
73
|
+
|
|
74
|
+
#endif // !TLX_ALGORITHM_MERGE_COMBINE_HEADER
|
|
75
|
+
|
|
76
|
+
/******************************************************************************/
|
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+
/*******************************************************************************
|
|
2
|
+
* tlx/algorithm/multisequence_partition.hpp
|
|
3
|
+
*
|
|
4
|
+
* Implementation of multisequence partition and selection.
|
|
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_MULTISEQUENCE_PARTITION_HEADER
|
|
19
|
+
#define TLX_ALGORITHM_MULTISEQUENCE_PARTITION_HEADER
|
|
20
|
+
|
|
21
|
+
#include <tlx/container/simple_vector.hpp>
|
|
22
|
+
#include <tlx/math/round_to_power_of_two.hpp>
|
|
23
|
+
#include <algorithm>
|
|
24
|
+
#include <cassert>
|
|
25
|
+
#include <cstddef>
|
|
26
|
+
#include <functional>
|
|
27
|
+
#include <iterator>
|
|
28
|
+
#include <queue>
|
|
29
|
+
#include <utility>
|
|
30
|
+
#include <vector>
|
|
31
|
+
|
|
32
|
+
namespace tlx {
|
|
33
|
+
|
|
34
|
+
//! \addtogroup tlx_algorithm
|
|
35
|
+
//! \{
|
|
36
|
+
|
|
37
|
+
namespace multisequence_partition_detail {
|
|
38
|
+
|
|
39
|
+
//! Compare a pair of types lexicographically, ascending.
|
|
40
|
+
template <typename T1, typename T2, typename Comparator>
|
|
41
|
+
class lexicographic
|
|
42
|
+
{
|
|
43
|
+
private:
|
|
44
|
+
Comparator& comp_;
|
|
45
|
+
|
|
46
|
+
public:
|
|
47
|
+
explicit lexicographic(Comparator& comp) : comp_(comp)
|
|
48
|
+
{
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
bool operator()(const std::pair<T1, T2>& p1, const std::pair<T1, T2>& p2)
|
|
52
|
+
{
|
|
53
|
+
if (comp_(p1.first, p2.first))
|
|
54
|
+
return true;
|
|
55
|
+
|
|
56
|
+
if (comp_(p2.first, p1.first))
|
|
57
|
+
return false;
|
|
58
|
+
|
|
59
|
+
// firsts are equal
|
|
60
|
+
return p1.second < p2.second;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
//! Compare a pair of types lexicographically, descending.
|
|
65
|
+
template <typename T1, typename T2, typename Comparator>
|
|
66
|
+
class lexicographic_rev
|
|
67
|
+
{
|
|
68
|
+
private:
|
|
69
|
+
Comparator& comp_;
|
|
70
|
+
|
|
71
|
+
public:
|
|
72
|
+
explicit lexicographic_rev(Comparator& comp) : comp_(comp)
|
|
73
|
+
{
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
bool operator()(const std::pair<T1, T2>& p1, const std::pair<T1, T2>& p2)
|
|
77
|
+
{
|
|
78
|
+
if (comp_(p2.first, p1.first))
|
|
79
|
+
return true;
|
|
80
|
+
|
|
81
|
+
if (comp_(p1.first, p2.first))
|
|
82
|
+
return false;
|
|
83
|
+
|
|
84
|
+
// firsts are equal
|
|
85
|
+
return p2.second < p1.second;
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
} // namespace multisequence_partition_detail
|
|
90
|
+
|
|
91
|
+
/*!
|
|
92
|
+
* Splits several sorted sequences at a certain global rank, resulting in a
|
|
93
|
+
* splitting point for each sequence. The sequences are passed via a sequence
|
|
94
|
+
* of random-access iterator pairs, none of the sequences may be empty. If
|
|
95
|
+
* there are several equal elements across the split, the ones on the left side
|
|
96
|
+
* will be chosen from sequences with smaller number.
|
|
97
|
+
*
|
|
98
|
+
* \param begin_seqs Begin of the sequence of iterator pairs.
|
|
99
|
+
* \param end_seqs End of the sequence of iterator pairs.
|
|
100
|
+
* \param rank The global rank to partition at.
|
|
101
|
+
* \param begin_offsets A random-access sequence begin where the result will be
|
|
102
|
+
* stored in. Each element of the sequence is an iterator that points to the
|
|
103
|
+
* first element on the greater part of the respective sequence.
|
|
104
|
+
* \param comp The ordering functor, defaults to std::less<T>.
|
|
105
|
+
*/
|
|
106
|
+
template <typename RanSeqs, typename RankType, typename RankIterator,
|
|
107
|
+
typename Comparator = std::less<
|
|
108
|
+
typename std::iterator_traits<typename std::iterator_traits<
|
|
109
|
+
RanSeqs>::value_type::first_type>::value_type> >
|
|
110
|
+
void multisequence_partition(const RanSeqs& begin_seqs, const RanSeqs& end_seqs,
|
|
111
|
+
const RankType& rank, RankIterator begin_offsets,
|
|
112
|
+
Comparator comp = Comparator())
|
|
113
|
+
{
|
|
114
|
+
using iterator =
|
|
115
|
+
typename std::iterator_traits<RanSeqs>::value_type::first_type;
|
|
116
|
+
using diff_type = typename std::iterator_traits<iterator>::difference_type;
|
|
117
|
+
using value_type = typename std::iterator_traits<iterator>::value_type;
|
|
118
|
+
|
|
119
|
+
using SamplePair = std::pair<value_type, diff_type>;
|
|
120
|
+
|
|
121
|
+
using namespace multisequence_partition_detail;
|
|
122
|
+
|
|
123
|
+
// comparators for SamplePair
|
|
124
|
+
lexicographic<value_type, diff_type, Comparator> lcomp(comp);
|
|
125
|
+
lexicographic_rev<value_type, diff_type, Comparator> lrcomp(comp);
|
|
126
|
+
|
|
127
|
+
// number of sequences, number of elements in total (possibly including
|
|
128
|
+
// padding)
|
|
129
|
+
const diff_type m = std::distance(begin_seqs, end_seqs);
|
|
130
|
+
diff_type nmax, n;
|
|
131
|
+
RankType N = 0;
|
|
132
|
+
|
|
133
|
+
for (diff_type i = 0; i < m; ++i)
|
|
134
|
+
{
|
|
135
|
+
N += std::distance(begin_seqs[i].first, begin_seqs[i].second);
|
|
136
|
+
assert(std::distance(begin_seqs[i].first, begin_seqs[i].second) > 0);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
if (rank == N)
|
|
140
|
+
{
|
|
141
|
+
for (diff_type i = 0; i < m; ++i)
|
|
142
|
+
begin_offsets[i] = begin_seqs[i].second; // very end
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
assert(m != 0 && N != 0 && rank < N);
|
|
147
|
+
|
|
148
|
+
simple_vector<diff_type> seqlen(m);
|
|
149
|
+
|
|
150
|
+
seqlen[0] = std::distance(begin_seqs[0].first, begin_seqs[0].second);
|
|
151
|
+
nmax = seqlen[0];
|
|
152
|
+
for (diff_type i = 1; i < m; ++i)
|
|
153
|
+
{
|
|
154
|
+
seqlen[i] = std::distance(begin_seqs[i].first, begin_seqs[i].second);
|
|
155
|
+
nmax = std::max(nmax, seqlen[i]);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// pad all lists to this length, at least as long as any ns[i], equality
|
|
159
|
+
// iff nmax = 2^k - 1
|
|
160
|
+
diff_type l = round_up_to_power_of_two(nmax + 1) - 1;
|
|
161
|
+
|
|
162
|
+
simple_vector<diff_type> a(m), b(m);
|
|
163
|
+
|
|
164
|
+
for (diff_type i = 0; i < m; ++i)
|
|
165
|
+
a[i] = 0, b[i] = l;
|
|
166
|
+
|
|
167
|
+
n = l / 2;
|
|
168
|
+
|
|
169
|
+
// invariants:
|
|
170
|
+
// 0 <= a[i] <= seqlen[i], 0 <= b[i] <= l
|
|
171
|
+
|
|
172
|
+
// initial partition
|
|
173
|
+
|
|
174
|
+
std::vector<SamplePair> sample;
|
|
175
|
+
|
|
176
|
+
for (diff_type i = 0; i < m; ++i)
|
|
177
|
+
{
|
|
178
|
+
if (n < seqlen[i])
|
|
179
|
+
{
|
|
180
|
+
// sequence long enough
|
|
181
|
+
sample.push_back(SamplePair(begin_seqs[i].first[n], i));
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
std::sort(sample.begin(), sample.end(), lcomp);
|
|
186
|
+
|
|
187
|
+
for (diff_type i = 0; i < m; ++i)
|
|
188
|
+
{
|
|
189
|
+
// conceptual infinity
|
|
190
|
+
if (n >= seqlen[i])
|
|
191
|
+
{
|
|
192
|
+
// sequence too short, conceptual infinity
|
|
193
|
+
sample.push_back(
|
|
194
|
+
SamplePair(begin_seqs[i].first[0] /* dummy element */, i));
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
size_t localrank = static_cast<size_t>(rank / l);
|
|
199
|
+
|
|
200
|
+
size_t j;
|
|
201
|
+
for (j = 0; j < localrank && ((n + 1) <= seqlen[sample[j].second]); ++j)
|
|
202
|
+
a[sample[j].second] += n + 1;
|
|
203
|
+
for (; j < static_cast<size_t>(m); ++j)
|
|
204
|
+
b[sample[j].second] -= n + 1;
|
|
205
|
+
|
|
206
|
+
// further refinement
|
|
207
|
+
|
|
208
|
+
while (n > 0)
|
|
209
|
+
{
|
|
210
|
+
n /= 2;
|
|
211
|
+
|
|
212
|
+
const value_type* lmax = nullptr; // impossible to avoid the warning?
|
|
213
|
+
for (diff_type i = 0; i < m; ++i)
|
|
214
|
+
{
|
|
215
|
+
if (a[i] > 0)
|
|
216
|
+
{
|
|
217
|
+
if (!lmax)
|
|
218
|
+
lmax = &(begin_seqs[i].first[a[i] - 1]);
|
|
219
|
+
else
|
|
220
|
+
{
|
|
221
|
+
// max, favor rear sequences
|
|
222
|
+
if (!comp(begin_seqs[i].first[a[i] - 1], *lmax))
|
|
223
|
+
lmax = &(begin_seqs[i].first[a[i] - 1]);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
for (diff_type i = 0; i < m; ++i)
|
|
229
|
+
{
|
|
230
|
+
diff_type middle = (b[i] + a[i]) / 2;
|
|
231
|
+
if (lmax && middle < seqlen[i] &&
|
|
232
|
+
comp(begin_seqs[i].first[middle], *lmax))
|
|
233
|
+
a[i] = std::min(a[i] + n + 1, seqlen[i]);
|
|
234
|
+
else
|
|
235
|
+
b[i] -= n + 1;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
diff_type leftsize = 0;
|
|
239
|
+
for (diff_type i = 0; i < m; ++i)
|
|
240
|
+
leftsize += a[i] / (n + 1);
|
|
241
|
+
|
|
242
|
+
diff_type skew = rank / (n + 1) - leftsize;
|
|
243
|
+
|
|
244
|
+
if (skew > 0)
|
|
245
|
+
{
|
|
246
|
+
// move to the left, find smallest
|
|
247
|
+
std::priority_queue<
|
|
248
|
+
SamplePair, std::vector<SamplePair>,
|
|
249
|
+
lexicographic_rev<value_type, diff_type, Comparator> >
|
|
250
|
+
pq(lrcomp);
|
|
251
|
+
|
|
252
|
+
for (diff_type i = 0; i < m; ++i)
|
|
253
|
+
{
|
|
254
|
+
if (b[i] < seqlen[i])
|
|
255
|
+
pq.push(SamplePair(begin_seqs[i].first[b[i]], i));
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
for (; skew != 0 && !pq.empty(); --skew)
|
|
259
|
+
{
|
|
260
|
+
diff_type src = pq.top().second;
|
|
261
|
+
pq.pop();
|
|
262
|
+
|
|
263
|
+
a[src] = std::min(a[src] + n + 1, seqlen[src]);
|
|
264
|
+
b[src] += n + 1;
|
|
265
|
+
|
|
266
|
+
if (b[src] < seqlen[src])
|
|
267
|
+
pq.push(SamplePair(begin_seqs[src].first[b[src]], src));
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
else if (skew < 0)
|
|
271
|
+
{
|
|
272
|
+
// move to the right, find greatest
|
|
273
|
+
std::priority_queue<
|
|
274
|
+
SamplePair, std::vector<SamplePair>,
|
|
275
|
+
lexicographic<value_type, diff_type, Comparator> >
|
|
276
|
+
pq(lcomp);
|
|
277
|
+
|
|
278
|
+
for (diff_type i = 0; i < m; ++i)
|
|
279
|
+
{
|
|
280
|
+
if (a[i] > 0)
|
|
281
|
+
pq.push(SamplePair(begin_seqs[i].first[a[i] - 1], i));
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
for (; skew != 0; ++skew)
|
|
285
|
+
{
|
|
286
|
+
diff_type src = pq.top().second;
|
|
287
|
+
pq.pop();
|
|
288
|
+
|
|
289
|
+
a[src] -= n + 1;
|
|
290
|
+
b[src] -= n + 1;
|
|
291
|
+
|
|
292
|
+
if (a[src] > 0)
|
|
293
|
+
pq.push(SamplePair(begin_seqs[src].first[a[src] - 1], src));
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
// postconditions: a[i] == b[i] in most cases, except when a[i] has been
|
|
299
|
+
// clamped because of having reached the boundary
|
|
300
|
+
|
|
301
|
+
// now return the result, calculate the offset, compare the keys on both
|
|
302
|
+
// edges of the border
|
|
303
|
+
|
|
304
|
+
// maximum of left edge, minimum of right edge
|
|
305
|
+
value_type *maxleft = nullptr, *minright = nullptr;
|
|
306
|
+
for (diff_type i = 0; i < m; ++i)
|
|
307
|
+
{
|
|
308
|
+
if (a[i] > 0)
|
|
309
|
+
{
|
|
310
|
+
if (!maxleft)
|
|
311
|
+
{
|
|
312
|
+
maxleft = &(begin_seqs[i].first[a[i] - 1]);
|
|
313
|
+
}
|
|
314
|
+
else
|
|
315
|
+
{
|
|
316
|
+
// max, favor rear sequences
|
|
317
|
+
if (!comp(begin_seqs[i].first[a[i] - 1], *maxleft))
|
|
318
|
+
maxleft = &(begin_seqs[i].first[a[i] - 1]);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
if (b[i] < seqlen[i])
|
|
322
|
+
{
|
|
323
|
+
if (!minright)
|
|
324
|
+
{
|
|
325
|
+
minright = &(begin_seqs[i].first[b[i]]);
|
|
326
|
+
}
|
|
327
|
+
else
|
|
328
|
+
{
|
|
329
|
+
// min, favor fore sequences
|
|
330
|
+
if (comp(begin_seqs[i].first[b[i]], *minright))
|
|
331
|
+
minright = &(begin_seqs[i].first[b[i]]);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
for (diff_type i = 0; i < m; ++i)
|
|
337
|
+
begin_offsets[i] = begin_seqs[i].first + a[i];
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
//! \}
|
|
341
|
+
|
|
342
|
+
} // namespace tlx
|
|
343
|
+
|
|
344
|
+
#endif // !TLX_ALGORITHM_MULTISEQUENCE_PARTITION_HEADER
|
|
345
|
+
|
|
346
|
+
/******************************************************************************/
|