@danielsimonjr/mathts-functions 0.34.0 → 0.36.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.
@@ -0,0 +1,109 @@
1
+ type Quat = readonly [number, number, number, number] | readonly number[];
2
+ /**
3
+ * Multiplicative inverse of a quaternion: `conj(q) / |q|²`. For unit
4
+ * quaternions this equals the conjugate.
5
+ *
6
+ * @example
7
+ * quaternionInverse([0, 1, 0, 0]) // [0, -1, 0, 0]
8
+ */
9
+ export declare function quaternionInverse(q: Quat): number[];
10
+ /**
11
+ * Spherical linear interpolation between two (unit) quaternions, `t ∈ [0,1]`.
12
+ * Chooses the shortest arc (negating `q2` when the dot product is negative)
13
+ * and falls back to normalized linear interpolation (nlerp) when the inputs
14
+ * are nearly parallel, where the slerp coefficients become numerically
15
+ * unstable.
16
+ *
17
+ * @example
18
+ * quaternionSlerp([1,0,0,0], [0,1,0,0], 0) // [1,0,0,0]
19
+ * quaternionSlerp([1,0,0,0], [0,1,0,0], 1) // [0,1,0,0]
20
+ */
21
+ export declare function quaternionSlerp(q1: Quat, q2: Quat, t: number): number[];
22
+ /**
23
+ * Convert a (unit) quaternion `[w, x, y, z]` to ZYX intrinsic Euler angles
24
+ * `[roll, pitch, yaw]` in radians (the standard aerospace yaw-pitch-roll
25
+ * sequence). Pitch is clamped at the ±90° gimbal-lock singularity.
26
+ *
27
+ * @example
28
+ * quaternionToEuler([1, 0, 0, 0]) // [0, 0, 0]
29
+ */
30
+ export declare function quaternionToEuler(q: Quat): [number, number, number];
31
+ /**
32
+ * Axis-aligned bounding box (per-dimension min/max) of a set of nD points.
33
+ *
34
+ * @example
35
+ * boundingBox([[1,2],[3,0],[2,5]]) // { min: [1,0], max: [3,5] }
36
+ */
37
+ export declare function boundingBox(points: number[][]): {
38
+ min: number[];
39
+ max: number[];
40
+ };
41
+ /** Result of {@link procrustes}: best-fit rotation, uniform scale, and residual. */
42
+ export interface ProcrustesResult {
43
+ /** Orthogonal `d x d` rotation (or reflection) matrix. */
44
+ R: number[][];
45
+ /** Optimal uniform scale factor. */
46
+ scale: number;
47
+ /** Residual sum of squares after alignment (centered + unit-normalized inputs). */
48
+ disparity: number;
49
+ }
50
+ /**
51
+ * Orthogonal Procrustes alignment: find the rotation `R`, uniform scale
52
+ * `scale`, and residual `disparity` that best map `B` onto `A` after both are
53
+ * centered on their centroid and normalized to unit Frobenius norm.
54
+ *
55
+ * Algorithm: `A0`, `B0` = centered + unit-normalized `A`, `B`;
56
+ * `M = A0ᵀ B0 = U Σ Vᵀ` (SVD); `R = V Uᵀ` (minimizes `‖B0 R − A0‖`);
57
+ * `scale = Σ Σᵢ` (sum of singular values); `disparity = ‖A0 − scale·B0·R‖²`.
58
+ * Pinned against `scipy.spatial.procrustes` (disparity matches to float
59
+ * precision for both exact-rotation and unrelated-point-set inputs).
60
+ *
61
+ * @example
62
+ * procrustes([[0,0],[1,0],[0,1]], [[0,0],[0,1],[-1,0]])
63
+ * // R ~ 90° rotation, disparity ~ 0
64
+ */
65
+ export declare function procrustes(A: number[][], B: number[][]): ProcrustesResult;
66
+ /**
67
+ * Indices of the `k` nearest points to `query` (Euclidean distance,
68
+ * nearest-first). Brute-force — see `../ml/dbscan-knn.ts` for the same
69
+ * strategy used by the k-NN classifier/regressor.
70
+ *
71
+ * @example
72
+ * kdTreeKNN([[0,0],[1,0],[5,5]], [0,0], 2) // [0, 1]
73
+ */
74
+ export declare function kdTreeKNN(points: number[][], query: number[], k: number): number[];
75
+ /**
76
+ * Indices of all points within Euclidean radius `r` of `query` (brute force).
77
+ *
78
+ * @example
79
+ * kdTreeRadius([[0,0],[1,0],[5,5]], [0,0], 2) // [0, 1]
80
+ */
81
+ export declare function kdTreeRadius(points: number[][], query: number[], r: number): number[];
82
+ /**
83
+ * True when every element of `b` (with multiplicity) appears in `a` — i.e.
84
+ * `a` is a (multiset) superset of `b`. Complement of `setIsSubset`.
85
+ *
86
+ * @example
87
+ * setIsSuperset([1, 2, 3], [1, 2]) // true
88
+ * setIsSuperset([1, 2], [1, 2, 3]) // false
89
+ */
90
+ export declare function setIsSuperset(a: unknown[], b: unknown[]): boolean;
91
+ /**
92
+ * True when `a` and `b` are equal as multisets (same elements, same
93
+ * multiplicities, order-independent).
94
+ *
95
+ * @example
96
+ * setEqual([1, 2, 2], [2, 1, 2]) // true
97
+ * setEqual([1, 2], [1, 2, 2]) // false
98
+ */
99
+ export declare function setEqual(a: unknown[], b: unknown[]): boolean;
100
+ /**
101
+ * True when `a` and `b` share no elements (multiset intersection is empty).
102
+ *
103
+ * @example
104
+ * setDisjoint([1, 2], [3, 4]) // true
105
+ * setDisjoint([1, 2], [2, 3]) // false
106
+ */
107
+ export declare function setDisjoint(a: unknown[], b: unknown[]): boolean;
108
+ export {};
109
+ //# sourceMappingURL=geometry-extra.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometry-extra.d.ts","sourceRoot":"","sources":["../../src/geometry/geometry-extra.ts"],"names":[],"mappings":"AAcA,KAAK,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,MAAM,EAAE,CAAC;AAU1E;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,CAInD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAuBvE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAOnE;AAMD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG;IAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,EAAE,CAAA;CAAE,CAahF;AAMD,oFAAoF;AACpF,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IACd,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,SAAS,EAAE,MAAM,CAAC;CACnB;AA6CD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,gBAAgB,CAyBzE;AAeD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAIlF;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAMrF;AAoBD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAEjE;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAE5D;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAM/D"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Graph Optimization — Max-Flow/Min-Cut, A* Search, Hungarian Assignment
3
+ *
4
+ * Complements the existing traversal/shortest-path/centrality graph
5
+ * functions (`typed/graph.ts`, `graph/traversal-centrality.ts`) with
6
+ * classic combinatorial-optimization algorithms:
7
+ *
8
+ * - `maxFlow` / `minCut`: Edmonds-Karp max-flow (BFS shortest-augmenting-path
9
+ * on the residual graph) and the corresponding min-cut via the
10
+ * max-flow-min-cut theorem.
11
+ * - `astar`: heuristic-guided shortest path on a weighted adjacency matrix;
12
+ * reduces to Dijkstra when the heuristic is the zero function.
13
+ * - `hungarian`: Kuhn-Munkres optimal assignment minimizing total cost on a
14
+ * square cost matrix.
15
+ *
16
+ * Input format: adjacency/capacity/cost matrices as `number[][]`, matching
17
+ * the convention used elsewhere in this directory.
18
+ *
19
+ * @packageDocumentation
20
+ */
21
+ /** Result of `maxFlow`. */
22
+ export interface MaxFlowResult {
23
+ /** Total maximum flow value from `source` to `sink`. */
24
+ maxFlow: number;
25
+ /** Flow matrix: `flow[i][j]` is the net flow sent along edge i -> j. */
26
+ flow: number[][];
27
+ }
28
+ /**
29
+ * Maximum flow from `source` to `sink` via the Edmonds-Karp algorithm
30
+ * (Ford-Fulkerson with BFS shortest-augmenting-path selection).
31
+ *
32
+ * Time complexity: O(V*E^2) (O(V^5) on a dense adjacency matrix).
33
+ *
34
+ * @param capacity - Capacity matrix (directed reading; `capacity[i][j]` is
35
+ * the capacity of edge i -> j; 0 or negative means no edge)
36
+ * @param source - Source node index
37
+ * @param sink - Sink node index
38
+ * @returns `{ maxFlow, flow }`
39
+ *
40
+ * @example
41
+ * const cap = [[0,3,2,0],[0,0,1,2],[0,0,0,3],[0,0,0,0]];
42
+ * maxFlow(cap, 0, 3).maxFlow // => 5
43
+ */
44
+ export declare function maxFlow(capacity: number[][], source: number, sink: number): MaxFlowResult;
45
+ /** Result of `minCut`. */
46
+ export interface MinCutResult {
47
+ /** Value of the minimum cut (equals the maximum flow value). */
48
+ value: number;
49
+ /** `[S, T]` partition: `S` reachable from `source` in the residual
50
+ * graph after saturating max-flow, `T` the rest. */
51
+ partition: [number[], number[]];
52
+ }
53
+ /**
54
+ * Minimum s-t cut, computed via the max-flow-min-cut theorem: run
55
+ * `maxFlow`, then BFS the residual graph from `source` — reachable nodes
56
+ * form the source-side partition `S`, the rest form `T`.
57
+ *
58
+ * @param capacity - Capacity matrix (directed reading)
59
+ * @param source - Source node index
60
+ * @param sink - Sink node index
61
+ * @returns `{ value, partition: [S, T] }`
62
+ *
63
+ * @example
64
+ * const cap = [[0,3,2,0],[0,0,1,2],[0,0,0,3],[0,0,0,0]];
65
+ * minCut(cap, 0, 3) // => { value: 5, partition: [[0, ...], [...]] }
66
+ */
67
+ export declare function minCut(capacity: number[][], source: number, sink: number): MinCutResult;
68
+ /** Result of `astar`. */
69
+ export interface AStarResult {
70
+ /** Node sequence from `start` to `goal` (empty if unreachable). */
71
+ path: number[];
72
+ /** Total path cost (Infinity if unreachable). */
73
+ cost: number;
74
+ }
75
+ /**
76
+ * A* shortest path on a weighted adjacency matrix, guided by `heuristic`
77
+ * (an admissible estimate of the remaining cost to `goal`). With
78
+ * `heuristic = () => 0` this reduces to Dijkstra's algorithm.
79
+ *
80
+ * A directed edge i -> j exists when `adj[i][j]` is finite and nonzero.
81
+ *
82
+ * @param adj - Adjacency matrix (directed reading; edge weights should be
83
+ * non-negative for optimality)
84
+ * @param start - Source node index
85
+ * @param goal - Target node index
86
+ * @param heuristic - `(node) => estimated cost from node to goal`
87
+ * @returns `{ path, cost }`; `{ path: [], cost: Infinity }` if unreachable
88
+ *
89
+ * @example
90
+ * const adj = [[0,1,4],[1,0,1],[4,1,0]];
91
+ * astar(adj, 0, 2, () => 0) // => { path: [0, 1, 2], cost: 2 }
92
+ */
93
+ export declare function astar(adj: number[][], start: number, goal: number, heuristic: (node: number) => number): AStarResult;
94
+ /** Result of `hungarian`. */
95
+ export interface HungarianResult {
96
+ /** `assignment[i]` is the column assigned to row i. */
97
+ assignment: number[];
98
+ /** Total cost of the optimal assignment. */
99
+ cost: number;
100
+ }
101
+ /**
102
+ * Optimal assignment minimizing total cost, via the Kuhn-Munkres
103
+ * (Hungarian) algorithm on a square cost matrix. Uses the O(n^3)
104
+ * Jonker-Volgenant-style potential/shortest-augmenting-path formulation
105
+ * (1-indexed internally per the classical presentation).
106
+ *
107
+ * @param cost - Square cost matrix (`cost[i][j]` = cost of assigning row i
108
+ * to column j)
109
+ * @returns `{ assignment, cost }`
110
+ *
111
+ * @example
112
+ * hungarian([[4,1,3],[2,0,5],[3,2,2]])
113
+ * // => { assignment: [1, 0, 2], cost: 5 } (scipy linear_sum_assignment)
114
+ */
115
+ export declare function hungarian(cost: number[][]): HungarianResult;
116
+ //# sourceMappingURL=optimization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimization.d.ts","sourceRoot":"","sources":["../../src/graph/optimization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,2BAA2B;AAC3B,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;CAClB;AA6BD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAuCzF;AAED,0BAA0B;AAC1B,MAAM,WAAW,YAAY;IAC3B,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd;wDACoD;IACpD,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;CACjC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAgCvF;AAMD,yBAAyB;AACzB,MAAM,WAAW,WAAW;IAC1B,mEAAmE;IACnE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,KAAK,CACnB,GAAG,EAAE,MAAM,EAAE,EAAE,EACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAClC,WAAW,CAsDb;AAMD,6BAA6B;AAC7B,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,eAAe,CAwE3D"}
@@ -0,0 +1,147 @@
1
+ /**
2
+ * Graph Traversal, All-Pairs Shortest Paths, and Distance-Based Centrality
3
+ *
4
+ * Complements the existing single-source Dijkstra `shortestPath` /
5
+ * `graphDistance` (see `../typed/graph.ts`) with:
6
+ *
7
+ * - `bfs` / `dfs`: visitation-order traversal (directed reading; neighbors
8
+ * visited in ascending index order).
9
+ * - `floydWarshall`: all-pairs shortest-path distances (handles negative
10
+ * edge weights, not negative cycles).
11
+ * - `bellmanFord`: single-source shortest paths, negative-weight-aware,
12
+ * with negative-cycle detection.
13
+ * - `closenessCentrality` / `harmonicCentrality`: distance-based centrality
14
+ * measures (networkx-compatible conventions), built on `floydWarshall`.
15
+ *
16
+ * Input format: adjacency matrix as `number[][]` where `adj[i][j]` is the
17
+ * weight of the directed edge i -> j. Both `Infinity` and `0` (off the
18
+ * diagonal) are treated as "no edge" by the weighted routines
19
+ * (`floydWarshall`, `bellmanFord`, and the centrality functions). `bfs`/`dfs`
20
+ * instead treat any finite, nonzero off-diagonal entry as an edge. Graphs
21
+ * are read as directed (adjacency is never symmetrized).
22
+ *
23
+ * @packageDocumentation
24
+ */
25
+ /**
26
+ * Breadth-first traversal order starting from `start`.
27
+ *
28
+ * A directed edge i -> j exists when `adj[i][j]` is finite and nonzero.
29
+ * Neighbors are visited in ascending index order.
30
+ *
31
+ * @param adj - Adjacency matrix (directed reading; not symmetrized)
32
+ * @param start - Source node index
33
+ * @returns Node indices in BFS visitation order
34
+ *
35
+ * @example
36
+ * const adj = [[0,1,Infinity],[1,0,1],[Infinity,1,0]];
37
+ * bfs(adj, 0) // => [0, 1, 2]
38
+ */
39
+ export declare function bfs(adj: number[][], start: number): number[];
40
+ /**
41
+ * Depth-first traversal order starting from `start` (iterative, preserves
42
+ * ascending-neighbor-order visitation as if implemented recursively).
43
+ *
44
+ * A directed edge i -> j exists when `adj[i][j]` is finite and nonzero.
45
+ *
46
+ * @param adj - Adjacency matrix (directed reading; not symmetrized)
47
+ * @param start - Source node index
48
+ * @returns Node indices in DFS visitation order
49
+ *
50
+ * @example
51
+ * const adj = [[0,1,Infinity],[1,0,1],[Infinity,1,0]];
52
+ * dfs(adj, 0) // => [0, 1, 2]
53
+ */
54
+ export declare function dfs(adj: number[][], start: number): number[];
55
+ /**
56
+ * All-pairs shortest-path distances via the Floyd-Warshall algorithm.
57
+ *
58
+ * `d[i][j]` = 0 if i === j, else `adj[i][j]` when it is a finite nonzero
59
+ * edge, else `Infinity`. Handles negative edge weights. A negative value
60
+ * remaining on the diagonal after the triple loop indicates a negative
61
+ * cycle reachable through that node (not flagged by this function — use
62
+ * `bellmanFord` for explicit negative-cycle detection).
63
+ *
64
+ * Time complexity: O(V^3).
65
+ *
66
+ * @param adj - Adjacency matrix (directed reading)
67
+ * @returns n x n matrix of shortest-path distances
68
+ *
69
+ * @example
70
+ * const adj = [[0,1,Infinity],[1,0,1],[Infinity,1,0]];
71
+ * floydWarshall(adj)[0][2] // => 2
72
+ */
73
+ export declare function floydWarshall(adj: number[][]): number[][];
74
+ /** Result of `bellmanFord`. */
75
+ export interface BellmanFordResult {
76
+ /** Shortest-path distance from source to each node (Infinity if unreachable). */
77
+ dist: number[];
78
+ /** True if a negative-weight cycle is reachable from the source. */
79
+ hasNegativeCycle: boolean;
80
+ }
81
+ /**
82
+ * Single-source shortest paths via the Bellman-Ford algorithm.
83
+ *
84
+ * Handles negative edge weights and detects a negative-weight cycle
85
+ * reachable from `source`: relaxes all edges |V|-1 times, then performs one
86
+ * additional pass — any edge that can still be relaxed indicates a
87
+ * reachable negative cycle.
88
+ *
89
+ * Time complexity: O(V*E) (O(V^3) on a dense adjacency matrix).
90
+ *
91
+ * @param adj - Adjacency matrix (directed reading)
92
+ * @param source - Source node index
93
+ * @returns `{ dist, hasNegativeCycle }`
94
+ *
95
+ * @example
96
+ * const adj = [[0,1,Infinity],[1,0,1],[Infinity,1,0]];
97
+ * bellmanFord(adj, 0) // => { dist: [0, 1, 2], hasNegativeCycle: false }
98
+ */
99
+ export declare function bellmanFord(adj: number[][], source: number): BellmanFordResult;
100
+ /**
101
+ * Closeness centrality for each node, using the networkx (Wasserman &
102
+ * Faust) convention for possibly-disconnected graphs:
103
+ *
104
+ * `C(u) = ((r-1)/(n-1)) * ((r-1)/sum(d))`
105
+ *
106
+ * where `r` is the number of nodes that can reach `u` (including `u`) and
107
+ * `sum(d)` is the sum of shortest-path distances from those nodes to `u`.
108
+ * For a graph where every node reaches all others (`r === n`), this reduces
109
+ * to `(n-1)/sum(d)`. Isolated nodes (`r === 1`) score 0.
110
+ *
111
+ * **Direction note (matches networkx default):** closeness uses the
112
+ * *incoming* distance to `u` for directed graphs — how reachable `u` is
113
+ * *from* the rest of the graph, not how far `u` can reach. This mirrors
114
+ * `networkx.closeness_centrality`'s documented default ("the closeness
115
+ * distance function computes the incoming distance to u for directed
116
+ * graphs"). For undirected graphs (symmetric `adj`) direction is moot.
117
+ *
118
+ * @param adj - Adjacency matrix (directed reading)
119
+ * @returns Closeness centrality score for each node (length = n)
120
+ *
121
+ * @example
122
+ * const adj = [[0,1,Infinity],[1,0,1],[Infinity,1,0]];
123
+ * closenessCentrality(adj) // middle node scores highest
124
+ */
125
+ export declare function closenessCentrality(adj: number[][]): number[];
126
+ /**
127
+ * Harmonic centrality for each node:
128
+ *
129
+ * `H(u) = sum_{v != u} 1/d(v,u)`
130
+ *
131
+ * Unreachable nodes contribute 0 (1/Infinity), so this remains well-defined
132
+ * for disconnected graphs without normalization.
133
+ *
134
+ * **Direction note (matches networkx default):** like closeness, harmonic
135
+ * centrality sums *incoming* distances (`d(v,u)`, from other nodes to `u`),
136
+ * matching `networkx.harmonic_centrality`'s directed-graph default. For
137
+ * undirected graphs (symmetric `adj`) direction is moot.
138
+ *
139
+ * @param adj - Adjacency matrix (directed reading)
140
+ * @returns Harmonic centrality score for each node (length = n)
141
+ *
142
+ * @example
143
+ * const adj = [[0,1,Infinity],[1,0,1],[Infinity,1,0]];
144
+ * harmonicCentrality(adj) // => [1.5, 2, 1.5] (middle node reaches both neighbors at distance 1)
145
+ */
146
+ export declare function harmonicCentrality(adj: number[][]): number[];
147
+ //# sourceMappingURL=traversal-centrality.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traversal-centrality.d.ts","sourceRoot":"","sources":["../../src/graph/traversal-centrality.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAMH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAqB5D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAmB5D;AAeD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CA0BzD;AAMD,+BAA+B;AAC/B,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,oEAAoE;IACpE,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAsC9E;AAMD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CAuB7D;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CAgB5D"}
package/dist/index.d.ts CHANGED
@@ -36,10 +36,21 @@ export { newton, secant, halley } from './numeric/open-root-finders.js';
36
36
  export type { NewtonOptions, SecantOptions, HalleyOptions } from './numeric/open-root-finders.js';
37
37
  export { fsolve, root } from './numeric/fsolve.js';
38
38
  export type { FsolveOptions } from './numeric/fsolve.js';
39
+ export { cg, minres, gmres, bicgstab } from './numeric/krylov.js';
40
+ export type { LinearOperatorInput, Preconditioner, KrylovOptions, GmresOptions, KrylovResult, } from './numeric/krylov.js';
41
+ export { eigsh } from './numeric/eigsh.js';
42
+ export type { EigshOperatorInput, EigshOptions, EigshResult } from './numeric/eigsh.js';
43
+ export { thomasSolve, solveBanded, toeplitzSolve, ldl } from './numeric/structured-solvers.js';
44
+ export type { LDLResult } from './numeric/structured-solvers.js';
45
+ export { funm, cosm, sinm, complexCos, complexSin } from './numeric/matrix-functions.js';
46
+ export type { ComplexValue, ComplexMatrix, ScalarComplexFunction, } from './numeric/matrix-functions.js';
47
+ export { dlyap, care, dare } from './numeric/control-equations.js';
39
48
  export { minimizeScalar } from './numeric/minimize-scalar.js';
40
49
  export type { MinimizeScalarOptions, MinimizeScalarResult } from './numeric/minimize-scalar.js';
41
50
  export { quad } from './numeric/adaptive-quad.js';
42
51
  export type { QuadOptions, QuadResult } from './numeric/adaptive-quad.js';
52
+ export { interpn } from './numeric/interpn.js';
53
+ export type { NDArrayInput } from './numeric/interpn.js';
43
54
  export { movingAverage, ewma, detrend, acf } from './timeseries-extra.js';
44
55
  export { pacf, ljungBox, durbinWatson, adfuller } from './stats/timeseries.js';
45
56
  export type { LjungBoxResult, AdfullerResult } from './stats/timeseries.js';
@@ -76,6 +87,8 @@ export { idwt, wavedec, waverec, cwt } from './signal/wavelets.js';
76
87
  export { findPeaks, peakWidths, csd, coherence, stft, istft, decimate, } from './signal/spectral-peaks.js';
77
88
  export type { FindPeaksOptions, CsdOptions, StftOptions, StftResult, } from './signal/spectral-peaks.js';
78
89
  export { haversine, EARTH_RADIUS_KM, slerp, quaternionMultiply, quaternionConjugate, quaternionNormalize, quaternionFromAxisAngle, quaternionRotate, quaternionToRotationMatrix, } from './geometry-extra.js';
90
+ export { quaternionInverse, quaternionSlerp, quaternionToEuler, boundingBox, procrustes, kdTreeKNN, kdTreeRadius, setIsSuperset, setEqual, setDisjoint, } from './geometry/geometry-extra.js';
91
+ export type { ProcrustesResult } from './geometry/geometry-extra.js';
79
92
  export { noncentralChi2CDF, noncentralFCDF, noncentralTCDF, circmean, circstd, circvar, vonMisesPDF, mcnemar, cochranQ, } from './stats/inference-extra2.js';
80
93
  export type { CircularOptions, McNemarOptions, McNemarResult, CochranQResult, } from './stats/inference-extra2.js';
81
94
  export { hyp0f1, hyp1f1, hyp2f1, pFq } from './special/hypergeometric.js';
@@ -83,4 +96,9 @@ export { polygamma, trigamma, jacobiP, gegenbauerC } from './special/polygamma-o
83
96
  export { jacobiSN, jacobiCN, jacobiDN } from './special/jacobi-elliptic.js';
84
97
  export { rootsLegendre } from './numeric/gauss-nodes.js';
85
98
  export type { RootsLegendreResult } from './numeric/gauss-nodes.js';
99
+ export { bfs, dfs, floydWarshall, bellmanFord, closenessCentrality, harmonicCentrality, } from './graph/traversal-centrality.js';
100
+ export type { BellmanFordResult } from './graph/traversal-centrality.js';
101
+ export { maxFlow, minCut, astar, hungarian } from './graph/optimization.js';
102
+ export type { MaxFlowResult, MinCutResult, AStarResult, HungarianResult, } from './graph/optimization.js';
103
+ export { interval, Interval } from './numeric/interval.js';
86
104
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}