@graphty/algorithms 2.1.1 → 2.2.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 +139 -50
- package/dist/algorithms.js +15260 -10390
- package/dist/algorithms.js.map +1 -1
- package/dist/algorithms.standalone.js +26675 -21542
- package/dist/algorithms.standalone.js.map +1 -1
- package/dist/src/algorithms/centrality/betweenness.d.ts +18 -0
- package/dist/src/algorithms/centrality/betweenness.d.ts.map +1 -1
- package/dist/src/algorithms/centrality/betweenness.js +40 -1
- package/dist/src/algorithms/centrality/betweenness.js.map +1 -1
- package/dist/src/algorithms/centrality/closeness.d.ts +20 -0
- package/dist/src/algorithms/centrality/closeness.d.ts.map +1 -1
- package/dist/src/algorithms/centrality/closeness.js +93 -8
- package/dist/src/algorithms/centrality/closeness.js.map +1 -1
- package/dist/src/algorithms/centrality/degree.d.ts +9 -0
- package/dist/src/algorithms/centrality/degree.d.ts.map +1 -1
- package/dist/src/algorithms/centrality/degree.js +18 -0
- package/dist/src/algorithms/centrality/degree.js.map +1 -1
- package/dist/src/algorithms/centrality/eigenvector.d.ts +10 -0
- package/dist/src/algorithms/centrality/eigenvector.d.ts.map +1 -1
- package/dist/src/algorithms/centrality/eigenvector.js +29 -0
- package/dist/src/algorithms/centrality/eigenvector.js.map +1 -1
- package/dist/src/algorithms/centrality/hits.d.ts +9 -0
- package/dist/src/algorithms/centrality/hits.d.ts.map +1 -1
- package/dist/src/algorithms/centrality/hits.js +23 -0
- package/dist/src/algorithms/centrality/hits.js.map +1 -1
- package/dist/src/algorithms/centrality/katz.d.ts +9 -0
- package/dist/src/algorithms/centrality/katz.d.ts.map +1 -1
- package/dist/src/algorithms/centrality/katz.js +31 -0
- package/dist/src/algorithms/centrality/katz.js.map +1 -1
- package/dist/src/algorithms/centrality/pagerank.d.ts +13 -13
- package/dist/src/algorithms/centrality/pagerank.d.ts.map +1 -1
- package/dist/src/algorithms/centrality/pagerank.js +47 -10
- package/dist/src/algorithms/centrality/pagerank.js.map +1 -1
- package/dist/src/algorithms/community/girvan-newman-legacy.d.ts +27 -0
- package/dist/src/algorithms/community/girvan-newman-legacy.d.ts.map +1 -0
- package/dist/src/algorithms/community/girvan-newman-legacy.js +335 -0
- package/dist/src/algorithms/community/girvan-newman-legacy.js.map +1 -0
- package/dist/src/algorithms/community/girvan-newman.d.ts +5 -3
- package/dist/src/algorithms/community/girvan-newman.d.ts.map +1 -1
- package/dist/src/algorithms/community/girvan-newman.js +34 -308
- package/dist/src/algorithms/community/girvan-newman.js.map +1 -1
- package/dist/src/algorithms/community/label-propagation.d.ts +9 -6
- package/dist/src/algorithms/community/label-propagation.d.ts.map +1 -1
- package/dist/src/algorithms/community/label-propagation.js +24 -110
- package/dist/src/algorithms/community/label-propagation.js.map +1 -1
- package/dist/src/algorithms/components/connected.d.ts.map +1 -1
- package/dist/src/algorithms/components/connected.js +28 -77
- package/dist/src/algorithms/components/connected.js.map +1 -1
- package/dist/src/algorithms/mst/kruskal.d.ts.map +1 -1
- package/dist/src/algorithms/mst/kruskal.js +59 -3
- package/dist/src/algorithms/mst/kruskal.js.map +1 -1
- package/dist/src/algorithms/shortest-path/bellman-ford.d.ts.map +1 -1
- package/dist/src/algorithms/shortest-path/bellman-ford.js +46 -0
- package/dist/src/algorithms/shortest-path/bellman-ford.js.map +1 -1
- package/dist/src/algorithms/shortest-path/dijkstra.d.ts.map +1 -1
- package/dist/src/algorithms/shortest-path/dijkstra.js +27 -0
- package/dist/src/algorithms/shortest-path/dijkstra.js.map +1 -1
- package/dist/src/algorithms/shortest-path/floyd-warshall.d.ts +15 -5
- package/dist/src/algorithms/shortest-path/floyd-warshall.d.ts.map +1 -1
- package/dist/src/algorithms/shortest-path/floyd-warshall.js +97 -107
- package/dist/src/algorithms/shortest-path/floyd-warshall.js.map +1 -1
- package/dist/src/algorithms/traversal/bfs-unified.d.ts +2 -12
- package/dist/src/algorithms/traversal/bfs-unified.d.ts.map +1 -1
- package/dist/src/algorithms/traversal/bfs-unified.js +47 -308
- package/dist/src/algorithms/traversal/bfs-unified.js.map +1 -1
- package/dist/src/algorithms/traversal/bfs-variants.d.ts.map +1 -1
- package/dist/src/algorithms/traversal/bfs-variants.js +5 -25
- package/dist/src/algorithms/traversal/bfs-variants.js.map +1 -1
- package/dist/src/algorithms/traversal/bfs.d.ts +0 -3
- package/dist/src/algorithms/traversal/bfs.d.ts.map +1 -1
- package/dist/src/algorithms/traversal/bfs.js +0 -4
- package/dist/src/algorithms/traversal/bfs.js.map +1 -1
- package/dist/src/algorithms/traversal/dfs.d.ts.map +1 -1
- package/dist/src/algorithms/traversal/dfs.js +33 -154
- package/dist/src/algorithms/traversal/dfs.js.map +1 -1
- package/dist/src/clustering/hierarchical-legacy.d.ts +56 -0
- package/dist/src/clustering/hierarchical-legacy.d.ts.map +1 -0
- package/dist/src/clustering/hierarchical-legacy.js +441 -0
- package/dist/src/clustering/hierarchical-legacy.js.map +1 -0
- package/dist/src/clustering/hierarchical.d.ts +7 -39
- package/dist/src/clustering/hierarchical.d.ts.map +1 -1
- package/dist/src/clustering/hierarchical.js +56 -417
- package/dist/src/clustering/hierarchical.js.map +1 -1
- package/dist/src/clustering/k-core-legacy.d.ts +30 -0
- package/dist/src/clustering/k-core-legacy.d.ts.map +1 -0
- package/dist/src/clustering/k-core-legacy.js +191 -0
- package/dist/src/clustering/k-core-legacy.js.map +1 -0
- package/dist/src/clustering/k-core.d.ts +8 -7
- package/dist/src/clustering/k-core.d.ts.map +1 -1
- package/dist/src/clustering/k-core.js +33 -174
- package/dist/src/clustering/k-core.js.map +1 -1
- package/dist/src/clustering/mcl-legacy.d.ts +42 -0
- package/dist/src/clustering/mcl-legacy.d.ts.map +1 -0
- package/dist/src/clustering/mcl-legacy.js +386 -0
- package/dist/src/clustering/mcl-legacy.js.map +1 -0
- package/dist/src/clustering/mcl.d.ts +9 -32
- package/dist/src/clustering/mcl.d.ts.map +1 -1
- package/dist/src/clustering/mcl.js +48 -374
- package/dist/src/clustering/mcl.js.map +1 -1
- package/dist/src/index.d.ts +29 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/indexed/accelerator.d.ts +141 -11
- package/dist/src/indexed/accelerator.d.ts.map +1 -1
- package/dist/src/indexed/accelerator.js +319 -5
- package/dist/src/indexed/accelerator.js.map +1 -1
- package/dist/src/indexed/all-pairs.d.ts +59 -0
- package/dist/src/indexed/all-pairs.d.ts.map +1 -0
- package/dist/src/indexed/all-pairs.js +274 -0
- package/dist/src/indexed/all-pairs.js.map +1 -0
- package/dist/src/indexed/bellman-ford.d.ts +25 -0
- package/dist/src/indexed/bellman-ford.d.ts.map +1 -0
- package/dist/src/indexed/bellman-ford.js +59 -0
- package/dist/src/indexed/bellman-ford.js.map +1 -0
- package/dist/src/indexed/betweenness.d.ts +85 -0
- package/dist/src/indexed/betweenness.d.ts.map +1 -0
- package/dist/src/indexed/betweenness.js +188 -0
- package/dist/src/indexed/betweenness.js.map +1 -0
- package/dist/src/indexed/bfs.d.ts +69 -2
- package/dist/src/indexed/bfs.d.ts.map +1 -1
- package/dist/src/indexed/bfs.js +148 -1
- package/dist/src/indexed/bfs.js.map +1 -1
- package/dist/src/indexed/bipartite.d.ts +37 -0
- package/dist/src/indexed/bipartite.d.ts.map +1 -0
- package/dist/src/indexed/bipartite.js +54 -0
- package/dist/src/indexed/bipartite.js.map +1 -0
- package/dist/src/indexed/closeness.d.ts +49 -0
- package/dist/src/indexed/closeness.d.ts.map +1 -0
- package/dist/src/indexed/closeness.js +127 -0
- package/dist/src/indexed/closeness.js.map +1 -0
- package/dist/src/indexed/common-neighbors.d.ts +14 -1
- package/dist/src/indexed/common-neighbors.d.ts.map +1 -1
- package/dist/src/indexed/common-neighbors.js +24 -14
- package/dist/src/indexed/common-neighbors.js.map +1 -1
- package/dist/src/indexed/degree.d.ts +19 -0
- package/dist/src/indexed/degree.d.ts.map +1 -0
- package/dist/src/indexed/degree.js +45 -0
- package/dist/src/indexed/degree.js.map +1 -0
- package/dist/src/indexed/delta-pagerank.d.ts +145 -0
- package/dist/src/indexed/delta-pagerank.d.ts.map +1 -0
- package/dist/src/indexed/delta-pagerank.js +428 -0
- package/dist/src/indexed/delta-pagerank.js.map +1 -0
- package/dist/src/indexed/dfs.d.ts +55 -0
- package/dist/src/indexed/dfs.d.ts.map +1 -0
- package/dist/src/indexed/dfs.js +146 -0
- package/dist/src/indexed/dfs.js.map +1 -0
- package/dist/src/indexed/eigenvector.d.ts +48 -0
- package/dist/src/indexed/eigenvector.d.ts.map +1 -0
- package/dist/src/indexed/eigenvector.js +162 -0
- package/dist/src/indexed/eigenvector.js.map +1 -0
- package/dist/src/indexed/facade.d.ts +109 -0
- package/dist/src/indexed/facade.d.ts.map +1 -0
- package/dist/src/indexed/facade.js +204 -0
- package/dist/src/indexed/facade.js.map +1 -0
- package/dist/src/indexed/flow.d.ts +120 -0
- package/dist/src/indexed/flow.d.ts.map +1 -0
- package/dist/src/indexed/flow.js +377 -0
- package/dist/src/indexed/flow.js.map +1 -0
- package/dist/src/indexed/girvan-newman.d.ts +42 -0
- package/dist/src/indexed/girvan-newman.d.ts.map +1 -0
- package/dist/src/indexed/girvan-newman.js +90 -0
- package/dist/src/indexed/girvan-newman.js.map +1 -0
- package/dist/src/indexed/grsbm.d.ts +85 -0
- package/dist/src/indexed/grsbm.d.ts.map +1 -0
- package/dist/src/indexed/grsbm.js +287 -0
- package/dist/src/indexed/grsbm.js.map +1 -0
- package/dist/src/indexed/hierarchical.d.ts +69 -0
- package/dist/src/indexed/hierarchical.d.ts.map +1 -0
- package/dist/src/indexed/hierarchical.js +245 -0
- package/dist/src/indexed/hierarchical.js.map +1 -0
- package/dist/src/indexed/index.d.ts +29 -3
- package/dist/src/indexed/index.d.ts.map +1 -1
- package/dist/src/indexed/index.js +29 -3
- package/dist/src/indexed/index.js.map +1 -1
- package/dist/src/indexed/isomorphism.d.ts +42 -0
- package/dist/src/indexed/isomorphism.d.ts.map +1 -0
- package/dist/src/indexed/isomorphism.js +269 -0
- package/dist/src/indexed/isomorphism.js.map +1 -0
- package/dist/src/indexed/label-propagation.d.ts +134 -0
- package/dist/src/indexed/label-propagation.d.ts.map +1 -0
- package/dist/src/indexed/label-propagation.js +486 -0
- package/dist/src/indexed/label-propagation.js.map +1 -0
- package/dist/src/indexed/leiden.d.ts +52 -0
- package/dist/src/indexed/leiden.d.ts.map +1 -0
- package/dist/src/indexed/leiden.js +384 -0
- package/dist/src/indexed/leiden.js.map +1 -0
- package/dist/src/indexed/link-prediction.d.ts +147 -0
- package/dist/src/indexed/link-prediction.d.ts.map +1 -0
- package/dist/src/indexed/link-prediction.js +317 -0
- package/dist/src/indexed/link-prediction.js.map +1 -0
- package/dist/src/indexed/markov.d.ts +54 -0
- package/dist/src/indexed/markov.d.ts.map +1 -0
- package/dist/src/indexed/markov.js +284 -0
- package/dist/src/indexed/markov.js.map +1 -0
- package/dist/src/indexed/matching.d.ts +53 -0
- package/dist/src/indexed/matching.d.ts.map +1 -0
- package/dist/src/indexed/matching.js +139 -0
- package/dist/src/indexed/matching.js.map +1 -0
- package/dist/src/indexed/min-cut.d.ts +48 -0
- package/dist/src/indexed/min-cut.d.ts.map +1 -0
- package/dist/src/indexed/min-cut.js +175 -0
- package/dist/src/indexed/min-cut.js.map +1 -0
- package/dist/src/indexed/modularity.d.ts +34 -0
- package/dist/src/indexed/modularity.d.ts.map +1 -0
- package/dist/src/indexed/modularity.js +74 -0
- package/dist/src/indexed/modularity.js.map +1 -0
- package/dist/src/indexed/mst.d.ts +29 -1
- package/dist/src/indexed/mst.d.ts.map +1 -1
- package/dist/src/indexed/mst.js +62 -0
- package/dist/src/indexed/mst.js.map +1 -1
- package/dist/src/indexed/pagerank.d.ts +29 -6
- package/dist/src/indexed/pagerank.d.ts.map +1 -1
- package/dist/src/indexed/pagerank.js +107 -11
- package/dist/src/indexed/pagerank.js.map +1 -1
- package/dist/src/indexed/point-to-point.d.ts +53 -0
- package/dist/src/indexed/point-to-point.d.ts.map +1 -0
- package/dist/src/indexed/point-to-point.js +173 -0
- package/dist/src/indexed/point-to-point.js.map +1 -0
- package/dist/src/indexed/scc.d.ts +53 -0
- package/dist/src/indexed/scc.d.ts.map +1 -0
- package/dist/src/indexed/scc.js +110 -0
- package/dist/src/indexed/scc.js.map +1 -0
- package/dist/src/indexed/spectral.d.ts +61 -0
- package/dist/src/indexed/spectral.d.ts.map +1 -0
- package/dist/src/indexed/spectral.js +476 -0
- package/dist/src/indexed/spectral.js.map +1 -0
- package/dist/src/indexed/structures/bit-set.d.ts +45 -0
- package/dist/src/indexed/structures/bit-set.d.ts.map +1 -0
- package/dist/src/indexed/structures/bit-set.js +57 -0
- package/dist/src/indexed/structures/bit-set.js.map +1 -0
- package/dist/src/indexed/structures/max-heap.d.ts +52 -0
- package/dist/src/indexed/structures/max-heap.d.ts.map +1 -0
- package/dist/src/indexed/structures/max-heap.js +66 -0
- package/dist/src/indexed/structures/max-heap.js.map +1 -0
- package/dist/src/indexed/structures/min-heap.d.ts +30 -1
- package/dist/src/indexed/structures/min-heap.d.ts.map +1 -1
- package/dist/src/indexed/structures/min-heap.js +46 -6
- package/dist/src/indexed/structures/min-heap.js.map +1 -1
- package/dist/src/indexed/structures/ring-queue.d.ts +41 -0
- package/dist/src/indexed/structures/ring-queue.d.ts.map +1 -0
- package/dist/src/indexed/structures/ring-queue.js +64 -0
- package/dist/src/indexed/structures/ring-queue.js.map +1 -0
- package/dist/src/indexed/sync.d.ts +50 -0
- package/dist/src/indexed/sync.d.ts.map +1 -0
- package/dist/src/indexed/sync.js +175 -0
- package/dist/src/indexed/sync.js.map +1 -0
- package/dist/src/indexed/terahac.d.ts +58 -0
- package/dist/src/indexed/terahac.d.ts.map +1 -0
- package/dist/src/indexed/terahac.js +244 -0
- package/dist/src/indexed/terahac.js.map +1 -0
- package/dist/src/indexed/to-snapshot.d.ts +45 -2
- package/dist/src/indexed/to-snapshot.d.ts.map +1 -1
- package/dist/src/indexed/to-snapshot.js +140 -6
- package/dist/src/indexed/to-snapshot.js.map +1 -1
- package/dist/src/link-prediction/common-neighbors-legacy.d.ts +71 -0
- package/dist/src/link-prediction/common-neighbors-legacy.d.ts.map +1 -0
- package/dist/src/link-prediction/common-neighbors-legacy.js +172 -0
- package/dist/src/link-prediction/common-neighbors-legacy.js.map +1 -0
- package/dist/src/link-prediction/common-neighbors.d.ts +11 -19
- package/dist/src/link-prediction/common-neighbors.d.ts.map +1 -1
- package/dist/src/link-prediction/common-neighbors.js +56 -123
- package/dist/src/link-prediction/common-neighbors.js.map +1 -1
- package/dist/src/optimized/direction-optimized-bfs.d.ts +6 -0
- package/dist/src/optimized/direction-optimized-bfs.d.ts.map +1 -1
- package/dist/src/optimized/direction-optimized-bfs.js +6 -0
- package/dist/src/optimized/direction-optimized-bfs.js.map +1 -1
- package/dist/src/research/grsbm-legacy.d.ts +82 -0
- package/dist/src/research/grsbm-legacy.d.ts.map +1 -0
- package/dist/src/research/grsbm-legacy.js +416 -0
- package/dist/src/research/grsbm-legacy.js.map +1 -0
- package/dist/src/research/grsbm.d.ts +9 -66
- package/dist/src/research/grsbm.d.ts.map +1 -1
- package/dist/src/research/grsbm.js +67 -391
- package/dist/src/research/grsbm.js.map +1 -1
- package/dist/src/research/sync-legacy.d.ts +48 -0
- package/dist/src/research/sync-legacy.d.ts.map +1 -0
- package/dist/src/research/sync-legacy.js +337 -0
- package/dist/src/research/sync-legacy.js.map +1 -0
- package/dist/src/research/sync.d.ts +10 -32
- package/dist/src/research/sync.d.ts.map +1 -1
- package/dist/src/research/sync.js +28 -316
- package/dist/src/research/sync.js.map +1 -1
- package/package.json +4 -3
- package/src/algorithms/centrality/betweenness.ts +51 -1
- package/src/algorithms/centrality/closeness.ts +112 -12
- package/src/algorithms/centrality/degree.ts +19 -0
- package/src/algorithms/centrality/eigenvector.ts +34 -0
- package/src/algorithms/centrality/hits.ts +24 -0
- package/src/algorithms/centrality/katz.ts +32 -0
- package/src/algorithms/centrality/pagerank.ts +53 -13
- package/src/algorithms/community/girvan-newman-legacy.ts +414 -0
- package/src/algorithms/community/girvan-newman.ts +36 -386
- package/src/algorithms/community/label-propagation.ts +24 -133
- package/src/algorithms/components/connected.ts +28 -95
- package/src/algorithms/mst/kruskal.ts +65 -4
- package/src/algorithms/shortest-path/bellman-ford.ts +49 -0
- package/src/algorithms/shortest-path/dijkstra.ts +29 -0
- package/src/algorithms/shortest-path/floyd-warshall.ts +106 -136
- package/src/algorithms/traversal/bfs-unified.ts +52 -366
- package/src/algorithms/traversal/bfs-variants.ts +5 -28
- package/src/algorithms/traversal/bfs.ts +0 -4
- package/src/algorithms/traversal/dfs.ts +39 -182
- package/src/clustering/hierarchical-legacy.ts +551 -0
- package/src/clustering/hierarchical.ts +64 -520
- package/src/clustering/k-core-legacy.ts +229 -0
- package/src/clustering/k-core.ts +38 -209
- package/src/clustering/mcl-legacy.ts +498 -0
- package/src/clustering/mcl.ts +46 -479
- package/src/index.ts +90 -3
- package/src/indexed/accelerator.ts +502 -16
- package/src/indexed/all-pairs.ts +342 -0
- package/src/indexed/bellman-ford.ts +72 -0
- package/src/indexed/betweenness.ts +258 -0
- package/src/indexed/bfs.ts +189 -3
- package/src/indexed/bipartite.ts +77 -0
- package/src/indexed/closeness.ts +160 -0
- package/src/indexed/common-neighbors.ts +31 -14
- package/src/indexed/degree.ts +55 -0
- package/src/indexed/delta-pagerank.ts +513 -0
- package/src/indexed/dfs.ts +189 -0
- package/src/indexed/eigenvector.ts +202 -0
- package/src/indexed/facade.ts +229 -0
- package/src/indexed/flow.ts +500 -0
- package/src/indexed/girvan-newman.ts +120 -0
- package/src/indexed/grsbm.ts +390 -0
- package/src/indexed/hierarchical.ts +295 -0
- package/src/indexed/index.ts +94 -3
- package/src/indexed/isomorphism.ts +305 -0
- package/src/indexed/label-propagation.ts +582 -0
- package/src/indexed/leiden.ts +436 -0
- package/src/indexed/link-prediction.ts +399 -0
- package/src/indexed/markov.ts +324 -0
- package/src/indexed/matching.ts +192 -0
- package/src/indexed/min-cut.ts +201 -0
- package/src/indexed/modularity.ts +81 -0
- package/src/indexed/mst.ts +79 -1
- package/src/indexed/pagerank.ts +128 -15
- package/src/indexed/point-to-point.ts +220 -0
- package/src/indexed/scc.ts +132 -0
- package/src/indexed/spectral.ts +550 -0
- package/src/indexed/structures/bit-set.ts +65 -0
- package/src/indexed/structures/max-heap.ts +74 -0
- package/src/indexed/structures/min-heap.ts +51 -6
- package/src/indexed/structures/ring-queue.ts +70 -0
- package/src/indexed/sync.ts +229 -0
- package/src/indexed/terahac.ts +290 -0
- package/src/indexed/to-snapshot.ts +156 -6
- package/src/link-prediction/common-neighbors-legacy.ts +252 -0
- package/src/link-prediction/common-neighbors.ts +65 -168
- package/src/optimized/direction-optimized-bfs.ts +6 -1
- package/src/research/grsbm-legacy.ts +586 -0
- package/src/research/grsbm.ts +76 -555
- package/src/research/sync-legacy.ts +456 -0
- package/src/research/sync.ts +30 -431
|
@@ -35,6 +35,15 @@ export interface BetweennessCentralityOptions {
|
|
|
35
35
|
* @returns Centrality scores for each node keyed by node ID
|
|
36
36
|
*/
|
|
37
37
|
export declare function betweennessCentrality(graph: Graph, options?: BetweennessCentralityOptions): Record<string, number>;
|
|
38
|
+
/**
|
|
39
|
+
* The implementation {@link betweennessCentrality} delegates away from, kept as its
|
|
40
|
+
* differential-test oracle. Deleted at the removal release.
|
|
41
|
+
* @param graph - The input graph to analyze
|
|
42
|
+
* @param options - Algorithm configuration options
|
|
43
|
+
* @returns Centrality scores for each node keyed by node ID
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
export declare function legacyBetweennessCentrality(graph: Graph, options?: BetweennessCentralityOptions): Record<string, number>;
|
|
38
47
|
/**
|
|
39
48
|
* Calculate betweenness centrality for a specific node
|
|
40
49
|
* @param graph - The input graph to analyze
|
|
@@ -50,4 +59,13 @@ export declare function nodeBetweennessCentrality(graph: Graph, targetNode: Node
|
|
|
50
59
|
* @returns Edge centrality scores keyed by edge string representation
|
|
51
60
|
*/
|
|
52
61
|
export declare function edgeBetweennessCentrality(graph: Graph, options?: BetweennessCentralityOptions): Map<string, number>;
|
|
62
|
+
/**
|
|
63
|
+
* The implementation {@link edgeBetweennessCentrality} delegates away from, kept as its
|
|
64
|
+
* differential-test oracle and for an undirected graph. Deleted at the removal release.
|
|
65
|
+
* @param graph - The input graph to analyze
|
|
66
|
+
* @param options - Algorithm configuration options
|
|
67
|
+
* @returns Edge centrality scores keyed by edge string representation
|
|
68
|
+
* @internal
|
|
69
|
+
*/
|
|
70
|
+
export declare function legacyEdgeBetweennessCentrality(graph: Graph, options?: BetweennessCentralityOptions): Map<string, number>;
|
|
53
71
|
//# sourceMappingURL=betweenness.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"betweenness.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/centrality/betweenness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"betweenness.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/centrality/betweenness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAOjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGnD;;;;;GAKG;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,4BAA4B;IACzC,kEAAkE;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACzC,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACzC;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACjD,iFAAiF;IACjF,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AA4LD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACjC,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,4BAAiC,GAC3C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQxB;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACvC,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,4BAAiC,GAC3C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiCxB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACrC,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,4BAAiC,GAC3C,MAAM,CAQR;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACrC,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,4BAAiC,GAC3C,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CASrB;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC3C,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,4BAAiC,GAC3C,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAqCrB"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { betweennessCentrality as indexedBetweenness, edgeBetweennessCentrality as indexedEdgeBetweenness, } from "../../indexed/betweenness.js";
|
|
2
|
+
import { edgeScoresToPairMap, scoresToRecord } from "../../indexed/facade.js";
|
|
3
|
+
import { needsLegacyCode, toSnapshot } from "../../indexed/to-snapshot.js";
|
|
1
4
|
import { bfsWithPathCounting } from "../traversal/bfs-variants.js";
|
|
2
5
|
/**
|
|
3
6
|
* Refuse the index-space options on a path that has no index space.
|
|
@@ -10,7 +13,8 @@ import { bfsWithPathCounting } from "../traversal/bfs-variants.js";
|
|
|
10
13
|
function rejectIndexOptions(options, fn) {
|
|
11
14
|
if (options.sources !== undefined || options.k !== undefined) {
|
|
12
15
|
throw new Error(`${fn}: 'sources' and 'k' are node INDICES and are meaningful only against a GraphSnapshot; ` +
|
|
13
|
-
"call
|
|
16
|
+
"for sampled betweenness call indexed.betweennessCentrality(snapshot, options), or " +
|
|
17
|
+
"accelerated(accelerator).betweennessCentrality(snapshot, options) to use an AlgorithmAccelerator");
|
|
14
18
|
}
|
|
15
19
|
}
|
|
16
20
|
/**
|
|
@@ -146,6 +150,23 @@ function normalizeCentrality(centrality, nodeCount, isDirected) {
|
|
|
146
150
|
* @returns Centrality scores for each node keyed by node ID
|
|
147
151
|
*/
|
|
148
152
|
export function betweennessCentrality(graph, options = {}) {
|
|
153
|
+
rejectIndexOptions(options, "betweennessCentrality");
|
|
154
|
+
if (needsLegacyCode(graph)) {
|
|
155
|
+
return legacyBetweennessCentrality(graph, options);
|
|
156
|
+
}
|
|
157
|
+
const s = toSnapshot(graph);
|
|
158
|
+
// `endpoints` is not passed on: the legacy accumulation accepts it and ignores it.
|
|
159
|
+
return scoresToRecord(s.ids, indexedBetweenness(s, { normalized: options.normalized }).scores);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* The implementation {@link betweennessCentrality} delegates away from, kept as its
|
|
163
|
+
* differential-test oracle. Deleted at the removal release.
|
|
164
|
+
* @param graph - The input graph to analyze
|
|
165
|
+
* @param options - Algorithm configuration options
|
|
166
|
+
* @returns Centrality scores for each node keyed by node ID
|
|
167
|
+
* @internal
|
|
168
|
+
*/
|
|
169
|
+
export function legacyBetweennessCentrality(graph, options = {}) {
|
|
149
170
|
rejectIndexOptions(options, "betweennessCentrality");
|
|
150
171
|
const nodes = Array.from(graph.nodes()).map((node) => node.id);
|
|
151
172
|
const centrality = {};
|
|
@@ -196,6 +217,24 @@ export function nodeBetweennessCentrality(graph, targetNode, options = {}) {
|
|
|
196
217
|
* @returns Edge centrality scores keyed by edge string representation
|
|
197
218
|
*/
|
|
198
219
|
export function edgeBetweennessCentrality(graph, options = {}) {
|
|
220
|
+
rejectIndexOptions(options, "edgeBetweennessCentrality");
|
|
221
|
+
// On an undirected graph the legacy Map adds each reversed "v-u" key in the order its searches
|
|
222
|
+
// first cross the edge that way, an order the port's per-edge scores do not carry.
|
|
223
|
+
if (!graph.isDirected || needsLegacyCode(graph)) {
|
|
224
|
+
return legacyEdgeBetweennessCentrality(graph, options);
|
|
225
|
+
}
|
|
226
|
+
const s = toSnapshot(graph);
|
|
227
|
+
return edgeScoresToPairMap(s, indexedEdgeBetweenness(s, { normalized: options.normalized }).scores);
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* The implementation {@link edgeBetweennessCentrality} delegates away from, kept as its
|
|
231
|
+
* differential-test oracle and for an undirected graph. Deleted at the removal release.
|
|
232
|
+
* @param graph - The input graph to analyze
|
|
233
|
+
* @param options - Algorithm configuration options
|
|
234
|
+
* @returns Edge centrality scores keyed by edge string representation
|
|
235
|
+
* @internal
|
|
236
|
+
*/
|
|
237
|
+
export function legacyEdgeBetweennessCentrality(graph, options = {}) {
|
|
199
238
|
rejectIndexOptions(options, "edgeBetweennessCentrality");
|
|
200
239
|
const nodes = Array.from(graph.nodes()).map((node) => node.id);
|
|
201
240
|
const edgeCentrality = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"betweenness.js","sourceRoot":"","sources":["../../../../src/algorithms/centrality/betweenness.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"betweenness.js","sourceRoot":"","sources":["../../../../src/algorithms/centrality/betweenness.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,6 +59,16 @@ export declare function closenessCentrality(graph: Graph, options?: ClosenessCen
|
|
|
59
59
|
* @returns The closeness centrality score for the node
|
|
60
60
|
*/
|
|
61
61
|
export declare function nodeClosenessCentrality(graph: Graph, node: NodeId, options?: ClosenessCentralityOptions): number;
|
|
62
|
+
/**
|
|
63
|
+
* The implementation {@link nodeClosenessCentrality} delegates away from, kept as its
|
|
64
|
+
* differential-test oracle. Deleted at the removal release.
|
|
65
|
+
* @param graph - The input graph to analyze
|
|
66
|
+
* @param node - The node to calculate centrality for
|
|
67
|
+
* @param options - Algorithm configuration options
|
|
68
|
+
* @returns The closeness centrality score for the node
|
|
69
|
+
* @internal
|
|
70
|
+
*/
|
|
71
|
+
export declare function legacyNodeClosenessCentrality(graph: Graph, node: NodeId, options?: ClosenessCentralityOptions): number;
|
|
62
72
|
/**
|
|
63
73
|
* Calculate weighted closeness centrality using Dijkstra's algorithm
|
|
64
74
|
* @param graph - The input graph to analyze
|
|
@@ -74,4 +84,14 @@ export declare function weightedClosenessCentrality(graph: Graph, options?: Clos
|
|
|
74
84
|
* @returns The weighted closeness centrality score for the node
|
|
75
85
|
*/
|
|
76
86
|
export declare function nodeWeightedClosenessCentrality(graph: Graph, node: NodeId, options?: ClosenessCentralityOptions): number;
|
|
87
|
+
/**
|
|
88
|
+
* The implementation {@link nodeWeightedClosenessCentrality} delegates away from, kept as its
|
|
89
|
+
* differential-test oracle and for a graph with a negative weight. Deleted at the removal release.
|
|
90
|
+
* @param graph - The input graph to analyze
|
|
91
|
+
* @param node - The node to calculate centrality for
|
|
92
|
+
* @param options - Algorithm configuration options
|
|
93
|
+
* @returns The weighted closeness centrality score for the node
|
|
94
|
+
* @internal
|
|
95
|
+
*/
|
|
96
|
+
export declare function legacyNodeWeightedClosenessCentrality(graph: Graph, node: NodeId, options?: ClosenessCentralityOptions): number;
|
|
77
97
|
//# sourceMappingURL=closeness.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"closeness.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/centrality/closeness.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"closeness.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/centrality/closeness.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAQjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGnD;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AA2DD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,0BAA+B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMlH;AA6CD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,0BAA+B,GAAG,MAAM,CASpH;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CACzC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,0BAA+B,GACzC,MAAM,CAeR;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACvC,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,0BAA+B,GACzC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxB;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC3C,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,0BAA+B,GACzC,MAAM,CAYR;AAED;;;;;;;;GAQG;AACH,wBAAgB,qCAAqC,CACjD,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,0BAA+B,GACzC,MAAM,CAeR"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { closenessCentrality as indexedCloseness, nodeClosenessCentrality as indexedNodeCloseness, } from "../../indexed/closeness.js";
|
|
2
|
+
import { exactArcWeights, scoresToRecord } from "../../indexed/facade.js";
|
|
3
|
+
import { needsLegacyCode, toSnapshot } from "../../indexed/to-snapshot.js";
|
|
1
4
|
import { bfsDistancesOnly, bfsWeightedDistances } from "../traversal/bfs-variants.js";
|
|
2
5
|
/**
|
|
3
6
|
* Calculate closeness centrality from distances
|
|
@@ -67,13 +70,52 @@ function calculateClosenessFromDistances(distances, sourceNode, totalNodes, opti
|
|
|
67
70
|
* Space Complexity: O(V)
|
|
68
71
|
*/
|
|
69
72
|
export function closenessCentrality(graph, options = {}) {
|
|
70
|
-
|
|
73
|
+
if (needsLegacyCode(graph)) {
|
|
74
|
+
return perNodeRecord(graph, (id) => legacyNodeClosenessCentrality(graph, id, options));
|
|
75
|
+
}
|
|
76
|
+
const s = toSnapshot(graph);
|
|
77
|
+
return scoresToRecord(s.ids, indexedCloseness(s, portOptions(options)).scores);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* The port's options for a legacy call; `optimized` picked a legacy search engine and has no
|
|
81
|
+
* counterpart.
|
|
82
|
+
* @param options - The legacy options
|
|
83
|
+
* @param s - Given only for a weighted call, which then reads this snapshot's exact f64 weights
|
|
84
|
+
* @returns The port's options
|
|
85
|
+
*/
|
|
86
|
+
function portOptions(options, s) {
|
|
87
|
+
return {
|
|
88
|
+
normalized: options.normalized,
|
|
89
|
+
harmonic: options.harmonic,
|
|
90
|
+
cutoff: options.cutoff,
|
|
91
|
+
weighted: s !== undefined,
|
|
92
|
+
weights: s === undefined ? undefined : exactArcWeights(s),
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* The legacy whole-graph loop: one per-node score per node, keyed by `String(id)` in node order.
|
|
97
|
+
* @param graph - The input graph
|
|
98
|
+
* @param score - The per-node score
|
|
99
|
+
* @returns The keyed scores
|
|
100
|
+
*/
|
|
101
|
+
function perNodeRecord(graph, score) {
|
|
71
102
|
const centrality = {};
|
|
72
|
-
for (const
|
|
73
|
-
centrality[String(
|
|
103
|
+
for (const node of graph.nodes()) {
|
|
104
|
+
centrality[String(node.id)] = score(node.id);
|
|
74
105
|
}
|
|
75
106
|
return centrality;
|
|
76
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* Whether a weighted search must stay on the legacy code: with a negative weight the distance a
|
|
110
|
+
* node keeps depends on the order equal keys leave the priority queue, which the port does not
|
|
111
|
+
* reproduce.
|
|
112
|
+
* @param s - The snapshot
|
|
113
|
+
* @returns True when some weight is negative
|
|
114
|
+
*/
|
|
115
|
+
function hasNegativeWeight(s) {
|
|
116
|
+
const weights = exactArcWeights(s) ?? s.weights;
|
|
117
|
+
return weights?.some((w) => w < 0) ?? false;
|
|
118
|
+
}
|
|
77
119
|
/**
|
|
78
120
|
* Calculate closeness centrality for a specific node
|
|
79
121
|
* @param graph - The input graph to analyze
|
|
@@ -82,6 +124,25 @@ export function closenessCentrality(graph, options = {}) {
|
|
|
82
124
|
* @returns The closeness centrality score for the node
|
|
83
125
|
*/
|
|
84
126
|
export function nodeClosenessCentrality(graph, node, options = {}) {
|
|
127
|
+
if (!graph.hasNode(node)) {
|
|
128
|
+
throw new Error(`Node ${String(node)} not found in graph`);
|
|
129
|
+
}
|
|
130
|
+
if (needsLegacyCode(graph)) {
|
|
131
|
+
return legacyNodeClosenessCentrality(graph, node, options);
|
|
132
|
+
}
|
|
133
|
+
const s = toSnapshot(graph);
|
|
134
|
+
return indexedNodeCloseness(s, s.ids.indexOf(node), portOptions(options));
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* The implementation {@link nodeClosenessCentrality} delegates away from, kept as its
|
|
138
|
+
* differential-test oracle. Deleted at the removal release.
|
|
139
|
+
* @param graph - The input graph to analyze
|
|
140
|
+
* @param node - The node to calculate centrality for
|
|
141
|
+
* @param options - Algorithm configuration options
|
|
142
|
+
* @returns The closeness centrality score for the node
|
|
143
|
+
* @internal
|
|
144
|
+
*/
|
|
145
|
+
export function legacyNodeClosenessCentrality(graph, node, options = {}) {
|
|
85
146
|
if (!graph.hasNode(node)) {
|
|
86
147
|
throw new Error(`Node ${String(node)} not found in graph`);
|
|
87
148
|
}
|
|
@@ -97,12 +158,14 @@ export function nodeClosenessCentrality(graph, node, options = {}) {
|
|
|
97
158
|
* @returns Centrality scores for each node keyed by node ID
|
|
98
159
|
*/
|
|
99
160
|
export function weightedClosenessCentrality(graph, options = {}) {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
for (const sourceNode of nodes) {
|
|
103
|
-
centrality[String(sourceNode)] = nodeWeightedClosenessCentrality(graph, sourceNode, options);
|
|
161
|
+
if (needsLegacyCode(graph)) {
|
|
162
|
+
return perNodeRecord(graph, (id) => legacyNodeWeightedClosenessCentrality(graph, id, options));
|
|
104
163
|
}
|
|
105
|
-
|
|
164
|
+
const s = toSnapshot(graph);
|
|
165
|
+
if (hasNegativeWeight(s)) {
|
|
166
|
+
return perNodeRecord(graph, (id) => legacyNodeWeightedClosenessCentrality(graph, id, options));
|
|
167
|
+
}
|
|
168
|
+
return scoresToRecord(s.ids, indexedCloseness(s, portOptions(options, s)).scores);
|
|
106
169
|
}
|
|
107
170
|
/**
|
|
108
171
|
* Calculate weighted closeness centrality for a specific node using Dijkstra
|
|
@@ -112,6 +175,28 @@ export function weightedClosenessCentrality(graph, options = {}) {
|
|
|
112
175
|
* @returns The weighted closeness centrality score for the node
|
|
113
176
|
*/
|
|
114
177
|
export function nodeWeightedClosenessCentrality(graph, node, options = {}) {
|
|
178
|
+
if (!graph.hasNode(node)) {
|
|
179
|
+
throw new Error(`Node ${String(node)} not found in graph`);
|
|
180
|
+
}
|
|
181
|
+
if (needsLegacyCode(graph)) {
|
|
182
|
+
return legacyNodeWeightedClosenessCentrality(graph, node, options);
|
|
183
|
+
}
|
|
184
|
+
const s = toSnapshot(graph);
|
|
185
|
+
if (hasNegativeWeight(s)) {
|
|
186
|
+
return legacyNodeWeightedClosenessCentrality(graph, node, options);
|
|
187
|
+
}
|
|
188
|
+
return indexedNodeCloseness(s, s.ids.indexOf(node), portOptions(options, s));
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* The implementation {@link nodeWeightedClosenessCentrality} delegates away from, kept as its
|
|
192
|
+
* differential-test oracle and for a graph with a negative weight. Deleted at the removal release.
|
|
193
|
+
* @param graph - The input graph to analyze
|
|
194
|
+
* @param node - The node to calculate centrality for
|
|
195
|
+
* @param options - Algorithm configuration options
|
|
196
|
+
* @returns The weighted closeness centrality score for the node
|
|
197
|
+
* @internal
|
|
198
|
+
*/
|
|
199
|
+
export function legacyNodeWeightedClosenessCentrality(graph, node, options = {}) {
|
|
115
200
|
if (!graph.hasNode(node)) {
|
|
116
201
|
throw new Error(`Node ${String(node)} not found in graph`);
|
|
117
202
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"closeness.js","sourceRoot":"","sources":["../../../../src/algorithms/centrality/closeness.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"closeness.js","sourceRoot":"","sources":["../../../../src/algorithms/centrality/closeness.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,15 @@ import type { CentralityOptions, CentralityResult } from "../../types/index.js";
|
|
|
13
13
|
* @returns Centrality scores for each node keyed by node ID
|
|
14
14
|
*/
|
|
15
15
|
export declare function degreeCentrality(graph: Graph, options?: CentralityOptions): CentralityResult;
|
|
16
|
+
/**
|
|
17
|
+
* The implementation {@link degreeCentrality} delegates away from, kept as its differential-test
|
|
18
|
+
* oracle. Deleted at the removal release.
|
|
19
|
+
* @param graph - The input graph to analyze
|
|
20
|
+
* @param options - Algorithm configuration options
|
|
21
|
+
* @returns Centrality scores for each node keyed by node ID
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
export declare function legacyDegreeCentrality(graph: Graph, options?: CentralityOptions): CentralityResult;
|
|
16
25
|
/**
|
|
17
26
|
* Calculate degree centrality for a specific node
|
|
18
27
|
* @param graph - The input graph to analyze
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"degree.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/centrality/degree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"degree.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/centrality/degree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAIjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEhF;;;;;GAKG;AAEH;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,iBAAsB,GAAG,gBAAgB,CAMhG;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,iBAAsB,GAAG,gBAAgB,CAyCtG;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAkCnH"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { degreeCentrality as indexedDegree } from "../../indexed/degree.js";
|
|
2
|
+
import { scoresToRecord } from "../../indexed/facade.js";
|
|
3
|
+
import { needsLegacyCode, toSnapshot } from "../../indexed/to-snapshot.js";
|
|
1
4
|
/**
|
|
2
5
|
* Degree centrality implementation
|
|
3
6
|
*
|
|
@@ -11,6 +14,21 @@
|
|
|
11
14
|
* @returns Centrality scores for each node keyed by node ID
|
|
12
15
|
*/
|
|
13
16
|
export function degreeCentrality(graph, options = {}) {
|
|
17
|
+
if (needsLegacyCode(graph)) {
|
|
18
|
+
return legacyDegreeCentrality(graph, options);
|
|
19
|
+
}
|
|
20
|
+
const s = toSnapshot(graph);
|
|
21
|
+
return scoresToRecord(s.ids, indexedDegree(s, { mode: options.mode, normalized: options.normalized }));
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The implementation {@link degreeCentrality} delegates away from, kept as its differential-test
|
|
25
|
+
* oracle. Deleted at the removal release.
|
|
26
|
+
* @param graph - The input graph to analyze
|
|
27
|
+
* @param options - Algorithm configuration options
|
|
28
|
+
* @returns Centrality scores for each node keyed by node ID
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
31
|
+
export function legacyDegreeCentrality(graph, options = {}) {
|
|
14
32
|
const centrality = {};
|
|
15
33
|
const { nodeCount } = graph;
|
|
16
34
|
// Calculate normalization factor (same for both directed and undirected graphs)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"degree.js","sourceRoot":"","sources":["../../../../src/algorithms/centrality/degree.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"degree.js","sourceRoot":"","sources":["../../../../src/algorithms/centrality/degree.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,16 @@ export interface EigenvectorCentralityOptions extends CentralityOptions {
|
|
|
37
37
|
* raises `PowerIterationFailedConvergence`. Raise `maxIterations` or `tolerance` and call again.
|
|
38
38
|
*/
|
|
39
39
|
export declare function eigenvectorCentrality(graph: Graph, options?: EigenvectorCentralityOptions): CentralityResult;
|
|
40
|
+
/**
|
|
41
|
+
* The implementation {@link eigenvectorCentrality} delegates away from, kept as its
|
|
42
|
+
* differential-test oracle. Deleted at the removal release.
|
|
43
|
+
* @param graph - The graph to compute eigenvector centrality on
|
|
44
|
+
* @param options - Configuration options for the computation
|
|
45
|
+
* @returns Object mapping node IDs to their eigenvector centrality scores
|
|
46
|
+
* @throws {ConvergenceError} When `maxIterations` passes do not meet `tolerance`
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
export declare function legacyEigenvectorCentrality(graph: Graph, options?: EigenvectorCentralityOptions): CentralityResult;
|
|
40
50
|
/**
|
|
41
51
|
* Calculate eigenvector centrality for a specific node.
|
|
42
52
|
* @param graph - The graph to compute eigenvector centrality on
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eigenvector.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/centrality/eigenvector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"eigenvector.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/centrality/eigenvector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAKjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEhF;;;;;;;;;GASG;AAEH,MAAM,WAAW,4BAA6B,SAAQ,iBAAiB;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,4BAAiC,GAAG,gBAAgB,CAiBhH;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACvC,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,4BAAiC,GAC3C,gBAAgB,CAgFlB;AAgDD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACrC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,OAAO,GAAE,4BAAiC,GAC3C,MAAM,CAOR"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { ConvergenceError } from "../../errors.js";
|
|
2
|
+
import { eigenvectorCentrality as indexedEigenvector } from "../../indexed/eigenvector.js";
|
|
3
|
+
import { scoresToRecord } from "../../indexed/facade.js";
|
|
4
|
+
import { needsLegacyCode, toSnapshot } from "../../indexed/to-snapshot.js";
|
|
2
5
|
/**
|
|
3
6
|
* Calculate eigenvector centrality for all nodes in the graph.
|
|
4
7
|
*
|
|
@@ -21,6 +24,32 @@ import { ConvergenceError } from "../../errors.js";
|
|
|
21
24
|
* raises `PowerIterationFailedConvergence`. Raise `maxIterations` or `tolerance` and call again.
|
|
22
25
|
*/
|
|
23
26
|
export function eigenvectorCentrality(graph, options = {}) {
|
|
27
|
+
if (needsLegacyCode(graph)) {
|
|
28
|
+
return legacyEigenvectorCentrality(graph, options);
|
|
29
|
+
}
|
|
30
|
+
const s = toSnapshot(graph);
|
|
31
|
+
const { startVector } = options;
|
|
32
|
+
const r = indexedEigenvector(s, {
|
|
33
|
+
maxIterations: options.maxIterations,
|
|
34
|
+
tolerance: options.tolerance,
|
|
35
|
+
normalized: options.normalized,
|
|
36
|
+
mode: options.mode,
|
|
37
|
+
startVector: startVector === undefined
|
|
38
|
+
? undefined
|
|
39
|
+
: Float64Array.from({ length: s.nodeCount }, (_, i) => startVector.get(String(s.ids.idOf(i))) ?? 1),
|
|
40
|
+
});
|
|
41
|
+
return scoresToRecord(s.ids, r.scores);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The implementation {@link eigenvectorCentrality} delegates away from, kept as its
|
|
45
|
+
* differential-test oracle. Deleted at the removal release.
|
|
46
|
+
* @param graph - The graph to compute eigenvector centrality on
|
|
47
|
+
* @param options - Configuration options for the computation
|
|
48
|
+
* @returns Object mapping node IDs to their eigenvector centrality scores
|
|
49
|
+
* @throws {ConvergenceError} When `maxIterations` passes do not meet `tolerance`
|
|
50
|
+
* @internal
|
|
51
|
+
*/
|
|
52
|
+
export function legacyEigenvectorCentrality(graph, options = {}) {
|
|
24
53
|
const { maxIterations = 100, tolerance = 1e-6, normalized = true, startVector, mode = "in" } = options;
|
|
25
54
|
const nodeIds = Array.from(graph.nodes(), (node) => node.id);
|
|
26
55
|
const keys = nodeIds.map((id) => id.toString());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eigenvector.js","sourceRoot":"","sources":["../../../../src/algorithms/centrality/eigenvector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"eigenvector.js","sourceRoot":"","sources":["../../../../src/algorithms/centrality/eigenvector.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,15 @@ export interface HITSOptions extends CentralityOptions {
|
|
|
28
28
|
* @returns Object containing hub and authority scores for all nodes
|
|
29
29
|
*/
|
|
30
30
|
export declare function hits(graph: Graph, options?: HITSOptions): HITSResult;
|
|
31
|
+
/**
|
|
32
|
+
* The implementation {@link hits} delegates away from, kept as its differential-test oracle.
|
|
33
|
+
* Deleted at the removal release.
|
|
34
|
+
* @param graph - The graph to compute HITS scores on
|
|
35
|
+
* @param options - Configuration options for the computation
|
|
36
|
+
* @returns Object containing hub and authority scores for all nodes
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
39
|
+
export declare function legacyHits(graph: Graph, options?: HITSOptions): HITSResult;
|
|
31
40
|
/**
|
|
32
41
|
* Calculate HITS scores for a specific node.
|
|
33
42
|
* @param graph - The graph to compute HITS scores on
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hits.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/centrality/hits.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"hits.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/centrality/hits.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAIjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,WAAY,SAAQ,iBAAiB;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,WAAgB,GAAG,UAAU,CAWxE;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,WAAgB,GAAG,UAAU,CAuJ9E;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACpB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,OAAO,GAAE,WAAgB,GAC1B;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAYpC"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { scoresToRecord } from "../../indexed/facade.js";
|
|
2
|
+
import { hits as indexedHits } from "../../indexed/hits.js";
|
|
3
|
+
import { needsLegacyCode, toSnapshot } from "../../indexed/to-snapshot.js";
|
|
1
4
|
/**
|
|
2
5
|
* Calculate HITS hub and authority scores for all nodes in the graph.
|
|
3
6
|
* Uses iterative method with normalization.
|
|
@@ -6,6 +9,26 @@
|
|
|
6
9
|
* @returns Object containing hub and authority scores for all nodes
|
|
7
10
|
*/
|
|
8
11
|
export function hits(graph, options = {}) {
|
|
12
|
+
if (needsLegacyCode(graph)) {
|
|
13
|
+
return legacyHits(graph, options);
|
|
14
|
+
}
|
|
15
|
+
const s = toSnapshot(graph);
|
|
16
|
+
const r = indexedHits(s, {
|
|
17
|
+
maxIterations: options.maxIterations,
|
|
18
|
+
tolerance: options.tolerance,
|
|
19
|
+
normalized: options.normalized,
|
|
20
|
+
});
|
|
21
|
+
return { hubs: scoresToRecord(s.ids, r.hubs), authorities: scoresToRecord(s.ids, r.authorities) };
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The implementation {@link hits} delegates away from, kept as its differential-test oracle.
|
|
25
|
+
* Deleted at the removal release.
|
|
26
|
+
* @param graph - The graph to compute HITS scores on
|
|
27
|
+
* @param options - Configuration options for the computation
|
|
28
|
+
* @returns Object containing hub and authority scores for all nodes
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
31
|
+
export function legacyHits(graph, options = {}) {
|
|
9
32
|
const { maxIterations = 100, tolerance = 1e-6, normalized = true } = options;
|
|
10
33
|
const hubs = {};
|
|
11
34
|
const authorities = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hits.js","sourceRoot":"","sources":["../../../../src/algorithms/centrality/hits.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hits.js","sourceRoot":"","sources":["../../../../src/algorithms/centrality/hits.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,15 @@ export interface KatzCentralityOptions extends CentralityOptions {
|
|
|
26
26
|
* @returns Object mapping node IDs to their Katz centrality scores
|
|
27
27
|
*/
|
|
28
28
|
export declare function katzCentrality(graph: Graph, options?: KatzCentralityOptions): CentralityResult;
|
|
29
|
+
/**
|
|
30
|
+
* The implementation {@link katzCentrality} delegates away from, kept as its differential-test
|
|
31
|
+
* oracle and for a negative `alpha` or `beta`. Deleted at the removal release.
|
|
32
|
+
* @param graph - The graph to compute Katz centrality on
|
|
33
|
+
* @param options - Configuration options for the computation
|
|
34
|
+
* @returns Object mapping node IDs to their Katz centrality scores
|
|
35
|
+
* @internal
|
|
36
|
+
*/
|
|
37
|
+
export declare function legacyKatzCentrality(graph: Graph, options?: KatzCentralityOptions): CentralityResult;
|
|
29
38
|
/**
|
|
30
39
|
* Calculate Katz centrality for a specific node.
|
|
31
40
|
* @param graph - The graph to compute Katz centrality on
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"katz.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/centrality/katz.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"katz.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/centrality/katz.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAIjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEhF;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,qBAA0B,GAAG,gBAAgB,CAmBlG;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,qBAA0B,GAAG,gBAAgB,CAoFxG;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,MAAM,CAOrH"}
|