@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,524 @@
|
|
|
1
|
+
/*******************************************************************************
|
|
2
|
+
* tlx/delegate.hpp
|
|
3
|
+
*
|
|
4
|
+
* Replacement for std::function with ideas and base code borrowed from
|
|
5
|
+
* http://codereview.stackexchange.com/questions/14730/impossibly-fast-delegate
|
|
6
|
+
* Massively rewritten, commented, simplified, and improved.
|
|
7
|
+
*
|
|
8
|
+
* Part of tlx - http://panthema.net/tlx
|
|
9
|
+
*
|
|
10
|
+
* Copyright (C) 2015 Timo Bingmann <tb@panthema.net>
|
|
11
|
+
*
|
|
12
|
+
* All rights reserved. Published under the Boost Software License, Version 1.0
|
|
13
|
+
******************************************************************************/
|
|
14
|
+
|
|
15
|
+
#ifndef TLX_DELEGATE_HEADER
|
|
16
|
+
#define TLX_DELEGATE_HEADER
|
|
17
|
+
|
|
18
|
+
#include <algorithm>
|
|
19
|
+
#include <cassert>
|
|
20
|
+
#include <cstddef>
|
|
21
|
+
#include <memory>
|
|
22
|
+
#include <type_traits>
|
|
23
|
+
#include <utility>
|
|
24
|
+
|
|
25
|
+
namespace tlx {
|
|
26
|
+
|
|
27
|
+
template <typename T, typename Allocator = std::allocator<void> >
|
|
28
|
+
class Delegate;
|
|
29
|
+
|
|
30
|
+
/*!
|
|
31
|
+
* This is a faster replacement than std::function. Besides being faster and
|
|
32
|
+
* doing less allocations when used correctly, we use it in places where
|
|
33
|
+
* move-only lambda captures are necessary. std::function is required by the
|
|
34
|
+
* standard to be copy-constructible, and hence does not allow move-only
|
|
35
|
+
* lambda captures.
|
|
36
|
+
*
|
|
37
|
+
* A Delegate contains a reference to any of the following callable objects:
|
|
38
|
+
* - an immediate function (called via one indirection)
|
|
39
|
+
* - a mutable function pointer (copied into the Delegate)
|
|
40
|
+
* - an immediate class::method call (called via one indirection)
|
|
41
|
+
* - a functor object (the whole object is copied into the Delegate)
|
|
42
|
+
*
|
|
43
|
+
* All callable objects must have the signature ReturnType(Arguments ...). If a
|
|
44
|
+
* callable has this signature, it can be bound to the Delegate.
|
|
45
|
+
*
|
|
46
|
+
* To implement all this the Delegate contains one pointer to a "caller stub"
|
|
47
|
+
* function, which depends on the contained object and can be an immediate
|
|
48
|
+
* function call, a pointer to the object associated with the callable, and a
|
|
49
|
+
* memory pointer (managed by shared_ptr) for holding larger callables that need
|
|
50
|
+
* to be copied.
|
|
51
|
+
*
|
|
52
|
+
* A functor object can be a lambda function with its capture, an internally
|
|
53
|
+
* wrapped mutable class::method class stored as pair<object, method_ptr>, or
|
|
54
|
+
* any other old-school functor object.
|
|
55
|
+
*
|
|
56
|
+
* Delegates can be constructed similar to std::function.
|
|
57
|
+
\code
|
|
58
|
+
// in defining the Delegate we decide the ReturnType(Arguments ...) signature
|
|
59
|
+
using MyDelegate = Delegate<int(double)>;
|
|
60
|
+
|
|
61
|
+
// this is a plain function bound to the Delegate as a function pointer
|
|
62
|
+
int func(double a) { return a + 10; }
|
|
63
|
+
MyDelegate d1 = MyDelegate(func);
|
|
64
|
+
|
|
65
|
+
class AClass {
|
|
66
|
+
public:
|
|
67
|
+
int method(double d) { return d * d; }
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
AClass a;
|
|
71
|
+
|
|
72
|
+
// this is class::method bound to the Delegate via indirection, warning: this
|
|
73
|
+
// creates a needless allocation, because it is stored as pair<Class,Method>
|
|
74
|
+
MyDelegate d2 = MyDelegate(a, &AClass::method);
|
|
75
|
+
// same as above
|
|
76
|
+
MyDelegate d3 = MyDelegate::make(a, &AClass::method);
|
|
77
|
+
|
|
78
|
+
// class::method bound to the Delegate via instantiation of an immediate caller
|
|
79
|
+
// to the method AClass::method. this is preferred and does not require any
|
|
80
|
+
// memory allocation!
|
|
81
|
+
MyDelegate d4 = MyDelegate::make<AClass, &AClass::method>(a);
|
|
82
|
+
|
|
83
|
+
// a lambda with capture bound to the Delegate, this always performs a memory
|
|
84
|
+
// allocation to copy the capture closure.
|
|
85
|
+
double offset = 42.0;
|
|
86
|
+
MyDelegate d5 = [&](double a) { return a + offset; };
|
|
87
|
+
\endcode
|
|
88
|
+
*
|
|
89
|
+
*/
|
|
90
|
+
template <typename R, typename... A, typename Allocator>
|
|
91
|
+
class Delegate<R(A...), Allocator>
|
|
92
|
+
{
|
|
93
|
+
public:
|
|
94
|
+
//! default constructor
|
|
95
|
+
Delegate() = default;
|
|
96
|
+
|
|
97
|
+
//! copy constructor
|
|
98
|
+
Delegate(const Delegate&) = default;
|
|
99
|
+
|
|
100
|
+
//! move constructor
|
|
101
|
+
Delegate(Delegate&&) = default;
|
|
102
|
+
|
|
103
|
+
//! copy assignment operator
|
|
104
|
+
Delegate& operator=(const Delegate&) = default;
|
|
105
|
+
|
|
106
|
+
//! move assignment operator
|
|
107
|
+
Delegate& operator=(Delegate&&) = default;
|
|
108
|
+
|
|
109
|
+
//! \name Immediate Function Calls
|
|
110
|
+
//! \{
|
|
111
|
+
|
|
112
|
+
//! construction from an immediate function with no object or pointer.
|
|
113
|
+
template <R (*const Function)(A...)>
|
|
114
|
+
static Delegate make() noexcept
|
|
115
|
+
{
|
|
116
|
+
return Delegate(function_caller<Function>, nullptr);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
//! \}
|
|
120
|
+
|
|
121
|
+
//! \name Function Pointer Calls
|
|
122
|
+
//! \{
|
|
123
|
+
|
|
124
|
+
//! constructor from a plain function pointer with no object.
|
|
125
|
+
explicit Delegate(R (*const function_ptr)(A...)) noexcept
|
|
126
|
+
: Delegate(function_ptr_caller,
|
|
127
|
+
*reinterpret_cast<void* const*>(&function_ptr))
|
|
128
|
+
{
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
static_assert(sizeof(void*) == sizeof(void (*)(void)),
|
|
132
|
+
"object pointer and function pointer sizes must equal");
|
|
133
|
+
|
|
134
|
+
//! construction from a plain function pointer with no object.
|
|
135
|
+
static Delegate make(R (*const function_ptr)(A...)) noexcept
|
|
136
|
+
{
|
|
137
|
+
return Delegate(function_ptr);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
//! \}
|
|
141
|
+
|
|
142
|
+
//! \name Immediate Class::Method Calls with Objects
|
|
143
|
+
//! \{
|
|
144
|
+
|
|
145
|
+
//! construction for an immediate class::method with class object
|
|
146
|
+
template <class C, R (C::*const Method)(A...)>
|
|
147
|
+
static Delegate make(C* const object_ptr) noexcept
|
|
148
|
+
{
|
|
149
|
+
return Delegate(method_caller<C, Method>, object_ptr);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
//! construction for an immediate class::method with class object
|
|
153
|
+
template <class C, R (C::*const Method)(A...) const>
|
|
154
|
+
static Delegate make(const C* const object_ptr) noexcept
|
|
155
|
+
{
|
|
156
|
+
return Delegate(const_method_caller<C, Method>,
|
|
157
|
+
const_cast<C*>(object_ptr));
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
//! construction for an immediate class::method with class object by
|
|
161
|
+
//! reference
|
|
162
|
+
template <class C, R (C::*const Method)(A...)>
|
|
163
|
+
static Delegate make(C& object) noexcept
|
|
164
|
+
{
|
|
165
|
+
return Delegate(method_caller<C, Method>, &object);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
//! construction for an immediate class::method with class object by
|
|
169
|
+
//! reference
|
|
170
|
+
template <class C, R (C::*const Method)(A...) const>
|
|
171
|
+
static Delegate make(const C& object) noexcept
|
|
172
|
+
{
|
|
173
|
+
return Delegate(const_method_caller<C, Method>,
|
|
174
|
+
const_cast<C*>(&object));
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
//! \}
|
|
178
|
+
|
|
179
|
+
//! \name Lambdas with Captures and Wrapped Class::Method Calls with Objects
|
|
180
|
+
//! \{
|
|
181
|
+
|
|
182
|
+
//! constructor from any functor object T, which may be a lambda with
|
|
183
|
+
//! capture or a MemberPair or ConstMemberPair wrapper.
|
|
184
|
+
template <typename T,
|
|
185
|
+
typename = typename std::enable_if<!std::is_same<
|
|
186
|
+
Delegate, typename std::decay<T>::type>::value>::type>
|
|
187
|
+
Delegate(T&& f)
|
|
188
|
+
: caller_(functor_caller<typename std::decay<T>::type>),
|
|
189
|
+
store_(
|
|
190
|
+
// allocate memory for T in shared_ptr with appropriate deleter
|
|
191
|
+
typename std::allocator_traits<Allocator>::template rebind_alloc<
|
|
192
|
+
typename std::decay<T>::type>{}
|
|
193
|
+
.allocate(1),
|
|
194
|
+
store_deleter<typename std::decay<T>::type>, Allocator())
|
|
195
|
+
{
|
|
196
|
+
using Functor = typename std::decay<T>::type;
|
|
197
|
+
using Rebind = typename std::allocator_traits<
|
|
198
|
+
Allocator>::template rebind_alloc<Functor>;
|
|
199
|
+
|
|
200
|
+
// copy-construct T into shared_ptr memory.
|
|
201
|
+
Rebind rebind{};
|
|
202
|
+
std::allocator_traits<Rebind>::construct(
|
|
203
|
+
rebind, static_cast<Functor*>(store_.get()),
|
|
204
|
+
Functor(std::forward<T>(f)));
|
|
205
|
+
|
|
206
|
+
object_ptr_ = store_.get();
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
//! constructor from any functor object T, which may be a lambda with
|
|
210
|
+
//! capture or a MemberPair or ConstMemberPair wrapper.
|
|
211
|
+
template <typename T>
|
|
212
|
+
static Delegate make(T&& f)
|
|
213
|
+
{
|
|
214
|
+
return std::forward<T>(f);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
//! constructor for wrapping a class::method with object pointer.
|
|
218
|
+
template <class C>
|
|
219
|
+
Delegate(C* const object_ptr, R (C::*const method_ptr)(A...))
|
|
220
|
+
: Delegate(MemberPair<C>(object_ptr, method_ptr))
|
|
221
|
+
{
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
//! constructor for wrapping a const class::method with object pointer.
|
|
225
|
+
template <class C>
|
|
226
|
+
Delegate(C* const object_ptr, R (C::*const method_ptr)(A...) const)
|
|
227
|
+
: Delegate(ConstMemberPair<C>(object_ptr, method_ptr))
|
|
228
|
+
{
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
//! constructor for wrapping a class::method with object reference.
|
|
232
|
+
template <class C>
|
|
233
|
+
Delegate(C& object, R (C::*const method_ptr)(A...))
|
|
234
|
+
: Delegate(MemberPair<C>(&object, method_ptr))
|
|
235
|
+
{
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
//! constructor for wrapping a const class::method with object reference.
|
|
239
|
+
template <class C>
|
|
240
|
+
Delegate(const C& object, R (C::*const method_ptr)(A...) const)
|
|
241
|
+
: Delegate(ConstMemberPair<C>(&object, method_ptr))
|
|
242
|
+
{
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
//! constructor for wrapping a class::method with object pointer.
|
|
246
|
+
template <class C>
|
|
247
|
+
static Delegate make(C* const object_ptr, R (C::*const method_ptr)(A...))
|
|
248
|
+
{
|
|
249
|
+
return MemberPair<C>(object_ptr, method_ptr);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
//! constructor for wrapping a const class::method with object pointer.
|
|
253
|
+
template <class C>
|
|
254
|
+
static Delegate make(const C* const object_ptr,
|
|
255
|
+
R (C::*const method_ptr)(A...) const)
|
|
256
|
+
{
|
|
257
|
+
return ConstMemberPair<C>(object_ptr, method_ptr);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
//! constructor for wrapping a class::method with object reference.
|
|
261
|
+
template <class C>
|
|
262
|
+
static Delegate make(C& object, R (C::*const method_ptr)(A...))
|
|
263
|
+
{
|
|
264
|
+
return MemberPair<C>(&object, method_ptr);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
//! constructor for wrapping a const class::method with object reference.
|
|
268
|
+
template <class C>
|
|
269
|
+
static Delegate make(const C& object, R (C::*const method_ptr)(A...) const)
|
|
270
|
+
{
|
|
271
|
+
return ConstMemberPair<C>(&object, method_ptr);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
//! \}
|
|
275
|
+
|
|
276
|
+
//! \name Miscellaneous
|
|
277
|
+
//! \{
|
|
278
|
+
|
|
279
|
+
//! reset delegate to invalid.
|
|
280
|
+
void reset()
|
|
281
|
+
{
|
|
282
|
+
caller_ = nullptr;
|
|
283
|
+
store_.reset();
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
void reset_caller() noexcept
|
|
287
|
+
{
|
|
288
|
+
caller_ = nullptr;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
//! swap delegates
|
|
292
|
+
void swap(Delegate& other) noexcept
|
|
293
|
+
{
|
|
294
|
+
std::swap(*this, other);
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
//! compare delegate with another
|
|
298
|
+
bool operator==(const Delegate& rhs) const noexcept
|
|
299
|
+
{
|
|
300
|
+
return (object_ptr_ == rhs.object_ptr_) && (caller_ == rhs.caller_);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
//! compare delegate with another
|
|
304
|
+
bool operator!=(const Delegate& rhs) const noexcept
|
|
305
|
+
{
|
|
306
|
+
return !operator==(rhs);
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
//! compare delegate with another
|
|
310
|
+
bool operator<(const Delegate& rhs) const noexcept
|
|
311
|
+
{
|
|
312
|
+
return (object_ptr_ < rhs.object_ptr_) ||
|
|
313
|
+
((object_ptr_ == rhs.object_ptr_) &&
|
|
314
|
+
(reinterpret_cast<const void*>(caller_) <
|
|
315
|
+
reinterpret_cast<const void*>(rhs.caller_)));
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
//! compare delegate with another
|
|
319
|
+
bool operator==(const std::nullptr_t) const noexcept
|
|
320
|
+
{
|
|
321
|
+
return caller_ == nullptr;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
//! compare delegate with another
|
|
325
|
+
bool operator!=(const std::nullptr_t) const noexcept
|
|
326
|
+
{
|
|
327
|
+
return caller_ != nullptr;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
//! explicit conversion to bool -> valid or invalid.
|
|
331
|
+
explicit operator bool() const noexcept
|
|
332
|
+
{
|
|
333
|
+
return caller_ != nullptr;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
//! most important method: call. The call is forwarded to the selected
|
|
337
|
+
//! function caller.
|
|
338
|
+
R operator()(A... args) const
|
|
339
|
+
{
|
|
340
|
+
assert(caller_);
|
|
341
|
+
return caller_(object_ptr_, std::forward<A>(args)...);
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
//! \}
|
|
345
|
+
|
|
346
|
+
private:
|
|
347
|
+
//! type of the function caller pointer.
|
|
348
|
+
using Caller = R (*)(void*, A&&...);
|
|
349
|
+
|
|
350
|
+
using Deleter = void (*)(void*);
|
|
351
|
+
|
|
352
|
+
//! pointer to function caller which depends on the type in object_ptr_. The
|
|
353
|
+
//! caller_ contains a plain pointer to either function_caller, a
|
|
354
|
+
//! function_ptr_caller, a method_caller, a const_method_caller, or a
|
|
355
|
+
//! functor_caller.
|
|
356
|
+
Caller caller_ = nullptr;
|
|
357
|
+
|
|
358
|
+
//! pointer to object held by the delegate: for plain function pointers it
|
|
359
|
+
//! is the function pointer, for class::methods it is a pointer to the class
|
|
360
|
+
//! instance, for functors it is a pointer to the shared_ptr store_
|
|
361
|
+
//! contents.
|
|
362
|
+
void* object_ptr_ = nullptr;
|
|
363
|
+
|
|
364
|
+
//! shared_ptr used to contain a memory object containing the callable, like
|
|
365
|
+
//! lambdas with closures, or our own wrappers.
|
|
366
|
+
std::shared_ptr<void> store_;
|
|
367
|
+
|
|
368
|
+
//! private constructor for plain
|
|
369
|
+
Delegate(const Caller& m, void* const obj) noexcept : caller_(m),
|
|
370
|
+
object_ptr_(obj)
|
|
371
|
+
{
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
//! deleter for stored functor closures
|
|
375
|
+
template <typename T>
|
|
376
|
+
static void store_deleter(void* const ptr)
|
|
377
|
+
{
|
|
378
|
+
using Rebind =
|
|
379
|
+
typename std::allocator_traits<Allocator>::template rebind_alloc<T>;
|
|
380
|
+
Rebind rebind{};
|
|
381
|
+
|
|
382
|
+
std::allocator_traits<Rebind>::destroy(rebind, static_cast<T*>(ptr));
|
|
383
|
+
std::allocator_traits<Rebind>::deallocate(rebind, static_cast<T*>(ptr),
|
|
384
|
+
1);
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
//! \name Callers for simple function and immediate class::method calls.
|
|
388
|
+
//! \{
|
|
389
|
+
|
|
390
|
+
//! caller for an immediate function with no object or pointer.
|
|
391
|
+
template <R (*Function)(A...)>
|
|
392
|
+
static R function_caller(void* const, A&&... args)
|
|
393
|
+
{
|
|
394
|
+
return Function(std::forward<A>(args)...);
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
//! caller for a plain function pointer.
|
|
398
|
+
static R function_ptr_caller(void* const object_ptr, A&&... args)
|
|
399
|
+
{
|
|
400
|
+
return (*reinterpret_cast<R (*const*)(A...)>(&object_ptr))(args...);
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
//! function caller for immediate class::method function calls
|
|
404
|
+
template <class C, R (C::*method_ptr)(A...)>
|
|
405
|
+
static R method_caller(void* const object_ptr, A&&... args)
|
|
406
|
+
{
|
|
407
|
+
return (static_cast<C*>(object_ptr)->*method_ptr)(
|
|
408
|
+
std::forward<A>(args)...);
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
//! function caller for immediate const class::method functions calls.
|
|
412
|
+
template <class C, R (C::*method_ptr)(A...) const>
|
|
413
|
+
static R const_method_caller(void* const object_ptr, A&&... args)
|
|
414
|
+
{
|
|
415
|
+
return (static_cast<const C*>(object_ptr)->*method_ptr)(
|
|
416
|
+
std::forward<A>(args)...);
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
//! \}
|
|
420
|
+
|
|
421
|
+
//! \name Wrappers for indirect class::method calls.
|
|
422
|
+
//! \{
|
|
423
|
+
|
|
424
|
+
//! wrappers for indirect class::method calls containing (object,
|
|
425
|
+
//! method_ptr)
|
|
426
|
+
template <class C>
|
|
427
|
+
using MemberPair = std::pair<C* const, R (C::*const)(A...)>;
|
|
428
|
+
|
|
429
|
+
//! wrappers for indirect const class::method calls containing (object,
|
|
430
|
+
//! const method_ptr)
|
|
431
|
+
template <class C>
|
|
432
|
+
using ConstMemberPair =
|
|
433
|
+
std::pair<const C* const, R (C::*const)(A...) const>;
|
|
434
|
+
|
|
435
|
+
//! template for class::function selector
|
|
436
|
+
template <typename>
|
|
437
|
+
struct IsMemberPair : std::false_type
|
|
438
|
+
{
|
|
439
|
+
};
|
|
440
|
+
|
|
441
|
+
//! specialization for class::function selector
|
|
442
|
+
template <class C>
|
|
443
|
+
struct IsMemberPair<MemberPair<C> > : std::true_type
|
|
444
|
+
{
|
|
445
|
+
};
|
|
446
|
+
|
|
447
|
+
//! template for const class::function selector
|
|
448
|
+
template <typename>
|
|
449
|
+
struct IsConstMemberPair : std::false_type
|
|
450
|
+
{
|
|
451
|
+
};
|
|
452
|
+
|
|
453
|
+
//! specialization for const class::function selector
|
|
454
|
+
template <class C>
|
|
455
|
+
struct IsConstMemberPair<ConstMemberPair<C> > : std::true_type
|
|
456
|
+
{
|
|
457
|
+
};
|
|
458
|
+
|
|
459
|
+
//! function caller for functor class.
|
|
460
|
+
template <typename T>
|
|
461
|
+
static typename std::enable_if<
|
|
462
|
+
!(IsMemberPair<T>::value || IsConstMemberPair<T>::value), R>::type
|
|
463
|
+
functor_caller(void* const object_ptr, A&&... args)
|
|
464
|
+
{
|
|
465
|
+
return (*static_cast<T*>(object_ptr))(std::forward<A>(args)...);
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
//! function caller for const functor class.
|
|
469
|
+
template <typename T>
|
|
470
|
+
static typename std::enable_if<
|
|
471
|
+
(IsMemberPair<T>::value || IsConstMemberPair<T>::value), R>::type
|
|
472
|
+
functor_caller(void* const object_ptr, A&&... args)
|
|
473
|
+
{
|
|
474
|
+
return (static_cast<T*>(object_ptr)->first->*static_cast<T*>(object_ptr)
|
|
475
|
+
->second)(
|
|
476
|
+
std::forward<A>(args)...);
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
//! \}
|
|
480
|
+
};
|
|
481
|
+
|
|
482
|
+
//! make template alias due to similarity with std::function
|
|
483
|
+
template <typename T, typename Allocator = std::allocator<void> >
|
|
484
|
+
using delegate = Delegate<T, Allocator>;
|
|
485
|
+
|
|
486
|
+
//! constructor for wrapping a class::method with object pointer.
|
|
487
|
+
template <class C, typename R, typename... A>
|
|
488
|
+
inline Delegate<R(A...)> make_delegate(C* const object_ptr,
|
|
489
|
+
R (C::*const method_ptr)(A...)) noexcept
|
|
490
|
+
{
|
|
491
|
+
return Delegate<R(A...)>::template make<C>(object_ptr, method_ptr);
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
//! constructor for wrapping a const class::method with object pointer.
|
|
495
|
+
template <class C, typename R, typename... A>
|
|
496
|
+
inline Delegate<R(A...)> make_delegate(C* const object_ptr,
|
|
497
|
+
R (C::*const method_ptr)(A...)
|
|
498
|
+
const) noexcept
|
|
499
|
+
{
|
|
500
|
+
return Delegate<R(A...)>::template make<C>(object_ptr, method_ptr);
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
//! constructor for wrapping a class::method with object reference.
|
|
504
|
+
template <class C, typename R, typename... A>
|
|
505
|
+
inline Delegate<R(A...)> make_delegate(C& object_ptr,
|
|
506
|
+
R (C::*const method_ptr)(A...)) noexcept
|
|
507
|
+
{
|
|
508
|
+
return Delegate<R(A...)>::template make<C>(object_ptr, method_ptr);
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
//! constructor for wrapping a const class::method with object reference.
|
|
512
|
+
template <class C, typename R, typename... A>
|
|
513
|
+
inline Delegate<R(A...)> make_delegate(const C& object_ptr,
|
|
514
|
+
R (C::*const method_ptr)(A...)
|
|
515
|
+
const) noexcept
|
|
516
|
+
{
|
|
517
|
+
return Delegate<R(A...)>::template make<C>(object_ptr, method_ptr);
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
} // namespace tlx
|
|
521
|
+
|
|
522
|
+
#endif // !TLX_DELEGATE_HEADER
|
|
523
|
+
|
|
524
|
+
/******************************************************************************/
|