@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,322 @@
|
|
|
1
|
+
#ifndef NETWORKIT_AUXILIARY_STRING_BUILDER_HPP_
|
|
2
|
+
#define NETWORKIT_AUXILIARY_STRING_BUILDER_HPP_
|
|
3
|
+
|
|
4
|
+
#include <algorithm>
|
|
5
|
+
#include <cassert>
|
|
6
|
+
#include <iterator>
|
|
7
|
+
#include <sstream>
|
|
8
|
+
#include <stdexcept>
|
|
9
|
+
#include <string>
|
|
10
|
+
#include <string_view>
|
|
11
|
+
#include <tuple>
|
|
12
|
+
#include <type_traits>
|
|
13
|
+
#include <utility>
|
|
14
|
+
|
|
15
|
+
#include <networkit/auxiliary/TemplateUtils.hpp>
|
|
16
|
+
|
|
17
|
+
namespace Aux {
|
|
18
|
+
|
|
19
|
+
template <typename... T>
|
|
20
|
+
std::string toString(const T &...args);
|
|
21
|
+
|
|
22
|
+
template <typename... T>
|
|
23
|
+
std::ostream &printToStream(std::ostream &stream, const T &...args);
|
|
24
|
+
|
|
25
|
+
template <typename... T>
|
|
26
|
+
std::string toStringF(std::string_view format, const T &...args);
|
|
27
|
+
|
|
28
|
+
template <typename... T>
|
|
29
|
+
std::ostream &printToStreamF(std::ostream &stream, std::string_view format, const T &...args);
|
|
30
|
+
|
|
31
|
+
// Implementation
|
|
32
|
+
/////////////////
|
|
33
|
+
|
|
34
|
+
namespace Impl {
|
|
35
|
+
|
|
36
|
+
// Categories of how a type might be printable
|
|
37
|
+
enum class PrintableCategory {
|
|
38
|
+
UNPRINTABLE,
|
|
39
|
+
ITERATABLE,
|
|
40
|
+
PAIR,
|
|
41
|
+
TUPLE,
|
|
42
|
+
STREAMABLE,
|
|
43
|
+
Unprintable = UNPRINTABLE, // this + following added for backwards compatibility
|
|
44
|
+
Iteratable = ITERATABLE,
|
|
45
|
+
Pair = PAIR,
|
|
46
|
+
Tuple = TUPLE,
|
|
47
|
+
Streamable = STREAMABLE
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
template <typename T>
|
|
51
|
+
constexpr bool isStreamable();
|
|
52
|
+
template <typename T>
|
|
53
|
+
constexpr bool isPair();
|
|
54
|
+
template <typename T>
|
|
55
|
+
constexpr bool isTuple();
|
|
56
|
+
template <typename T>
|
|
57
|
+
constexpr bool isIteratable();
|
|
58
|
+
|
|
59
|
+
template <typename T>
|
|
60
|
+
constexpr PrintableCategory getPrintableCategory() {
|
|
61
|
+
return isStreamable<T>() ? PrintableCategory::STREAMABLE
|
|
62
|
+
: isPair<T>() ? PrintableCategory::PAIR
|
|
63
|
+
: isTuple<T>() ? PrintableCategory::TUPLE
|
|
64
|
+
: isIteratable<T>() ? PrintableCategory::ITERATABLE
|
|
65
|
+
:
|
|
66
|
+
/* else: */ PrintableCategory::UNPRINTABLE;
|
|
67
|
+
}
|
|
68
|
+
template <PrintableCategory Tag>
|
|
69
|
+
struct PrintableCategoryTag {};
|
|
70
|
+
using IteratableTag = PrintableCategoryTag<PrintableCategory::ITERATABLE>;
|
|
71
|
+
using PairTag = PrintableCategoryTag<PrintableCategory::PAIR>;
|
|
72
|
+
using TupleTag = PrintableCategoryTag<PrintableCategory::TUPLE>;
|
|
73
|
+
using StreamableTag = PrintableCategoryTag<PrintableCategory::STREAMABLE>;
|
|
74
|
+
using UnprintableTag = PrintableCategoryTag<PrintableCategory::UNPRINTABLE>;
|
|
75
|
+
|
|
76
|
+
template <typename T, typename... Args>
|
|
77
|
+
void printToStream(std::ostream &stream, const T &, const Args &...);
|
|
78
|
+
inline void printToStream(std::ostream &) {}
|
|
79
|
+
|
|
80
|
+
template <typename T>
|
|
81
|
+
void printToStreamTagged(std::ostream &stream, const T &, IteratableTag);
|
|
82
|
+
template <typename T>
|
|
83
|
+
void printToStreamTagged(std::ostream &stream, const T &, PairTag);
|
|
84
|
+
template <typename T>
|
|
85
|
+
void printToStreamTagged(std::ostream &stream, const T &, TupleTag);
|
|
86
|
+
template <typename T>
|
|
87
|
+
void printToStreamTagged(std::ostream &stream, const T &, StreamableTag);
|
|
88
|
+
|
|
89
|
+
// Claim that this function exists somewhere else to keep the errors clean
|
|
90
|
+
// (calling this function is not a problem since the error is already caught earlier
|
|
91
|
+
// in printToStream, and calling it directly will result in a linker-error)
|
|
92
|
+
template <typename T>
|
|
93
|
+
extern void printToStreamTagged(std::ostream &, const T &, UnprintableTag);
|
|
94
|
+
|
|
95
|
+
template <typename T, typename... Args>
|
|
96
|
+
void printToStream(std::ostream &stream, const T &arg, const Args &...args) {
|
|
97
|
+
static_assert(getPrintableCategory<T>() != PrintableCategory::UNPRINTABLE,
|
|
98
|
+
"printToStream must not be called with an unprintable argument");
|
|
99
|
+
printToStreamTagged(stream, arg, PrintableCategoryTag<getPrintableCategory<T>()>{});
|
|
100
|
+
printToStream(stream, args...);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
inline std::tuple<std::string_view::const_iterator, bool>
|
|
104
|
+
printFormatPartToStream(std::ostream &stream, std::string_view::const_iterator begin,
|
|
105
|
+
std::string_view::const_iterator end);
|
|
106
|
+
|
|
107
|
+
inline void printToStreamF(std::ostream &stream, std::string_view::const_iterator format_begin,
|
|
108
|
+
std::string_view::const_iterator format_end) {
|
|
109
|
+
bool printArgument;
|
|
110
|
+
using iterator = std::string_view::const_iterator;
|
|
111
|
+
iterator it;
|
|
112
|
+
std::tie(it, printArgument) = printFormatPartToStream(stream, format_begin, format_end);
|
|
113
|
+
if (printArgument) {
|
|
114
|
+
throw std::invalid_argument{"formatstring requests more arguments then provided"};
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
template <typename T, typename... Args>
|
|
118
|
+
void printToStreamF(std::ostream &stream, std::string_view::const_iterator format_begin,
|
|
119
|
+
std::string_view::const_iterator format_end, const T &arg,
|
|
120
|
+
const Args &...args) {
|
|
121
|
+
bool printArgument;
|
|
122
|
+
using iterator = std::string_view::const_iterator;
|
|
123
|
+
iterator it;
|
|
124
|
+
std::tie(it, printArgument) = printFormatPartToStream(stream, format_begin, format_end);
|
|
125
|
+
if (printArgument) {
|
|
126
|
+
printToStream(stream, arg);
|
|
127
|
+
printToStreamF(stream, it, format_end, args...);
|
|
128
|
+
} else {
|
|
129
|
+
assert(it == format_end);
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Write the formatstring until the first occurance of "%s"
|
|
136
|
+
* to stream, '%%' will be replaced by '%'.
|
|
137
|
+
*
|
|
138
|
+
* @returns The iterator that points one after the last consumed
|
|
139
|
+
* character and whether a further argument should be printed.
|
|
140
|
+
*/
|
|
141
|
+
inline auto printFormatPartToStream(std::ostream &stream, std::string_view::const_iterator begin,
|
|
142
|
+
std::string_view::const_iterator end)
|
|
143
|
+
-> std::tuple<std::string_view::const_iterator, bool> {
|
|
144
|
+
auto it = begin;
|
|
145
|
+
while (it != end) {
|
|
146
|
+
auto nextPercent = std::find(it, end, '%');
|
|
147
|
+
stream.write(&*it, std::distance(it, nextPercent));
|
|
148
|
+
|
|
149
|
+
if (nextPercent == end) {
|
|
150
|
+
it = nextPercent;
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
it = ++nextPercent;
|
|
155
|
+
|
|
156
|
+
if (it == end) {
|
|
157
|
+
throw std::invalid_argument{"formatstrings must not end on unmatched '%'"};
|
|
158
|
+
} else if (*it == '%') {
|
|
159
|
+
stream.put('%');
|
|
160
|
+
++it;
|
|
161
|
+
} else if (*it == 's') {
|
|
162
|
+
++it;
|
|
163
|
+
return std::make_tuple(it, true);
|
|
164
|
+
} else {
|
|
165
|
+
throw std::invalid_argument{"formatstring contains illegal format-specifier"};
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
assert(it == end);
|
|
169
|
+
return std::make_tuple(end, false);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// Brace Yourself: Templatemetaprogramming is coming
|
|
173
|
+
////////////////////////////////////////////////////
|
|
174
|
+
|
|
175
|
+
// Iteratable
|
|
176
|
+
struct IsIteratableHelper {
|
|
177
|
+
static std::false_type isIteratable(...);
|
|
178
|
+
|
|
179
|
+
template <
|
|
180
|
+
typename T, class Iterator = decltype(std::begin(std::declval<T>())),
|
|
181
|
+
AUX_REQUIRE(EndIteratorValid, isSame<Iterator, decltype(std::end(std::declval<T>()))>()),
|
|
182
|
+
AUX_REQUIRE(HasInputIterator,
|
|
183
|
+
isBaseOrSame<std::input_iterator_tag,
|
|
184
|
+
typename std::iterator_traits<Iterator>::iterator_category>())>
|
|
185
|
+
static std::true_type isIteratable(const T &);
|
|
186
|
+
};
|
|
187
|
+
template <typename T>
|
|
188
|
+
constexpr bool isIteratable() {
|
|
189
|
+
return decltype(IsIteratableHelper::isIteratable(std::declval<T>()))::value;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
// Pair
|
|
193
|
+
template <typename T>
|
|
194
|
+
struct IsPairHelper : std::false_type {};
|
|
195
|
+
template <typename T1, typename T2>
|
|
196
|
+
struct IsPairHelper<std::pair<T1, T2>> : std::true_type {};
|
|
197
|
+
template <typename T>
|
|
198
|
+
constexpr bool isPair() {
|
|
199
|
+
return IsPairHelper<T>::value;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
// Tuple
|
|
203
|
+
template <typename T>
|
|
204
|
+
struct IsTupleHelper : std::false_type {};
|
|
205
|
+
template <typename... T>
|
|
206
|
+
struct IsTupleHelper<std::tuple<T...>> : std::true_type {};
|
|
207
|
+
template <typename T>
|
|
208
|
+
constexpr bool isTuple() {
|
|
209
|
+
return IsTupleHelper<T>::value;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// Streamable
|
|
213
|
+
struct IsStreamableHelper {
|
|
214
|
+
static std::false_type isStreamable(...);
|
|
215
|
+
|
|
216
|
+
template <
|
|
217
|
+
typename T,
|
|
218
|
+
typename _streamT = typename std::decay<decltype(std::declval<std::ostream &>()
|
|
219
|
+
<< std::declval<const T &>())>::type,
|
|
220
|
+
typename std::enable_if<std::is_same<std::ostream, _streamT>::value
|
|
221
|
+
|| std::is_base_of<std::ostream, _streamT>::value> * = nullptr>
|
|
222
|
+
static std::true_type isStreamable(const T &);
|
|
223
|
+
};
|
|
224
|
+
template <typename T>
|
|
225
|
+
constexpr bool isStreamable() {
|
|
226
|
+
return decltype(IsStreamableHelper::isStreamable(std::declval<T>()))::value;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
// And now: implement the actual printing:
|
|
230
|
+
//////////////////////////////////////////
|
|
231
|
+
|
|
232
|
+
// Streamable
|
|
233
|
+
template <typename T>
|
|
234
|
+
void printToStreamTagged(std::ostream &stream, const T &arg, StreamableTag) {
|
|
235
|
+
stream << arg;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// Pair
|
|
239
|
+
template <typename T>
|
|
240
|
+
void printToStreamTagged(std::ostream &stream, const T &arg, PairTag) {
|
|
241
|
+
stream << '(';
|
|
242
|
+
printToStream(stream, arg.first);
|
|
243
|
+
stream << ", ";
|
|
244
|
+
printToStream(stream, arg.second);
|
|
245
|
+
stream << ')';
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// Tuple
|
|
249
|
+
template <typename Tuple, int I, int TupleSize>
|
|
250
|
+
struct printTupleHelper {
|
|
251
|
+
static void print(std::ostream &stream, const Tuple &arg) {
|
|
252
|
+
printToStream(stream, std::get<I - 1>(arg));
|
|
253
|
+
stream << ", ";
|
|
254
|
+
printTupleHelper<Tuple, I + 1, TupleSize>::print(stream, arg);
|
|
255
|
+
}
|
|
256
|
+
};
|
|
257
|
+
template <typename Tuple, int I>
|
|
258
|
+
struct printTupleHelper<Tuple, I, I> {
|
|
259
|
+
static void print(std::ostream &stream, const Tuple &arg) {
|
|
260
|
+
printToStream(stream, std::get<I - 1>(arg));
|
|
261
|
+
}
|
|
262
|
+
};
|
|
263
|
+
template <typename T>
|
|
264
|
+
void printToStreamTagged(std::ostream &stream, const T &arg, TupleTag) {
|
|
265
|
+
stream << '(';
|
|
266
|
+
printTupleHelper<T, 1, std::tuple_size<T>::value>::print(stream, arg);
|
|
267
|
+
stream << ')';
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
// Iteratable
|
|
271
|
+
template <typename T>
|
|
272
|
+
void printToStreamTagged(std::ostream &stream, const T &arg, IteratableTag) {
|
|
273
|
+
auto it = std::begin(arg);
|
|
274
|
+
auto end = std::end(arg);
|
|
275
|
+
bool firstpass = true;
|
|
276
|
+
stream << '[';
|
|
277
|
+
while (it != end) {
|
|
278
|
+
if (firstpass) {
|
|
279
|
+
firstpass = false;
|
|
280
|
+
} else {
|
|
281
|
+
stream << ", ";
|
|
282
|
+
}
|
|
283
|
+
printToStream(stream, *it);
|
|
284
|
+
++it;
|
|
285
|
+
}
|
|
286
|
+
stream << ']';
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
} // namespace Impl
|
|
290
|
+
|
|
291
|
+
// Finally: put together the public interface:
|
|
292
|
+
//////////////////////////////////////////////
|
|
293
|
+
|
|
294
|
+
template <typename... T>
|
|
295
|
+
std::string toString(const T &...args) {
|
|
296
|
+
std::stringstream stream;
|
|
297
|
+
printToStream(stream, args...);
|
|
298
|
+
return stream.str();
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
template <typename... T>
|
|
302
|
+
std::ostream &printToStream(std::ostream &stream, const T &...args) {
|
|
303
|
+
Impl::printToStream(stream, args...);
|
|
304
|
+
return stream;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
template <typename... T>
|
|
308
|
+
std::string toStringF(std::string_view format, const T &...args) {
|
|
309
|
+
std::stringstream stream;
|
|
310
|
+
printToStreamF(stream, format, args...);
|
|
311
|
+
return stream.str();
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
template <typename... T>
|
|
315
|
+
std::ostream &printToStreamF(std::ostream &stream, std::string_view format, const T &...args) {
|
|
316
|
+
Impl::printToStreamF(stream, format.begin(), format.end(), args...);
|
|
317
|
+
return stream;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
} // namespace Aux
|
|
321
|
+
|
|
322
|
+
#endif // NETWORKIT_AUXILIARY_STRING_BUILDER_HPP_
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* StringTools.hpp
|
|
3
|
+
*
|
|
4
|
+
* Completely rewritten on: 12.05.2014
|
|
5
|
+
* Author: Florian Weber (uagws@student.kit.edu)
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef NETWORKIT_AUXILIARY_STRING_TOOLS_HPP_
|
|
9
|
+
#define NETWORKIT_AUXILIARY_STRING_TOOLS_HPP_
|
|
10
|
+
|
|
11
|
+
#include <algorithm>
|
|
12
|
+
#include <string>
|
|
13
|
+
#include <string_view>
|
|
14
|
+
#include <vector>
|
|
15
|
+
|
|
16
|
+
namespace Aux {
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Missing string functions.
|
|
20
|
+
*/
|
|
21
|
+
namespace StringTools {
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Splits a range of characters at a delimiter into a vector of strings.
|
|
25
|
+
*
|
|
26
|
+
* Requirements:
|
|
27
|
+
* Character must be equality-comparable to char and it must be possible to construct a char from
|
|
28
|
+
* any Character.
|
|
29
|
+
* Iterator must be an input-iterator over Characters.
|
|
30
|
+
*/
|
|
31
|
+
template <typename Iterator, typename Character>
|
|
32
|
+
std::vector<std::string> split(Iterator begin, Iterator end, Character delim = Character{' '}) {
|
|
33
|
+
|
|
34
|
+
// measurements showed that precalculating the number of tokens and
|
|
35
|
+
// reserving space for them was in fact slower than just letting
|
|
36
|
+
// the vector grow naturally.
|
|
37
|
+
std::vector<std::string> tokens;
|
|
38
|
+
|
|
39
|
+
auto it = begin;
|
|
40
|
+
while (it != end) {
|
|
41
|
+
auto tmp = std::find(it, end, delim);
|
|
42
|
+
tokens.emplace_back(it, tmp);
|
|
43
|
+
if (tmp == end) {
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
it = tmp;
|
|
47
|
+
++it;
|
|
48
|
+
}
|
|
49
|
+
return tokens;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Split a string at delimiter and return vector of parts.
|
|
54
|
+
*/
|
|
55
|
+
inline std::vector<std::string> split(std::string_view s, char delim = ' ') {
|
|
56
|
+
return split(s.begin(), s.end(), delim);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Determines whether @a str ends with @a suffix.
|
|
61
|
+
*/
|
|
62
|
+
inline bool ends_with(std::string_view str, std::string_view suffix) {
|
|
63
|
+
return str.size() >= suffix.size()
|
|
64
|
+
&& str.compare(str.size() - suffix.size(), suffix.size(), suffix) == 0;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Determines whether @a str starts with @a prefix.
|
|
69
|
+
*/
|
|
70
|
+
inline bool starts_with(std::string_view str, std::string_view prefix) {
|
|
71
|
+
return str.size() >= prefix.size() && str.compare(0, prefix.size(), prefix) == 0;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
} /* namespace StringTools */
|
|
75
|
+
} /* namespace Aux */
|
|
76
|
+
#endif // NETWORKIT_AUXILIARY_STRING_TOOLS_HPP_
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
#ifndef NETWORKIT_AUXILIARY_TEMPLATE_UTILS_HPP_
|
|
2
|
+
#define NETWORKIT_AUXILIARY_TEMPLATE_UTILS_HPP_
|
|
3
|
+
|
|
4
|
+
#include <type_traits>
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* The macro makes the use of std::enable_if much easier by removing all the boilerplate.
|
|
8
|
+
*
|
|
9
|
+
* The 'what' argument must be a valid identifier that describes, what is required.
|
|
10
|
+
* Example: you want to require that T is an integer, than what should be something like
|
|
11
|
+
* T_is_integer
|
|
12
|
+
*
|
|
13
|
+
* The second argument must be a constant boolean expression. In order to allow templates that
|
|
14
|
+
* would otherwise confuse the preprocessor, this is passed as variadic argument (this is however
|
|
15
|
+
* an implementation detail and you should never actually pass more than one argument.
|
|
16
|
+
*/
|
|
17
|
+
#define AUX_REQUIRE(what, ...) class what = typename ::std::enable_if<__VA_ARGS__>::type
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* If two templates only differ in the default-values of their template-arguments
|
|
21
|
+
* C++ considers this to be a compilation-error. A simple way to prevent this is to
|
|
22
|
+
* add further defaulted template-arguments, which is what this macro provides in a
|
|
23
|
+
* semantic way.
|
|
24
|
+
*
|
|
25
|
+
* Example:
|
|
26
|
+
*
|
|
27
|
+
* template<typename T, AUX_REQUIRE(isInteger, [...])>
|
|
28
|
+
* void fun(T) {...}
|
|
29
|
+
*
|
|
30
|
+
* template<typename T, AUX_REQUIRE(isFloat, [...]), AUX_DUMMY_ARGUMENT>
|
|
31
|
+
* void fun(T) {...}
|
|
32
|
+
*
|
|
33
|
+
* Note however that it may often be a cleaner solution to use compile-time dispatching instead
|
|
34
|
+
* of hacks that envolve enable-if.
|
|
35
|
+
*/
|
|
36
|
+
#define AUX_DUMMY_ARGUMENT class = void
|
|
37
|
+
|
|
38
|
+
namespace Aux {
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* This is a backport of C++14 std::decay_t
|
|
42
|
+
*/
|
|
43
|
+
template <typename T>
|
|
44
|
+
using decay_t = typename std::decay<T>::type;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Returns the corresponding std::integral_constant<bool, B> to a boolean
|
|
48
|
+
* value B.
|
|
49
|
+
*/
|
|
50
|
+
template <bool B>
|
|
51
|
+
using boolToType = std::integral_constant<bool, B>;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* This is just a wrapper around std::is_same in order to provide a nicer interface.
|
|
55
|
+
*
|
|
56
|
+
* With C++14 this could use template-variables, but with C++11 we are stuck with
|
|
57
|
+
* constexpr-functions.
|
|
58
|
+
*/
|
|
59
|
+
template <typename T1, typename T2>
|
|
60
|
+
constexpr bool isSame() {
|
|
61
|
+
return std::is_same<T1, T2>::value;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Checks whether Derived is either a type that derives from Base or is identical to Base.
|
|
66
|
+
*
|
|
67
|
+
* This is very usefull for situations in which you work with iterator-traits or the like.
|
|
68
|
+
*/
|
|
69
|
+
template <typename Base, typename Derived>
|
|
70
|
+
constexpr bool isBaseOrSame() {
|
|
71
|
+
return isSame<Base, Derived>() || std::is_base_of<Base, Derived>::value;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
} // namespace Aux
|
|
75
|
+
|
|
76
|
+
#endif // NETWORKIT_AUXILIARY_TEMPLATE_UTILS_HPP_
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Timer.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 14.01.2013
|
|
5
|
+
* Author: Christian Staudt (christian.staudt@kit.edu)
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef NETWORKIT_AUXILIARY_TIMER_HPP_
|
|
9
|
+
#define NETWORKIT_AUXILIARY_TIMER_HPP_
|
|
10
|
+
|
|
11
|
+
#include <chrono>
|
|
12
|
+
#include <cstdint>
|
|
13
|
+
#include <string>
|
|
14
|
+
|
|
15
|
+
#include <networkit/auxiliary/Log.hpp>
|
|
16
|
+
|
|
17
|
+
namespace Aux {
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* A timer for running time measurements.
|
|
21
|
+
*/
|
|
22
|
+
class Timer {
|
|
23
|
+
public:
|
|
24
|
+
#ifdef __MIC__
|
|
25
|
+
using my_steady_clock = std::chrono::monotonic_clock;
|
|
26
|
+
#else
|
|
27
|
+
using my_steady_clock = std::chrono::steady_clock;
|
|
28
|
+
#endif // __MIC__
|
|
29
|
+
|
|
30
|
+
Timer() = default;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Start the clock.
|
|
34
|
+
* Returns the time at which the instance was started.
|
|
35
|
+
*/
|
|
36
|
+
my_steady_clock::time_point start() noexcept;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Stops the clock permanently for the instance of the Timer.
|
|
40
|
+
* Returns the time at which the instance was stopped.
|
|
41
|
+
*/
|
|
42
|
+
my_steady_clock::time_point stop() noexcept;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Returns a chrono::duration since the Timer was started.
|
|
46
|
+
* If stop() was called, the duration is between the start() and stop()
|
|
47
|
+
* calls is returned.
|
|
48
|
+
*/
|
|
49
|
+
std::chrono::duration<uint64_t, std::milli> elapsed() const noexcept;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Returns the number of milliseconds since the Timer was started.
|
|
53
|
+
* If stop() was called, the duration is between the start() and stop()
|
|
54
|
+
* calls is returned.
|
|
55
|
+
*/
|
|
56
|
+
uint64_t elapsedMilliseconds() const noexcept;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Returns the number of microseconds since the Timer was started.
|
|
60
|
+
* If stop() was called, the duration is between the start() and stop()
|
|
61
|
+
* calls is returned.
|
|
62
|
+
*/
|
|
63
|
+
uint64_t elapsedMicroseconds() const noexcept;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Returns the number of nanoseconds since the Timer was started.
|
|
67
|
+
* If stop() was called, the duration is between the start() and stop()
|
|
68
|
+
* calls is returned.
|
|
69
|
+
*/
|
|
70
|
+
uint64_t elapsedNanoseconds() const noexcept;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Returns the time at which the instance was started.
|
|
74
|
+
*/
|
|
75
|
+
my_steady_clock::time_point startTime() const noexcept;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Returns the time at which the instance was stopped.
|
|
79
|
+
*/
|
|
80
|
+
my_steady_clock::time_point stopTime() const noexcept;
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Returns a human-readable representation including the elapsed time and unit.
|
|
84
|
+
*/
|
|
85
|
+
std::string elapsedTag() const;
|
|
86
|
+
|
|
87
|
+
protected:
|
|
88
|
+
bool running{false}; //!< true if timer has been started and not stopped after that
|
|
89
|
+
my_steady_clock::time_point started; //!< time at which timer has been started
|
|
90
|
+
my_steady_clock::time_point stopped; //!< time at which timer has been stopped
|
|
91
|
+
|
|
92
|
+
/// If running returns now, otherwise the stop time
|
|
93
|
+
my_steady_clock::time_point stopTimeOrNow() const noexcept;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* A timer for running time measurements.
|
|
98
|
+
* Same as Timer but automatically starts on construction.
|
|
99
|
+
*/
|
|
100
|
+
class StartedTimer : public Timer {
|
|
101
|
+
public:
|
|
102
|
+
StartedTimer() : Timer() { start(); }
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* A timer for running time measurements within a scope.
|
|
107
|
+
*
|
|
108
|
+
* Same as Timer but automatically starts on construction and report on destruction.
|
|
109
|
+
*
|
|
110
|
+
* @code
|
|
111
|
+
* {
|
|
112
|
+
* Aux::ScopedTimer("Algorithm A"); // WRONG; will directly report without measuring the scope
|
|
113
|
+
* Aux::ScopedTimer someName("Algorithm B"); // OK: the named instance is valid until the end of
|
|
114
|
+
* the scope
|
|
115
|
+
* // some expensive operations
|
|
116
|
+
*
|
|
117
|
+
*
|
|
118
|
+
* } // <- Report time since creation of the timer object via Aux::Log
|
|
119
|
+
* @endcode
|
|
120
|
+
*
|
|
121
|
+
* @warning
|
|
122
|
+
* As the timer exploits RAII, it requires a named instance to extend its life time until the
|
|
123
|
+
* end of the current scope. In the example above "someName" is used. If the time measured seems
|
|
124
|
+
* too short, make you created a named instances.
|
|
125
|
+
*/
|
|
126
|
+
class LoggingTimer : public Timer {
|
|
127
|
+
public:
|
|
128
|
+
/**
|
|
129
|
+
* @param label The label printed out next to the measurement
|
|
130
|
+
* @param level Only measure if logging at the provided LogLevel is enabled during runtime.
|
|
131
|
+
* If logging at the given level is disable the Timer is very cheap to construct.
|
|
132
|
+
* If logging is disabled during construction or destruction, no message is shown.
|
|
133
|
+
*/
|
|
134
|
+
explicit LoggingTimer(std::string_view label = "",
|
|
135
|
+
Aux::Log::LogLevel level = Aux::Log::LogLevel::DEBUG);
|
|
136
|
+
~LoggingTimer();
|
|
137
|
+
|
|
138
|
+
private:
|
|
139
|
+
Aux::Log::LogLevel level;
|
|
140
|
+
std::string label;
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
} /* namespace Aux */
|
|
144
|
+
|
|
145
|
+
#endif // NETWORKIT_AUXILIARY_TIMER_HPP_
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
|
|
2
|
+
#ifndef NETWORKIT_AUXILIARY_VECTOR_COMPARATOR_HPP_
|
|
3
|
+
#define NETWORKIT_AUXILIARY_VECTOR_COMPARATOR_HPP_
|
|
4
|
+
|
|
5
|
+
#include <cstdint>
|
|
6
|
+
#include <vector>
|
|
7
|
+
|
|
8
|
+
namespace Aux {
|
|
9
|
+
|
|
10
|
+
// Implementation of vector-based comparators
|
|
11
|
+
|
|
12
|
+
template <class Type>
|
|
13
|
+
struct LessInVector {
|
|
14
|
+
LessInVector(const std::vector<Type> &vec) : vec(&vec) {}
|
|
15
|
+
bool operator()(uint64_t x, uint64_t y) const noexcept { return (*vec)[x] < (*vec)[y]; }
|
|
16
|
+
|
|
17
|
+
private:
|
|
18
|
+
const std::vector<Type> *vec;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
template <class Type>
|
|
22
|
+
struct GreaterInVector {
|
|
23
|
+
GreaterInVector(const std::vector<Type> &vec) : vec(&vec) {}
|
|
24
|
+
bool operator()(uint64_t x, uint64_t y) const noexcept { return (*vec)[x] > (*vec)[y]; }
|
|
25
|
+
|
|
26
|
+
private:
|
|
27
|
+
const std::vector<Type> *vec;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
} // namespace Aux
|
|
31
|
+
|
|
32
|
+
#endif // NETWORKIT_AUXILIARY_VECTOR_COMPARATOR_HPP_
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
|
|
2
|
+
#ifndef NETWORKIT_BASE_ALGORITHM_HPP_
|
|
3
|
+
#define NETWORKIT_BASE_ALGORITHM_HPP_
|
|
4
|
+
|
|
5
|
+
#include <stdexcept>
|
|
6
|
+
#include <string>
|
|
7
|
+
|
|
8
|
+
namespace NetworKit {
|
|
9
|
+
|
|
10
|
+
class Algorithm {
|
|
11
|
+
protected:
|
|
12
|
+
bool hasRun = false;
|
|
13
|
+
|
|
14
|
+
public:
|
|
15
|
+
virtual ~Algorithm() = default;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The generic run method which calls runImpl() and takes care of setting @ref hasRun to the
|
|
19
|
+
* appropriate value.
|
|
20
|
+
*/
|
|
21
|
+
virtual void run() = 0;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Indicates whether an algorithm has completed computation or not.
|
|
25
|
+
*
|
|
26
|
+
* @return The value of @ref hasRun.
|
|
27
|
+
*/
|
|
28
|
+
bool hasFinished() const noexcept { return hasRun; }
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Assure that the algorithm has been run, throws a std::runtime_error otherwise.
|
|
32
|
+
*/
|
|
33
|
+
void assureFinished() const {
|
|
34
|
+
if (!hasRun)
|
|
35
|
+
throw std::runtime_error("Error, run must be called first");
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
} // namespace NetworKit
|
|
40
|
+
|
|
41
|
+
#endif // NETWORKIT_BASE_ALGORITHM_HPP_
|