@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,634 @@
|
|
|
1
|
+
/*******************************************************************************
|
|
2
|
+
* tlx/container/btree_map.hpp
|
|
3
|
+
*
|
|
4
|
+
* Part of tlx - http://panthema.net/tlx
|
|
5
|
+
*
|
|
6
|
+
* Copyright (C) 2008-2017 Timo Bingmann <tb@panthema.net>
|
|
7
|
+
*
|
|
8
|
+
* All rights reserved. Published under the Boost Software License, Version 1.0
|
|
9
|
+
******************************************************************************/
|
|
10
|
+
|
|
11
|
+
#ifndef TLX_CONTAINER_BTREE_MAP_HEADER
|
|
12
|
+
#define TLX_CONTAINER_BTREE_MAP_HEADER
|
|
13
|
+
|
|
14
|
+
#include <tlx/container/btree.hpp>
|
|
15
|
+
#include <functional>
|
|
16
|
+
#include <memory>
|
|
17
|
+
#include <utility>
|
|
18
|
+
|
|
19
|
+
namespace tlx {
|
|
20
|
+
|
|
21
|
+
//! \addtogroup tlx_container_btree
|
|
22
|
+
//! \{
|
|
23
|
+
|
|
24
|
+
/*!
|
|
25
|
+
* Specialized B+ tree template class implementing STL's map container.
|
|
26
|
+
*
|
|
27
|
+
* Implements the STL map using a B+ tree. It can be used as a drop-in
|
|
28
|
+
* replacement for std::map. Not all asymptotic time requirements are met in
|
|
29
|
+
* theory. The class has a traits class defining B+ tree properties like slots
|
|
30
|
+
* and self-verification. Furthermore an allocator can be specified for tree
|
|
31
|
+
* nodes.
|
|
32
|
+
*/
|
|
33
|
+
template <typename Key_, typename Data_, typename Compare_ = std::less<Key_>,
|
|
34
|
+
typename Traits_ =
|
|
35
|
+
btree_default_traits<Key_, std::pair<Key_, Data_> >,
|
|
36
|
+
typename Alloc_ = std::allocator<std::pair<Key_, Data_> > >
|
|
37
|
+
class btree_map
|
|
38
|
+
{
|
|
39
|
+
public:
|
|
40
|
+
//! \name Template Parameter Types
|
|
41
|
+
//! \{
|
|
42
|
+
|
|
43
|
+
//! First template parameter: The key type of the btree. This is stored in
|
|
44
|
+
//! inner nodes.
|
|
45
|
+
typedef Key_ key_type;
|
|
46
|
+
|
|
47
|
+
//! Second template parameter: The value type associated with each key.
|
|
48
|
+
//! Stored in the B+ tree's leaves
|
|
49
|
+
typedef Data_ data_type;
|
|
50
|
+
|
|
51
|
+
//! Third template parameter: Key comparison function object
|
|
52
|
+
typedef Compare_ key_compare;
|
|
53
|
+
|
|
54
|
+
//! Fourth template parameter: Traits object used to define more parameters
|
|
55
|
+
//! of the B+ tree
|
|
56
|
+
typedef Traits_ traits;
|
|
57
|
+
|
|
58
|
+
//! Fifth template parameter: STL allocator
|
|
59
|
+
typedef Alloc_ allocator_type;
|
|
60
|
+
|
|
61
|
+
//! \}
|
|
62
|
+
|
|
63
|
+
// The macro TLX_BTREE_FRIENDS can be used by outside class to access the B+
|
|
64
|
+
// tree internals. This was added for wxBTreeDemo to be able to draw the
|
|
65
|
+
// tree.
|
|
66
|
+
TLX_BTREE_FRIENDS;
|
|
67
|
+
|
|
68
|
+
public:
|
|
69
|
+
//! \name Constructed Types
|
|
70
|
+
//! \{
|
|
71
|
+
|
|
72
|
+
//! Typedef of our own type
|
|
73
|
+
typedef btree_map<key_type, data_type, key_compare, traits, allocator_type>
|
|
74
|
+
self;
|
|
75
|
+
|
|
76
|
+
//! Construct the STL-required value_type as a composition pair of key and
|
|
77
|
+
//! data types
|
|
78
|
+
typedef std::pair<key_type, data_type> value_type;
|
|
79
|
+
|
|
80
|
+
//! Key Extractor Struct
|
|
81
|
+
struct key_of_value
|
|
82
|
+
{
|
|
83
|
+
//! pull first out of pair
|
|
84
|
+
static const key_type& get(const value_type& v)
|
|
85
|
+
{
|
|
86
|
+
return v.first;
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
//! Implementation type of the btree_base
|
|
91
|
+
typedef BTree<key_type, value_type, key_of_value, key_compare, traits,
|
|
92
|
+
false, allocator_type>
|
|
93
|
+
btree_impl;
|
|
94
|
+
|
|
95
|
+
//! Function class comparing two value_type pairs.
|
|
96
|
+
typedef typename btree_impl::value_compare value_compare;
|
|
97
|
+
|
|
98
|
+
//! Size type used to count keys
|
|
99
|
+
typedef typename btree_impl::size_type size_type;
|
|
100
|
+
|
|
101
|
+
//! Small structure containing statistics about the tree
|
|
102
|
+
typedef typename btree_impl::tree_stats tree_stats;
|
|
103
|
+
|
|
104
|
+
//! \}
|
|
105
|
+
|
|
106
|
+
public:
|
|
107
|
+
//! \name Static Constant Options and Values of the B+ Tree
|
|
108
|
+
//! \{
|
|
109
|
+
|
|
110
|
+
//! Base B+ tree parameter: The number of key/data slots in each leaf
|
|
111
|
+
static const unsigned short leaf_slotmax = btree_impl::leaf_slotmax;
|
|
112
|
+
|
|
113
|
+
//! Base B+ tree parameter: The number of key slots in each inner node,
|
|
114
|
+
//! this can differ from slots in each leaf.
|
|
115
|
+
static const unsigned short inner_slotmax = btree_impl::inner_slotmax;
|
|
116
|
+
|
|
117
|
+
//! Computed B+ tree parameter: The minimum number of key/data slots used
|
|
118
|
+
//! in a leaf. If fewer slots are used, the leaf will be merged or slots
|
|
119
|
+
//! shifted from it's siblings.
|
|
120
|
+
static const unsigned short leaf_slotmin = btree_impl::leaf_slotmin;
|
|
121
|
+
|
|
122
|
+
//! Computed B+ tree parameter: The minimum number of key slots used
|
|
123
|
+
//! in an inner node. If fewer slots are used, the inner node will be
|
|
124
|
+
//! merged or slots shifted from it's siblings.
|
|
125
|
+
static const unsigned short inner_slotmin = btree_impl::inner_slotmin;
|
|
126
|
+
|
|
127
|
+
//! Debug parameter: Enables expensive and thorough checking of the B+ tree
|
|
128
|
+
//! invariants after each insert/erase operation.
|
|
129
|
+
static const bool self_verify = btree_impl::self_verify;
|
|
130
|
+
|
|
131
|
+
//! Debug parameter: Prints out lots of debug information about how the
|
|
132
|
+
//! algorithms change the tree. Requires the header file to be compiled
|
|
133
|
+
//! with TLX_BTREE_DEBUG and the key type must be std::ostream printable.
|
|
134
|
+
static const bool debug = btree_impl::debug;
|
|
135
|
+
|
|
136
|
+
//! Operational parameter: Allow duplicate keys in the btree.
|
|
137
|
+
static const bool allow_duplicates = btree_impl::allow_duplicates;
|
|
138
|
+
|
|
139
|
+
//! \}
|
|
140
|
+
|
|
141
|
+
public:
|
|
142
|
+
//! \name Iterators and Reverse Iterators
|
|
143
|
+
//! \{
|
|
144
|
+
|
|
145
|
+
//! STL-like iterator object for B+ tree items. The iterator points to a
|
|
146
|
+
//! specific slot number in a leaf.
|
|
147
|
+
typedef typename btree_impl::iterator iterator;
|
|
148
|
+
|
|
149
|
+
//! STL-like iterator object for B+ tree items. The iterator points to a
|
|
150
|
+
//! specific slot number in a leaf.
|
|
151
|
+
typedef typename btree_impl::const_iterator const_iterator;
|
|
152
|
+
|
|
153
|
+
//! create mutable reverse iterator by using STL magic
|
|
154
|
+
typedef typename btree_impl::reverse_iterator reverse_iterator;
|
|
155
|
+
|
|
156
|
+
//! create constant reverse iterator by using STL magic
|
|
157
|
+
typedef typename btree_impl::const_reverse_iterator const_reverse_iterator;
|
|
158
|
+
|
|
159
|
+
//! \}
|
|
160
|
+
|
|
161
|
+
private:
|
|
162
|
+
//! \name Tree Implementation Object
|
|
163
|
+
//! \{
|
|
164
|
+
|
|
165
|
+
//! The contained implementation object
|
|
166
|
+
btree_impl tree_;
|
|
167
|
+
|
|
168
|
+
//! \}
|
|
169
|
+
|
|
170
|
+
public:
|
|
171
|
+
//! \name Constructors and Destructor
|
|
172
|
+
//! \{
|
|
173
|
+
|
|
174
|
+
//! Default constructor initializing an empty B+ tree with the standard key
|
|
175
|
+
//! comparison function
|
|
176
|
+
explicit btree_map(const allocator_type& alloc = allocator_type())
|
|
177
|
+
: tree_(alloc)
|
|
178
|
+
{
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
//! Constructor initializing an empty B+ tree with a special key
|
|
182
|
+
//! comparison object
|
|
183
|
+
explicit btree_map(const key_compare& kcf,
|
|
184
|
+
const allocator_type& alloc = allocator_type())
|
|
185
|
+
: tree_(kcf, alloc)
|
|
186
|
+
{
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
//! Constructor initializing a B+ tree with the range [first,last)
|
|
190
|
+
template <class InputIterator>
|
|
191
|
+
btree_map(InputIterator first, InputIterator last,
|
|
192
|
+
const allocator_type& alloc = allocator_type())
|
|
193
|
+
: tree_(first, last, alloc)
|
|
194
|
+
{
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
//! Constructor initializing a B+ tree with the range [first,last) and a
|
|
198
|
+
//! special key comparison object
|
|
199
|
+
template <class InputIterator>
|
|
200
|
+
btree_map(InputIterator first, InputIterator last, const key_compare& kcf,
|
|
201
|
+
const allocator_type& alloc = allocator_type())
|
|
202
|
+
: tree_(first, last, kcf, alloc)
|
|
203
|
+
{
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
//! Frees up all used B+ tree memory pages
|
|
207
|
+
~btree_map()
|
|
208
|
+
{
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
//! Fast swapping of two identical B+ tree objects.
|
|
212
|
+
void swap(btree_map& from) noexcept
|
|
213
|
+
{
|
|
214
|
+
std::swap(tree_, from.tree_);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
//! \}
|
|
218
|
+
|
|
219
|
+
public:
|
|
220
|
+
//! \name Key and Value Comparison Function Objects
|
|
221
|
+
//! \{
|
|
222
|
+
|
|
223
|
+
//! Constant access to the key comparison object sorting the B+ tree
|
|
224
|
+
key_compare key_comp() const
|
|
225
|
+
{
|
|
226
|
+
return tree_.key_comp();
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
//! Constant access to a constructed value_type comparison object. required
|
|
230
|
+
//! by the STL
|
|
231
|
+
value_compare value_comp() const
|
|
232
|
+
{
|
|
233
|
+
return tree_.value_comp();
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
//! \}
|
|
237
|
+
|
|
238
|
+
public:
|
|
239
|
+
//! \name Allocators
|
|
240
|
+
//! \{
|
|
241
|
+
|
|
242
|
+
//! Return the base node allocator provided during construction.
|
|
243
|
+
allocator_type get_allocator() const
|
|
244
|
+
{
|
|
245
|
+
return tree_.get_allocator();
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
//! \}
|
|
249
|
+
|
|
250
|
+
public:
|
|
251
|
+
//! \name Fast Destruction of the B+ Tree
|
|
252
|
+
//! \{
|
|
253
|
+
|
|
254
|
+
//! Frees all key/data pairs and all nodes of the tree
|
|
255
|
+
void clear()
|
|
256
|
+
{
|
|
257
|
+
tree_.clear();
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
//! \}
|
|
261
|
+
|
|
262
|
+
public:
|
|
263
|
+
//! \name STL Iterator Construction Functions
|
|
264
|
+
//! \{
|
|
265
|
+
|
|
266
|
+
//! Constructs a read/data-write iterator that points to the first slot in
|
|
267
|
+
//! the first leaf of the B+ tree.
|
|
268
|
+
iterator begin()
|
|
269
|
+
{
|
|
270
|
+
return tree_.begin();
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
//! Constructs a read/data-write iterator that points to the first invalid
|
|
274
|
+
//! slot in the last leaf of the B+ tree.
|
|
275
|
+
iterator end()
|
|
276
|
+
{
|
|
277
|
+
return tree_.end();
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
//! Constructs a read-only constant iterator that points to the first slot
|
|
281
|
+
//! in the first leaf of the B+ tree.
|
|
282
|
+
const_iterator begin() const
|
|
283
|
+
{
|
|
284
|
+
return tree_.begin();
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
//! Constructs a read-only constant iterator that points to the first
|
|
288
|
+
//! invalid slot in the last leaf of the B+ tree.
|
|
289
|
+
const_iterator end() const
|
|
290
|
+
{
|
|
291
|
+
return tree_.end();
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
//! Constructs a read/data-write reverse iterator that points to the first
|
|
295
|
+
//! invalid slot in the last leaf of the B+ tree. Uses STL magic.
|
|
296
|
+
reverse_iterator rbegin()
|
|
297
|
+
{
|
|
298
|
+
return tree_.rbegin();
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
//! Constructs a read/data-write reverse iterator that points to the first
|
|
302
|
+
//! slot in the first leaf of the B+ tree. Uses STL magic.
|
|
303
|
+
reverse_iterator rend()
|
|
304
|
+
{
|
|
305
|
+
return tree_.rend();
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
//! Constructs a read-only reverse iterator that points to the first
|
|
309
|
+
//! invalid slot in the last leaf of the B+ tree. Uses STL magic.
|
|
310
|
+
const_reverse_iterator rbegin() const
|
|
311
|
+
{
|
|
312
|
+
return tree_.rbegin();
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
//! Constructs a read-only reverse iterator that points to the first slot
|
|
316
|
+
//! in the first leaf of the B+ tree. Uses STL magic.
|
|
317
|
+
const_reverse_iterator rend() const
|
|
318
|
+
{
|
|
319
|
+
return tree_.rend();
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
//! \}
|
|
323
|
+
|
|
324
|
+
public:
|
|
325
|
+
//! \name Access Functions to the Item Count
|
|
326
|
+
//! \{
|
|
327
|
+
|
|
328
|
+
//! Return the number of key/data pairs in the B+ tree
|
|
329
|
+
size_type size() const
|
|
330
|
+
{
|
|
331
|
+
return tree_.size();
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
//! Returns true if there is at least one key/data pair in the B+ tree
|
|
335
|
+
bool empty() const
|
|
336
|
+
{
|
|
337
|
+
return tree_.empty();
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
//! Returns the largest possible size of the B+ Tree. This is just a
|
|
341
|
+
//! function required by the STL standard, the B+ Tree can hold more items.
|
|
342
|
+
size_type max_size() const
|
|
343
|
+
{
|
|
344
|
+
return tree_.max_size();
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
//! Return a const reference to the current statistics.
|
|
348
|
+
const tree_stats& get_stats() const
|
|
349
|
+
{
|
|
350
|
+
return tree_.get_stats();
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
//! \}
|
|
354
|
+
|
|
355
|
+
public:
|
|
356
|
+
//! \name STL Access Functions Querying the Tree by Descending to a Leaf
|
|
357
|
+
//! \{
|
|
358
|
+
|
|
359
|
+
//! Non-STL function checking whether a key is in the B+ tree. The same as
|
|
360
|
+
//! (find(k) != end()) or (count() != 0).
|
|
361
|
+
bool exists(const key_type& key) const
|
|
362
|
+
{
|
|
363
|
+
return tree_.exists(key);
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
//! Tries to locate a key in the B+ tree and returns an iterator to the
|
|
367
|
+
//! key/data slot if found. If unsuccessful it returns end().
|
|
368
|
+
iterator find(const key_type& key)
|
|
369
|
+
{
|
|
370
|
+
return tree_.find(key);
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
//! Tries to locate a key in the B+ tree and returns an constant iterator to
|
|
374
|
+
//! the key/data slot if found. If unsuccessful it returns end().
|
|
375
|
+
const_iterator find(const key_type& key) const
|
|
376
|
+
{
|
|
377
|
+
return tree_.find(key);
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
//! Tries to locate a key in the B+ tree and returns the number of identical
|
|
381
|
+
//! key entries found. Since this is a unique map, count() returns either 0
|
|
382
|
+
//! or 1.
|
|
383
|
+
size_type count(const key_type& key) const
|
|
384
|
+
{
|
|
385
|
+
return tree_.count(key);
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
//! Searches the B+ tree and returns an iterator to the first pair equal to
|
|
389
|
+
//! or greater than key, or end() if all keys are smaller.
|
|
390
|
+
iterator lower_bound(const key_type& key)
|
|
391
|
+
{
|
|
392
|
+
return tree_.lower_bound(key);
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
//! Searches the B+ tree and returns a constant iterator to the first pair
|
|
396
|
+
//! equal to or greater than key, or end() if all keys are smaller.
|
|
397
|
+
const_iterator lower_bound(const key_type& key) const
|
|
398
|
+
{
|
|
399
|
+
return tree_.lower_bound(key);
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
//! Searches the B+ tree and returns an iterator to the first pair greater
|
|
403
|
+
//! than key, or end() if all keys are smaller or equal.
|
|
404
|
+
iterator upper_bound(const key_type& key)
|
|
405
|
+
{
|
|
406
|
+
return tree_.upper_bound(key);
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
//! Searches the B+ tree and returns a constant iterator to the first pair
|
|
410
|
+
//! greater than key, or end() if all keys are smaller or equal.
|
|
411
|
+
const_iterator upper_bound(const key_type& key) const
|
|
412
|
+
{
|
|
413
|
+
return tree_.upper_bound(key);
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
//! Searches the B+ tree and returns both lower_bound() and upper_bound().
|
|
417
|
+
std::pair<iterator, iterator> equal_range(const key_type& key)
|
|
418
|
+
{
|
|
419
|
+
return tree_.equal_range(key);
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
//! Searches the B+ tree and returns both lower_bound() and upper_bound().
|
|
423
|
+
std::pair<const_iterator, const_iterator> equal_range(
|
|
424
|
+
const key_type& key) const
|
|
425
|
+
{
|
|
426
|
+
return tree_.equal_range(key);
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
//! \}
|
|
430
|
+
|
|
431
|
+
public:
|
|
432
|
+
//! \name B+ Tree Object Comparison Functions
|
|
433
|
+
//! \{
|
|
434
|
+
|
|
435
|
+
//! Equality relation of B+ trees of the same type. B+ trees of the same
|
|
436
|
+
//! size and equal elements (both key and data) are considered equal.
|
|
437
|
+
bool operator==(const btree_map& other) const
|
|
438
|
+
{
|
|
439
|
+
return (tree_ == other.tree_);
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
//! Inequality relation. Based on operator==.
|
|
443
|
+
bool operator!=(const btree_map& other) const
|
|
444
|
+
{
|
|
445
|
+
return (tree_ != other.tree_);
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
//! Total ordering relation of B+ trees of the same type. It uses
|
|
449
|
+
//! std::lexicographical_compare() for the actual comparison of elements.
|
|
450
|
+
bool operator<(const btree_map& other) const
|
|
451
|
+
{
|
|
452
|
+
return (tree_ < other.tree_);
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
//! Greater relation. Based on operator<.
|
|
456
|
+
bool operator>(const btree_map& other) const
|
|
457
|
+
{
|
|
458
|
+
return (tree_ > other.tree_);
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
//! Less-equal relation. Based on operator<.
|
|
462
|
+
bool operator<=(const btree_map& other) const
|
|
463
|
+
{
|
|
464
|
+
return (tree_ <= other.tree_);
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
//! Greater-equal relation. Based on operator<.
|
|
468
|
+
bool operator>=(const btree_map& other) const
|
|
469
|
+
{
|
|
470
|
+
return (tree_ >= other.tree_);
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
//! \}
|
|
474
|
+
|
|
475
|
+
public:
|
|
476
|
+
//! \name Fast Copy: Assign Operator and Copy Constructors
|
|
477
|
+
//! \{
|
|
478
|
+
|
|
479
|
+
//! Assignment operator. All the key/data pairs are copied
|
|
480
|
+
btree_map& operator=(const btree_map& other)
|
|
481
|
+
{
|
|
482
|
+
if (this != &other)
|
|
483
|
+
tree_ = other.tree_;
|
|
484
|
+
return *this;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
//! Copy constructor. The newly initialized B+ tree object will contain a
|
|
488
|
+
//! copy of all key/data pairs.
|
|
489
|
+
btree_map(const btree_map& other) : tree_(other.tree_)
|
|
490
|
+
{
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
//! \}
|
|
494
|
+
|
|
495
|
+
public:
|
|
496
|
+
//! \name Public Insertion Functions
|
|
497
|
+
//! \{
|
|
498
|
+
|
|
499
|
+
//! Attempt to insert a key/data pair into the B+ tree. Fails if the pair is
|
|
500
|
+
//! already present.
|
|
501
|
+
std::pair<iterator, bool> insert(const value_type& x)
|
|
502
|
+
{
|
|
503
|
+
return tree_.insert(x);
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
//! Attempt to insert a key/data pair into the B+ tree. This function is the
|
|
507
|
+
//! same as the other insert. Fails if the inserted pair is already present.
|
|
508
|
+
std::pair<iterator, bool> insert2(const key_type& key,
|
|
509
|
+
const data_type& data)
|
|
510
|
+
{
|
|
511
|
+
return tree_.insert(value_type(key, data));
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
//! Attempt to insert a key/data pair into the B+ tree. The iterator hint is
|
|
515
|
+
//! currently ignored by the B+ tree insertion routine.
|
|
516
|
+
iterator insert(iterator hint, const value_type& x)
|
|
517
|
+
{
|
|
518
|
+
return tree_.insert(hint, x);
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
//! Attempt to insert a key/data pair into the B+ tree. The iterator hint is
|
|
522
|
+
//! currently ignored by the B+ tree insertion routine.
|
|
523
|
+
iterator insert2(iterator hint, const key_type& key, const data_type& data)
|
|
524
|
+
{
|
|
525
|
+
return tree_.insert(hint, value_type(key, data));
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
//! Returns a reference to the object that is associated with a particular
|
|
529
|
+
//! key. If the map does not already contain such an object, operator[]
|
|
530
|
+
//! inserts the default object data_type().
|
|
531
|
+
data_type& operator[](const key_type& key)
|
|
532
|
+
{
|
|
533
|
+
iterator i = insert(value_type(key, data_type())).first;
|
|
534
|
+
return i->second;
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
//! Attempt to insert the range [first,last) of value_type pairs into the B+
|
|
538
|
+
//! tree. Each key/data pair is inserted individually.
|
|
539
|
+
template <typename InputIterator>
|
|
540
|
+
void insert(InputIterator first, InputIterator last)
|
|
541
|
+
{
|
|
542
|
+
return tree_.insert(first, last);
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
//! Bulk load a sorted range [first,last). Loads items into leaves and
|
|
546
|
+
//! constructs a B-tree above them. The tree must be empty when calling this
|
|
547
|
+
//! function.
|
|
548
|
+
template <typename Iterator>
|
|
549
|
+
void bulk_load(Iterator first, Iterator last)
|
|
550
|
+
{
|
|
551
|
+
return tree_.bulk_load(first, last);
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
//! \}
|
|
555
|
+
|
|
556
|
+
public:
|
|
557
|
+
//! \name Public Erase Functions
|
|
558
|
+
//! \{
|
|
559
|
+
|
|
560
|
+
//! Erases the key/data pairs associated with the given key. For this
|
|
561
|
+
//! unique-associative map there is no difference to erase().
|
|
562
|
+
bool erase_one(const key_type& key)
|
|
563
|
+
{
|
|
564
|
+
return tree_.erase_one(key);
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
//! Erases all the key/data pairs associated with the given key. This is
|
|
568
|
+
//! implemented using erase_one().
|
|
569
|
+
size_type erase(const key_type& key)
|
|
570
|
+
{
|
|
571
|
+
return tree_.erase(key);
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
//! Erase the key/data pair referenced by the iterator.
|
|
575
|
+
void erase(iterator iter)
|
|
576
|
+
{
|
|
577
|
+
return tree_.erase(iter);
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
#ifdef TLX_BTREE_TODO
|
|
581
|
+
//! Erase all key/data pairs in the range [first,last). This function is
|
|
582
|
+
//! currently not implemented by the B+ Tree.
|
|
583
|
+
void erase(iterator /* first */, iterator /* last */)
|
|
584
|
+
{
|
|
585
|
+
abort();
|
|
586
|
+
}
|
|
587
|
+
#endif
|
|
588
|
+
|
|
589
|
+
//! \}
|
|
590
|
+
|
|
591
|
+
#ifdef TLX_BTREE_DEBUG
|
|
592
|
+
|
|
593
|
+
public:
|
|
594
|
+
//! \name Debug Printing
|
|
595
|
+
//! \{
|
|
596
|
+
|
|
597
|
+
//! Print out the B+ tree structure with keys onto the given ostream. This
|
|
598
|
+
//! function requires that the header is compiled with TLX_BTREE_DEBUG and
|
|
599
|
+
//! that key_type is printable via std::ostream.
|
|
600
|
+
void print(std::ostream& os) const
|
|
601
|
+
{
|
|
602
|
+
tree_.print(os);
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
//! Print out only the leaves via the double linked list.
|
|
606
|
+
void print_leaves(std::ostream& os) const
|
|
607
|
+
{
|
|
608
|
+
tree_.print_leaves(os);
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
//! \}
|
|
612
|
+
#endif
|
|
613
|
+
|
|
614
|
+
public:
|
|
615
|
+
//! \name Verification of B+ Tree Invariants
|
|
616
|
+
//! \{
|
|
617
|
+
|
|
618
|
+
//! Run a thorough verification of all B+ tree invariants. The program
|
|
619
|
+
//! aborts via TLX_BTREE_ASSERT() if something is wrong.
|
|
620
|
+
void verify() const
|
|
621
|
+
{
|
|
622
|
+
tree_.verify();
|
|
623
|
+
}
|
|
624
|
+
|
|
625
|
+
//! \}
|
|
626
|
+
};
|
|
627
|
+
|
|
628
|
+
//! \}
|
|
629
|
+
|
|
630
|
+
} // namespace tlx
|
|
631
|
+
|
|
632
|
+
#endif // !TLX_CONTAINER_BTREE_MAP_HEADER
|
|
633
|
+
|
|
634
|
+
/******************************************************************************/
|