@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,800 @@
|
|
|
1
|
+
/*******************************************************************************
|
|
2
|
+
* tlx/sort/strings/string_set.hpp
|
|
3
|
+
*
|
|
4
|
+
* Implementations of a StringSet concept. This is an internal implementation
|
|
5
|
+
* header, see tlx/sort/strings.hpp for public front-end functions.
|
|
6
|
+
*
|
|
7
|
+
* A StringSet abstracts from arrays of strings, we provide four abstractions:
|
|
8
|
+
*
|
|
9
|
+
* - UCharStringSet: (const) unsigned char**
|
|
10
|
+
* - StdStringSet: std::string*
|
|
11
|
+
* - UPtrStdStringSet: std::unique_ptr<std::string>*
|
|
12
|
+
* - StringSuffixSet: suffix sorting indexes of a std::string text
|
|
13
|
+
*
|
|
14
|
+
* Part of tlx - http://panthema.net/tlx
|
|
15
|
+
*
|
|
16
|
+
* Copyright (C) 2015-2019 Timo Bingmann <tb@panthema.net>
|
|
17
|
+
*
|
|
18
|
+
* All rights reserved. Published under the Boost Software License, Version 1.0
|
|
19
|
+
******************************************************************************/
|
|
20
|
+
|
|
21
|
+
#ifndef TLX_SORT_STRINGS_STRING_SET_HEADER
|
|
22
|
+
#define TLX_SORT_STRINGS_STRING_SET_HEADER
|
|
23
|
+
|
|
24
|
+
#include <tlx/logger/core.hpp>
|
|
25
|
+
#include <tlx/math/bswap.hpp>
|
|
26
|
+
#include <tlx/meta/enable_if.hpp>
|
|
27
|
+
#include <cassert>
|
|
28
|
+
#include <cstdint>
|
|
29
|
+
#include <memory>
|
|
30
|
+
#include <string>
|
|
31
|
+
#include <utility>
|
|
32
|
+
#include <vector>
|
|
33
|
+
|
|
34
|
+
namespace tlx {
|
|
35
|
+
|
|
36
|
+
//! \addtogroup tlx_sort
|
|
37
|
+
//! \{
|
|
38
|
+
|
|
39
|
+
namespace sort_strings_detail {
|
|
40
|
+
|
|
41
|
+
/******************************************************************************/
|
|
42
|
+
|
|
43
|
+
/*!
|
|
44
|
+
* Base class for common string set functions, included via CRTP.
|
|
45
|
+
*/
|
|
46
|
+
template <typename StringSet, typename Traits>
|
|
47
|
+
class StringSetBase
|
|
48
|
+
{
|
|
49
|
+
public:
|
|
50
|
+
//! index-based array access (readable and writable) to String objects.
|
|
51
|
+
typename Traits::String& at(size_t i) const
|
|
52
|
+
{
|
|
53
|
+
const StringSet& ss = *static_cast<const StringSet*>(this);
|
|
54
|
+
return *(ss.begin() + i);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
//! \name CharIterator Comparisons
|
|
58
|
+
//! \{
|
|
59
|
+
|
|
60
|
+
//! check equality of two strings a and b at char iterators ai and bi.
|
|
61
|
+
bool is_equal(const typename Traits::String& a,
|
|
62
|
+
const typename Traits::CharIterator& ai,
|
|
63
|
+
const typename Traits::String& b,
|
|
64
|
+
const typename Traits::CharIterator& bi) const
|
|
65
|
+
{
|
|
66
|
+
const StringSet& ss = *static_cast<const StringSet*>(this);
|
|
67
|
+
return !ss.is_end(a, ai) && !ss.is_end(b, bi) && (*ai == *bi);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
//! check if string a is less or equal to string b at iterators ai and bi.
|
|
71
|
+
bool is_less(const typename Traits::String& a,
|
|
72
|
+
const typename Traits::CharIterator& ai,
|
|
73
|
+
const typename Traits::String& b,
|
|
74
|
+
const typename Traits::CharIterator& bi) const
|
|
75
|
+
{
|
|
76
|
+
const StringSet& ss = *static_cast<const StringSet*>(this);
|
|
77
|
+
return ss.is_end(a, ai) ||
|
|
78
|
+
(!ss.is_end(a, ai) && !ss.is_end(b, bi) && *ai < *bi);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
//! check if string a is less or equal to string b at iterators ai and bi.
|
|
82
|
+
bool is_leq(const typename Traits::String& a,
|
|
83
|
+
const typename Traits::CharIterator& ai,
|
|
84
|
+
const typename Traits::String& b,
|
|
85
|
+
const typename Traits::CharIterator& bi) const
|
|
86
|
+
{
|
|
87
|
+
const StringSet& ss = *static_cast<const StringSet*>(this);
|
|
88
|
+
return ss.is_end(a, ai) ||
|
|
89
|
+
(!ss.is_end(a, ai) && !ss.is_end(b, bi) && *ai <= *bi);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
//! \}
|
|
93
|
+
|
|
94
|
+
//! \name Character Extractors
|
|
95
|
+
//! \{
|
|
96
|
+
|
|
97
|
+
typename Traits::Char get_char(const typename Traits::String& s,
|
|
98
|
+
size_t depth) const
|
|
99
|
+
{
|
|
100
|
+
const StringSet& ss = *static_cast<const StringSet*>(this);
|
|
101
|
+
return *ss.get_chars(s, depth);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
//! Return up to 1 characters of string s at iterator i packed into a
|
|
105
|
+
//! uint8_t (only works correctly for 8-bit characters)
|
|
106
|
+
std::uint8_t get_uint8(const typename Traits::String& s,
|
|
107
|
+
typename Traits::CharIterator i) const
|
|
108
|
+
{
|
|
109
|
+
const StringSet& ss = *static_cast<const StringSet*>(this);
|
|
110
|
+
|
|
111
|
+
if (ss.is_end(s, i))
|
|
112
|
+
return 0;
|
|
113
|
+
return std::uint8_t(*i);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
//! Return up to 2 characters of string s at iterator i packed into a
|
|
117
|
+
//! uint16_t (only works correctly for 8-bit characters)
|
|
118
|
+
std::uint16_t get_uint16(const typename Traits::String& s,
|
|
119
|
+
typename Traits::CharIterator i) const
|
|
120
|
+
{
|
|
121
|
+
const StringSet& ss = *static_cast<const StringSet*>(this);
|
|
122
|
+
|
|
123
|
+
std::uint16_t v = 0;
|
|
124
|
+
if (ss.is_end(s, i))
|
|
125
|
+
return v;
|
|
126
|
+
v = (std::uint16_t(*i) << 8);
|
|
127
|
+
++i;
|
|
128
|
+
if (ss.is_end(s, i))
|
|
129
|
+
return v;
|
|
130
|
+
v |= (std::uint16_t(*i) << 0);
|
|
131
|
+
return v;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
//! Return up to 4 characters of string s at iterator i packed into a
|
|
135
|
+
//! uint32_t (only works correctly for 8-bit characters)
|
|
136
|
+
std::uint32_t get_uint32(const typename Traits::String& s,
|
|
137
|
+
typename Traits::CharIterator i) const
|
|
138
|
+
{
|
|
139
|
+
const StringSet& ss = *static_cast<const StringSet*>(this);
|
|
140
|
+
|
|
141
|
+
std::uint32_t v = 0;
|
|
142
|
+
if (ss.is_end(s, i))
|
|
143
|
+
return v;
|
|
144
|
+
v = (std::uint32_t(*i) << 24);
|
|
145
|
+
++i;
|
|
146
|
+
if (ss.is_end(s, i))
|
|
147
|
+
return v;
|
|
148
|
+
v |= (std::uint32_t(*i) << 16);
|
|
149
|
+
++i;
|
|
150
|
+
if (ss.is_end(s, i))
|
|
151
|
+
return v;
|
|
152
|
+
v |= (std::uint32_t(*i) << 8);
|
|
153
|
+
++i;
|
|
154
|
+
if (ss.is_end(s, i))
|
|
155
|
+
return v;
|
|
156
|
+
v |= (std::uint32_t(*i) << 0);
|
|
157
|
+
return v;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
//! Return up to 8 characters of string s at iterator i packed into a
|
|
161
|
+
//! uint64_t (only works correctly for 8-bit characters)
|
|
162
|
+
std::uint64_t get_uint64(const typename Traits::String& s,
|
|
163
|
+
typename Traits::CharIterator i) const
|
|
164
|
+
{
|
|
165
|
+
const StringSet& ss = *static_cast<const StringSet*>(this);
|
|
166
|
+
|
|
167
|
+
std::uint64_t v = 0;
|
|
168
|
+
if (ss.is_end(s, i))
|
|
169
|
+
return v;
|
|
170
|
+
v = (std::uint64_t(*i) << 56);
|
|
171
|
+
++i;
|
|
172
|
+
if (ss.is_end(s, i))
|
|
173
|
+
return v;
|
|
174
|
+
v |= (std::uint64_t(*i) << 48);
|
|
175
|
+
++i;
|
|
176
|
+
if (ss.is_end(s, i))
|
|
177
|
+
return v;
|
|
178
|
+
v |= (std::uint64_t(*i) << 40);
|
|
179
|
+
++i;
|
|
180
|
+
if (ss.is_end(s, i))
|
|
181
|
+
return v;
|
|
182
|
+
v |= (std::uint64_t(*i) << 32);
|
|
183
|
+
++i;
|
|
184
|
+
if (ss.is_end(s, i))
|
|
185
|
+
return v;
|
|
186
|
+
v |= (std::uint64_t(*i) << 24);
|
|
187
|
+
++i;
|
|
188
|
+
if (ss.is_end(s, i))
|
|
189
|
+
return v;
|
|
190
|
+
v |= (std::uint64_t(*i) << 16);
|
|
191
|
+
++i;
|
|
192
|
+
if (ss.is_end(s, i))
|
|
193
|
+
return v;
|
|
194
|
+
v |= (std::uint64_t(*i) << 8);
|
|
195
|
+
++i;
|
|
196
|
+
if (ss.is_end(s, i))
|
|
197
|
+
return v;
|
|
198
|
+
v |= (std::uint64_t(*i) << 0);
|
|
199
|
+
return v;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
std::uint8_t get_uint8(const typename Traits::String& s, size_t depth) const
|
|
203
|
+
{
|
|
204
|
+
const StringSet& ss = *static_cast<const StringSet*>(this);
|
|
205
|
+
return get_uint8(s, ss.get_chars(s, depth));
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
std::uint16_t get_uint16(const typename Traits::String& s,
|
|
209
|
+
size_t depth) const
|
|
210
|
+
{
|
|
211
|
+
const StringSet& ss = *static_cast<const StringSet*>(this);
|
|
212
|
+
return get_uint16(s, ss.get_chars(s, depth));
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
std::uint32_t get_uint32(const typename Traits::String& s,
|
|
216
|
+
size_t depth) const
|
|
217
|
+
{
|
|
218
|
+
const StringSet& ss = *static_cast<const StringSet*>(this);
|
|
219
|
+
return get_uint32(s, ss.get_chars(s, depth));
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
std::uint64_t get_uint64(const typename Traits::String& s,
|
|
223
|
+
size_t depth) const
|
|
224
|
+
{
|
|
225
|
+
const StringSet& ss = *static_cast<const StringSet*>(this);
|
|
226
|
+
return get_uint64(s, ss.get_chars(s, depth));
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
//! \}
|
|
230
|
+
|
|
231
|
+
//! Subset this string set using index range.
|
|
232
|
+
StringSet subi(size_t begin, size_t end) const
|
|
233
|
+
{
|
|
234
|
+
const StringSet& ss = *static_cast<const StringSet*>(this);
|
|
235
|
+
return ss.sub(ss.begin() + begin, ss.begin() + end);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
bool check_order(const typename Traits::String& s1,
|
|
239
|
+
const typename Traits::String& s2) const
|
|
240
|
+
{
|
|
241
|
+
const StringSet& ss = *static_cast<const StringSet*>(this);
|
|
242
|
+
|
|
243
|
+
typename StringSet::CharIterator c1 = ss.get_chars(s1, 0);
|
|
244
|
+
typename StringSet::CharIterator c2 = ss.get_chars(s2, 0);
|
|
245
|
+
|
|
246
|
+
while (ss.is_equal(s1, c1, s2, c2))
|
|
247
|
+
++c1, ++c2;
|
|
248
|
+
|
|
249
|
+
return ss.is_leq(s1, c1, s2, c2);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
bool check_order() const
|
|
253
|
+
{
|
|
254
|
+
const StringSet& ss = *static_cast<const StringSet*>(this);
|
|
255
|
+
|
|
256
|
+
for (typename Traits::Iterator pi = ss.begin(); pi + 1 != ss.end();
|
|
257
|
+
++pi)
|
|
258
|
+
{
|
|
259
|
+
if (!check_order(*pi, *(pi + 1)))
|
|
260
|
+
{
|
|
261
|
+
TLX_LOG1 << "check_order() failed at position "
|
|
262
|
+
<< pi - ss.begin();
|
|
263
|
+
return false;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
return true;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
void print() const
|
|
270
|
+
{
|
|
271
|
+
const StringSet& ss = *static_cast<const StringSet*>(this);
|
|
272
|
+
size_t i = 0;
|
|
273
|
+
for (typename Traits::Iterator pi = ss.begin(); pi != ss.end(); ++pi)
|
|
274
|
+
{
|
|
275
|
+
TLX_LOG1 << "[" << i++ << "] = " << *pi << " = "
|
|
276
|
+
<< ss.get_string(*pi, 0);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
|
|
281
|
+
template <typename Type, typename StringSet>
|
|
282
|
+
inline typename enable_if<sizeof(Type) == 4, std::uint32_t>::type get_key(
|
|
283
|
+
const StringSet& strset, const typename StringSet::String& s, size_t depth)
|
|
284
|
+
{
|
|
285
|
+
return strset.get_uint32(s, depth);
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
template <typename Type, typename StringSet>
|
|
289
|
+
inline typename enable_if<sizeof(Type) == 8, std::uint64_t>::type get_key(
|
|
290
|
+
const StringSet& strset, const typename StringSet::String& s, size_t depth)
|
|
291
|
+
{
|
|
292
|
+
return strset.get_uint64(s, depth);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
template <typename Type, typename StringSet>
|
|
296
|
+
inline Type get_key_at(const StringSet& strset, size_t idx, size_t depth)
|
|
297
|
+
{
|
|
298
|
+
return get_key<Type>(strset, strset.at(idx), depth);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/******************************************************************************/
|
|
302
|
+
|
|
303
|
+
/*!
|
|
304
|
+
* Traits class implementing StringSet concept for char* and unsigned char*
|
|
305
|
+
* strings.
|
|
306
|
+
*/
|
|
307
|
+
template <typename CharType>
|
|
308
|
+
class GenericCharStringSetTraits
|
|
309
|
+
{
|
|
310
|
+
public:
|
|
311
|
+
//! exported alias for character type
|
|
312
|
+
typedef CharType Char;
|
|
313
|
+
|
|
314
|
+
//! String reference: pointer to first character
|
|
315
|
+
typedef Char* String;
|
|
316
|
+
|
|
317
|
+
//! Iterator over string references: pointer over pointers
|
|
318
|
+
typedef String* Iterator;
|
|
319
|
+
|
|
320
|
+
//! iterator of characters in a string
|
|
321
|
+
typedef const Char* CharIterator;
|
|
322
|
+
|
|
323
|
+
//! exported alias for assumed string container
|
|
324
|
+
typedef std::pair<Iterator, size_t> Container;
|
|
325
|
+
};
|
|
326
|
+
|
|
327
|
+
/*!
|
|
328
|
+
* Class implementing StringSet concept for char* and unsigned char* strings.
|
|
329
|
+
*/
|
|
330
|
+
template <typename CharType>
|
|
331
|
+
class GenericCharStringSet
|
|
332
|
+
: public GenericCharStringSetTraits<CharType>,
|
|
333
|
+
public StringSetBase<GenericCharStringSet<CharType>,
|
|
334
|
+
GenericCharStringSetTraits<CharType> >
|
|
335
|
+
{
|
|
336
|
+
public:
|
|
337
|
+
typedef GenericCharStringSetTraits<CharType> Traits;
|
|
338
|
+
|
|
339
|
+
typedef typename Traits::Char Char;
|
|
340
|
+
typedef typename Traits::String String;
|
|
341
|
+
typedef typename Traits::Iterator Iterator;
|
|
342
|
+
typedef typename Traits::CharIterator CharIterator;
|
|
343
|
+
typedef typename Traits::Container Container;
|
|
344
|
+
|
|
345
|
+
//! Construct from begin and end string pointers
|
|
346
|
+
GenericCharStringSet(Iterator begin, Iterator end)
|
|
347
|
+
: begin_(begin), end_(end)
|
|
348
|
+
{
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
//! Construct from a string container
|
|
352
|
+
explicit GenericCharStringSet(const Container& c)
|
|
353
|
+
: begin_(c.first), end_(c.first + c.second)
|
|
354
|
+
{
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
//! Return size of string array
|
|
358
|
+
size_t size() const
|
|
359
|
+
{
|
|
360
|
+
return end_ - begin_;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
//! Iterator representing first String position
|
|
364
|
+
Iterator begin() const
|
|
365
|
+
{
|
|
366
|
+
return begin_;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
//! Iterator representing beyond last String position
|
|
370
|
+
Iterator end() const
|
|
371
|
+
{
|
|
372
|
+
return end_;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
//! Iterator-based array access (readable and writable) to String objects.
|
|
376
|
+
String& operator[](Iterator i) const
|
|
377
|
+
{
|
|
378
|
+
return *i;
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
//! Return CharIterator for referenced string, which belong to this set.
|
|
382
|
+
CharIterator get_chars(const String& s, size_t depth) const
|
|
383
|
+
{
|
|
384
|
+
return s + depth;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
//! Returns true if CharIterator is at end of the given String
|
|
388
|
+
bool is_end(const String&, const CharIterator& i) const
|
|
389
|
+
{
|
|
390
|
+
return (*i == 0);
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
//! Return complete string (for debugging purposes)
|
|
394
|
+
std::string get_string(const String& s, size_t depth = 0) const
|
|
395
|
+
{
|
|
396
|
+
return std::string(reinterpret_cast<const char*>(s) + depth);
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
//! Subset this string set using iterator range.
|
|
400
|
+
GenericCharStringSet sub(Iterator begin, Iterator end) const
|
|
401
|
+
{
|
|
402
|
+
return GenericCharStringSet(begin, end);
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
//! Allocate a new temporary string container with n empty Strings
|
|
406
|
+
static Container allocate(size_t n)
|
|
407
|
+
{
|
|
408
|
+
return std::make_pair(new String[n], n);
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
//! Deallocate a temporary string container
|
|
412
|
+
static void deallocate(Container& c)
|
|
413
|
+
{
|
|
414
|
+
delete[] c.first;
|
|
415
|
+
c.first = nullptr;
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
private:
|
|
419
|
+
//! array of string pointers
|
|
420
|
+
Iterator begin_, end_;
|
|
421
|
+
};
|
|
422
|
+
|
|
423
|
+
typedef GenericCharStringSet<char> CharStringSet;
|
|
424
|
+
typedef GenericCharStringSet<unsigned char> UCharStringSet;
|
|
425
|
+
|
|
426
|
+
typedef GenericCharStringSet<const char> CCharStringSet;
|
|
427
|
+
typedef GenericCharStringSet<const unsigned char> CUCharStringSet;
|
|
428
|
+
|
|
429
|
+
/******************************************************************************/
|
|
430
|
+
|
|
431
|
+
/*!
|
|
432
|
+
* Class implementing StringSet concept for a std::string objects.
|
|
433
|
+
*/
|
|
434
|
+
class StdStringSetTraits
|
|
435
|
+
{
|
|
436
|
+
public:
|
|
437
|
+
//! exported alias for character type
|
|
438
|
+
typedef std::uint8_t Char;
|
|
439
|
+
|
|
440
|
+
//! String reference: std::string, which should be reference counted.
|
|
441
|
+
typedef std::string String;
|
|
442
|
+
|
|
443
|
+
//! Iterator over string references: pointer to std::string.
|
|
444
|
+
typedef String* Iterator;
|
|
445
|
+
|
|
446
|
+
//! iterator of characters in a string
|
|
447
|
+
typedef const Char* CharIterator;
|
|
448
|
+
|
|
449
|
+
//! exported alias for assumed string container
|
|
450
|
+
typedef std::pair<Iterator, size_t> Container;
|
|
451
|
+
};
|
|
452
|
+
|
|
453
|
+
/*!
|
|
454
|
+
* Class implementing StringSet concept for arrays of std::string objects.
|
|
455
|
+
*/
|
|
456
|
+
class StdStringSet : public StdStringSetTraits,
|
|
457
|
+
public StringSetBase<StdStringSet, StdStringSetTraits>
|
|
458
|
+
{
|
|
459
|
+
public:
|
|
460
|
+
//! Construct from begin and end string pointers
|
|
461
|
+
StdStringSet(const Iterator& begin, const Iterator& end)
|
|
462
|
+
: begin_(begin), end_(end)
|
|
463
|
+
{
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
//! Construct from a string container
|
|
467
|
+
explicit StdStringSet(Container& c)
|
|
468
|
+
: begin_(c.first), end_(c.first + c.second)
|
|
469
|
+
{
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
//! Return size of string array
|
|
473
|
+
size_t size() const
|
|
474
|
+
{
|
|
475
|
+
return end_ - begin_;
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
//! Iterator representing first String position
|
|
479
|
+
Iterator begin() const
|
|
480
|
+
{
|
|
481
|
+
return begin_;
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
//! Iterator representing beyond last String position
|
|
485
|
+
Iterator end() const
|
|
486
|
+
{
|
|
487
|
+
return end_;
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
//! Array access (readable and writable) to String objects.
|
|
491
|
+
String& operator[](const Iterator& i) const
|
|
492
|
+
{
|
|
493
|
+
return *i;
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
//! Return CharIterator for referenced string, which belongs to this set.
|
|
497
|
+
static CharIterator get_chars(const String& s, size_t depth)
|
|
498
|
+
{
|
|
499
|
+
return reinterpret_cast<CharIterator>(s.data()) + depth;
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
//! Returns true if CharIterator is at end of the given String
|
|
503
|
+
static bool is_end(const String& s, const CharIterator& i)
|
|
504
|
+
{
|
|
505
|
+
return (i >= reinterpret_cast<CharIterator>(s.data()) + s.size());
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
//! Return complete string (for debugging purposes)
|
|
509
|
+
static std::string get_string(const String& s, size_t depth = 0)
|
|
510
|
+
{
|
|
511
|
+
return s.substr(depth);
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
//! Subset this string set using iterator range.
|
|
515
|
+
static StdStringSet sub(Iterator begin, Iterator end)
|
|
516
|
+
{
|
|
517
|
+
return StdStringSet(begin, end);
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
//! Allocate a new temporary string container with n empty Strings
|
|
521
|
+
static Container allocate(size_t n)
|
|
522
|
+
{
|
|
523
|
+
return std::make_pair(new String[n], n);
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
//! Deallocate a temporary string container
|
|
527
|
+
static void deallocate(Container& c)
|
|
528
|
+
{
|
|
529
|
+
delete[] c.first;
|
|
530
|
+
c.first = nullptr;
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
private:
|
|
534
|
+
//! pointers to std::string objects
|
|
535
|
+
Iterator begin_, end_;
|
|
536
|
+
};
|
|
537
|
+
|
|
538
|
+
/******************************************************************************/
|
|
539
|
+
|
|
540
|
+
/*!
|
|
541
|
+
* Class implementing StringSet concept for a std::unique_ptr<std::string
|
|
542
|
+
* objects, which are non-copyable.
|
|
543
|
+
*/
|
|
544
|
+
class UPtrStdStringSetTraits
|
|
545
|
+
{
|
|
546
|
+
public:
|
|
547
|
+
//! exported alias for character type
|
|
548
|
+
typedef std::uint8_t Char;
|
|
549
|
+
|
|
550
|
+
//! String reference: std::string, which should be reference counted.
|
|
551
|
+
typedef std::unique_ptr<std::string> String;
|
|
552
|
+
|
|
553
|
+
//! Iterator over string references: using std::vector's iterator
|
|
554
|
+
typedef String* Iterator;
|
|
555
|
+
|
|
556
|
+
//! iterator of characters in a string
|
|
557
|
+
typedef const Char* CharIterator;
|
|
558
|
+
|
|
559
|
+
//! exported alias for assumed string container
|
|
560
|
+
typedef std::pair<Iterator, size_t> Container;
|
|
561
|
+
};
|
|
562
|
+
|
|
563
|
+
/*!
|
|
564
|
+
* Class implementing StringSet concept for a std::vector containing std::string
|
|
565
|
+
* objects.
|
|
566
|
+
*/
|
|
567
|
+
class UPtrStdStringSet
|
|
568
|
+
: public UPtrStdStringSetTraits,
|
|
569
|
+
public StringSetBase<UPtrStdStringSet, UPtrStdStringSetTraits>
|
|
570
|
+
{
|
|
571
|
+
public:
|
|
572
|
+
//! Construct from begin and end string pointers
|
|
573
|
+
UPtrStdStringSet(const Iterator& begin, const Iterator& end)
|
|
574
|
+
: begin_(begin), end_(end)
|
|
575
|
+
{
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
//! Construct from a string container
|
|
579
|
+
explicit UPtrStdStringSet(Container& c)
|
|
580
|
+
: begin_(c.first), end_(c.first + c.second)
|
|
581
|
+
{
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
//! Return size of string array
|
|
585
|
+
size_t size() const
|
|
586
|
+
{
|
|
587
|
+
return end_ - begin_;
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
//! Iterator representing first String position
|
|
591
|
+
Iterator begin() const
|
|
592
|
+
{
|
|
593
|
+
return begin_;
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
//! Iterator representing beyond last String position
|
|
597
|
+
Iterator end() const
|
|
598
|
+
{
|
|
599
|
+
return end_;
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
//! Array access (readable and writable) to String objects.
|
|
603
|
+
String& operator[](const Iterator& i) const
|
|
604
|
+
{
|
|
605
|
+
return *i;
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
//! Return CharIterator for referenced string, which belongs to this set.
|
|
609
|
+
static CharIterator get_chars(const String& s, size_t depth)
|
|
610
|
+
{
|
|
611
|
+
return reinterpret_cast<CharIterator>(s->data()) + depth;
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
//! Returns true if CharIterator is at end of the given String
|
|
615
|
+
static bool is_end(const String& s, const CharIterator& i)
|
|
616
|
+
{
|
|
617
|
+
return (i >= reinterpret_cast<CharIterator>(s->data()) + s->size());
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
//! Return complete string (for debugging purposes)
|
|
621
|
+
static std::string get_string(const String& s, size_t depth = 0)
|
|
622
|
+
{
|
|
623
|
+
return s->substr(depth);
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
//! Subset this string set using iterator range.
|
|
627
|
+
static UPtrStdStringSet sub(Iterator begin, Iterator end)
|
|
628
|
+
{
|
|
629
|
+
return UPtrStdStringSet(begin, end);
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
//! Allocate a new temporary string container with n empty Strings
|
|
633
|
+
static Container allocate(size_t n)
|
|
634
|
+
{
|
|
635
|
+
return std::make_pair(new String[n], n);
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
//! Deallocate a temporary string container
|
|
639
|
+
static void deallocate(Container& c)
|
|
640
|
+
{
|
|
641
|
+
delete[] c.first;
|
|
642
|
+
c.first = nullptr;
|
|
643
|
+
}
|
|
644
|
+
|
|
645
|
+
void print() const
|
|
646
|
+
{
|
|
647
|
+
size_t i = 0;
|
|
648
|
+
for (Iterator pi = begin(); pi != end(); ++pi)
|
|
649
|
+
{
|
|
650
|
+
TLX_LOG1 << "[" << i++ << "] = " << pi->get() << " = "
|
|
651
|
+
<< get_string(*pi, 0);
|
|
652
|
+
}
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
private:
|
|
656
|
+
//! vector of std::string objects
|
|
657
|
+
Iterator begin_, end_;
|
|
658
|
+
};
|
|
659
|
+
|
|
660
|
+
/******************************************************************************/
|
|
661
|
+
|
|
662
|
+
/*!
|
|
663
|
+
* Class implementing StringSet concept for suffix sorting indexes of a
|
|
664
|
+
* std::string text object.
|
|
665
|
+
*/
|
|
666
|
+
class StringSuffixSetTraits
|
|
667
|
+
{
|
|
668
|
+
public:
|
|
669
|
+
//! exported alias for assumed string container
|
|
670
|
+
typedef std::string Text;
|
|
671
|
+
|
|
672
|
+
//! exported alias for character type
|
|
673
|
+
typedef std::uint8_t Char;
|
|
674
|
+
|
|
675
|
+
//! String reference: suffix index of the text.
|
|
676
|
+
typedef typename Text::size_type String;
|
|
677
|
+
|
|
678
|
+
//! Iterator over string references: using std::vector's iterator over
|
|
679
|
+
//! suffix array vector
|
|
680
|
+
typedef typename std::vector<String>::iterator Iterator;
|
|
681
|
+
|
|
682
|
+
//! iterator of characters in a string
|
|
683
|
+
typedef const Char* CharIterator;
|
|
684
|
+
|
|
685
|
+
//! exported alias for assumed string container
|
|
686
|
+
typedef std::pair<Text, std::vector<String> > Container;
|
|
687
|
+
};
|
|
688
|
+
|
|
689
|
+
/*!
|
|
690
|
+
* Class implementing StringSet concept for suffix sorting indexes of a
|
|
691
|
+
* std::string text object.
|
|
692
|
+
*/
|
|
693
|
+
class StringSuffixSet
|
|
694
|
+
: public StringSuffixSetTraits,
|
|
695
|
+
public StringSetBase<StringSuffixSet, StringSuffixSetTraits>
|
|
696
|
+
{
|
|
697
|
+
public:
|
|
698
|
+
//! Construct from begin and end string pointers
|
|
699
|
+
StringSuffixSet(const Text& text, const Iterator& begin,
|
|
700
|
+
const Iterator& end)
|
|
701
|
+
: text_(&text), begin_(begin), end_(end)
|
|
702
|
+
{
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
//! Initializing constructor which fills output vector sa with indices.
|
|
706
|
+
static StringSuffixSet Initialize(const Text& text, std::vector<String>& sa)
|
|
707
|
+
{
|
|
708
|
+
sa.resize(text.size());
|
|
709
|
+
for (size_t i = 0; i < text.size(); ++i)
|
|
710
|
+
sa[i] = i;
|
|
711
|
+
return StringSuffixSet(text, sa.begin(), sa.end());
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
//! Return size of string array
|
|
715
|
+
size_t size() const
|
|
716
|
+
{
|
|
717
|
+
return end_ - begin_;
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
//! Iterator representing first String position
|
|
721
|
+
Iterator begin() const
|
|
722
|
+
{
|
|
723
|
+
return begin_;
|
|
724
|
+
}
|
|
725
|
+
|
|
726
|
+
//! Iterator representing beyond last String position
|
|
727
|
+
Iterator end() const
|
|
728
|
+
{
|
|
729
|
+
return end_;
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
//! Array access (readable and writable) to String objects.
|
|
733
|
+
String& operator[](const Iterator& i) const
|
|
734
|
+
{
|
|
735
|
+
return *i;
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
//! Return CharIterator for referenced string, which belongs to this set.
|
|
739
|
+
CharIterator get_chars(const String& s, size_t depth) const
|
|
740
|
+
{
|
|
741
|
+
return reinterpret_cast<CharIterator>(text_->data()) + s + depth;
|
|
742
|
+
}
|
|
743
|
+
|
|
744
|
+
//! Returns true if CharIterator is at end of the given String
|
|
745
|
+
bool is_end(const String&, const CharIterator& i) const
|
|
746
|
+
{
|
|
747
|
+
return (i >=
|
|
748
|
+
reinterpret_cast<CharIterator>(text_->data()) + text_->size());
|
|
749
|
+
}
|
|
750
|
+
|
|
751
|
+
//! Return complete string (for debugging purposes)
|
|
752
|
+
std::string get_string(const String& s, size_t depth = 0) const
|
|
753
|
+
{
|
|
754
|
+
return text_->substr(s + depth);
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
//! Subset this string set using iterator range.
|
|
758
|
+
StringSuffixSet sub(Iterator begin, Iterator end) const
|
|
759
|
+
{
|
|
760
|
+
return StringSuffixSet(*text_, begin, end);
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
//! Allocate a new temporary string container with n empty Strings
|
|
764
|
+
Container allocate(size_t n) const
|
|
765
|
+
{
|
|
766
|
+
return std::make_pair(*text_, std::vector<String>(n));
|
|
767
|
+
}
|
|
768
|
+
|
|
769
|
+
//! Deallocate a temporary string container
|
|
770
|
+
static void deallocate(Container& c)
|
|
771
|
+
{
|
|
772
|
+
std::vector<String> v;
|
|
773
|
+
v.swap(c.second);
|
|
774
|
+
}
|
|
775
|
+
|
|
776
|
+
//! Construct from a string container
|
|
777
|
+
explicit StringSuffixSet(Container& c)
|
|
778
|
+
: text_(&c.first), begin_(c.second.begin()), end_(c.second.end())
|
|
779
|
+
{
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
private:
|
|
783
|
+
//! reference to base text
|
|
784
|
+
const Text* text_;
|
|
785
|
+
|
|
786
|
+
//! iterators inside the output suffix array.
|
|
787
|
+
Iterator begin_, end_;
|
|
788
|
+
};
|
|
789
|
+
|
|
790
|
+
/******************************************************************************/
|
|
791
|
+
|
|
792
|
+
} // namespace sort_strings_detail
|
|
793
|
+
|
|
794
|
+
//! \}
|
|
795
|
+
|
|
796
|
+
} // namespace tlx
|
|
797
|
+
|
|
798
|
+
#endif // !TLX_SORT_STRINGS_STRING_SET_HEADER
|
|
799
|
+
|
|
800
|
+
/******************************************************************************/
|