@danielsimonjr/mathts-functions 0.39.0 → 0.40.1
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/dist/geometry/geometry-extra.d.ts +30 -0
- package/dist/geometry/geometry-extra.d.ts.map +1 -1
- package/dist/geometry/intersect3d.d.ts +57 -0
- package/dist/geometry/intersect3d.d.ts.map +1 -0
- package/dist/graph/community-coloring.d.ts +129 -0
- package/dist/graph/community-coloring.d.ts.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +600 -221
- package/dist/typed/graph.d.ts +12 -2
- package/dist/typed/graph.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -28,6 +28,36 @@ export declare function quaternionSlerp(q1: Quat, q2: Quat, t: number): number[]
|
|
|
28
28
|
* quaternionToEuler([1, 0, 0, 0]) // [0, 0, 0]
|
|
29
29
|
*/
|
|
30
30
|
export declare function quaternionToEuler(q: Quat): [number, number, number];
|
|
31
|
+
/**
|
|
32
|
+
* Quaternion logarithm. For a unit quaternion `q = (w, v)`:
|
|
33
|
+
* `log(q) = (0, θ·û)` where `θ = atan2(|v|, w)` and `û = v/|v|`.
|
|
34
|
+
* The zero-vector-part (real/identity) case returns the zero quaternion
|
|
35
|
+
* rather than dividing by zero.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* quaternionLog([1, 0, 0, 0]) // [0, 0, 0, 0]
|
|
39
|
+
*/
|
|
40
|
+
export declare function quaternionLog(q: Quat): number[];
|
|
41
|
+
/**
|
|
42
|
+
* Quaternion exponential. For `q = (w, v)`:
|
|
43
|
+
* `exp(q) = eʷ · (cos|v|, sin|v|·v/|v|)` (the pure-quaternion case `w = 0`
|
|
44
|
+
* reduces to `exp((0, u)) = (cos|u|, sin|u|·û)`, the standard exponential map
|
|
45
|
+
* used to invert {@link quaternionLog}).
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* quaternionExp([0, 0, 0, 0]) // [1, 0, 0, 0]
|
|
49
|
+
*/
|
|
50
|
+
export declare function quaternionExp(q: Quat): number[];
|
|
51
|
+
/**
|
|
52
|
+
* Quaternion power: `pow(q, t) = exp(t · log(q))`. For a unit quaternion
|
|
53
|
+
* representing a rotation, this interpolates/extrapolates the rotation angle
|
|
54
|
+
* by factor `t` about the same axis (`t=1` returns `q`; `t=0` returns the
|
|
55
|
+
* identity `[1, 0, 0, 0]`; `t=2` doubles the rotation).
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* quaternionPow([0.70710678, 0, 0, 0.70710678], 0.5) // [0.92387953, 0, 0, 0.38268343]
|
|
59
|
+
*/
|
|
60
|
+
export declare function quaternionPow(q: Quat, t: number): number[];
|
|
31
61
|
/**
|
|
32
62
|
* Axis-aligned bounding box (per-dimension min/max) of a set of nD points.
|
|
33
63
|
*
|
|
@@ -1 +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"}
|
|
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;AAWD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,CAO/C;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,CAO/C;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAG1D;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,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 3-D ray/segment intersection tests (geometry breadth follow-up): ray↔triangle
|
|
3
|
+
* (Möller–Trumbore), ray↔plane, and closest-points-between-two-segments.
|
|
4
|
+
*
|
|
5
|
+
* Points/vectors are plain `number[]` of length 3, matching the convention
|
|
6
|
+
* used throughout `../typed/geometry.ts` and `intersect.ts`.
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
/** Result of {@link rayTriangleIntersect} / {@link rayPlaneIntersect}: the hit point and ray parameter `t`. */
|
|
11
|
+
export interface RayHit {
|
|
12
|
+
/** Point of intersection: `origin + t·dir`. */
|
|
13
|
+
point: number[];
|
|
14
|
+
/** Ray parameter at the hit (distance along `dir`, when `dir` is unit length). */
|
|
15
|
+
t: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Ray↔triangle intersection via the Möller–Trumbore algorithm. Returns the
|
|
19
|
+
* hit point and ray parameter `t`, or `null` if the ray misses the triangle,
|
|
20
|
+
* is parallel to its plane, or the hit is behind the ray origin (`t < 0`).
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* rayTriangleIntersect([0.25, 0.25, -1], [0, 0, 1], [0, 0, 0], [1, 0, 0], [0, 1, 0])
|
|
24
|
+
* // { point: [0.25, 0.25, 0], t: 1 }
|
|
25
|
+
*/
|
|
26
|
+
export declare function rayTriangleIntersect(origin: readonly number[], dir: readonly number[], v0: readonly number[], v1: readonly number[], v2: readonly number[]): RayHit | null;
|
|
27
|
+
/**
|
|
28
|
+
* Ray↔plane intersection. The plane is given by a point on it and its normal.
|
|
29
|
+
* Returns the hit point and ray parameter `t`, or `null` if the ray is
|
|
30
|
+
* parallel to the plane.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* rayPlaneIntersect([0, 0, -1], [0, 0, 1], [0, 0, 0], [0, 0, 1])
|
|
34
|
+
* // { point: [0, 0, 0], t: 1 }
|
|
35
|
+
*/
|
|
36
|
+
export declare function rayPlaneIntersect(origin: readonly number[], dir: readonly number[], planePoint: readonly number[], planeNormal: readonly number[]): RayHit | null;
|
|
37
|
+
/** Result of {@link segmentSegmentClosest}: the closest point on each segment and their distance. */
|
|
38
|
+
export interface SegmentClosestResult {
|
|
39
|
+
/** Closest point on segment `[p1, p2]`. */
|
|
40
|
+
point1: number[];
|
|
41
|
+
/** Closest point on segment `[q1, q2]`. */
|
|
42
|
+
point2: number[];
|
|
43
|
+
/** Euclidean distance between `point1` and `point2`. */
|
|
44
|
+
distance: number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Closest points between two 3-D line segments `[p1, p2]` and `[q1, q2]`
|
|
48
|
+
* (Ericson, *Real-Time Collision Detection*, `ClosestPtSegmentSegment`).
|
|
49
|
+
* Returns the closest point on each segment and the distance between them
|
|
50
|
+
* (`0` when the segments intersect).
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* segmentSegmentClosest([0,0,0], [1,1,0], [0,1,0], [1,0,0])
|
|
54
|
+
* // { point1: [0.5, 0.5, 0], point2: [0.5, 0.5, 0], distance: 0 }
|
|
55
|
+
*/
|
|
56
|
+
export declare function segmentSegmentClosest(p1: readonly number[], p2: readonly number[], q1: readonly number[], q2: readonly number[]): SegmentClosestResult;
|
|
57
|
+
//# sourceMappingURL=intersect3d.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intersect3d.d.ts","sourceRoot":"","sources":["../../src/geometry/intersect3d.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAwBH,+GAA+G;AAC/G,MAAM,WAAW,MAAM;IACrB,+CAA+C;IAC/C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,kFAAkF;IAClF,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,EAAE,EAAE,SAAS,MAAM,EAAE,EACrB,EAAE,EAAE,SAAS,MAAM,EAAE,EACrB,EAAE,EAAE,SAAS,MAAM,EAAE,GACpB,MAAM,GAAG,IAAI,CAoBf;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,MAAM,GAAG,IAAI,CAKf;AAED,qGAAqG;AACrG,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,2CAA2C;IAC3C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAMD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,SAAS,MAAM,EAAE,EACrB,EAAE,EAAE,SAAS,MAAM,EAAE,EACrB,EAAE,EAAE,SAAS,MAAM,EAAE,EACrB,EAAE,EAAE,SAAS,MAAM,EAAE,GACpB,oBAAoB,CA6CtB"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Graph Coloring, Cliques, Community Detection, Katz Centrality, Isomorphism
|
|
3
|
+
*
|
|
4
|
+
* Complements the existing traversal/shortest-path/centrality/optimization
|
|
5
|
+
* graph functions (`typed/graph.ts`, `graph/traversal-centrality.ts`,
|
|
6
|
+
* `graph/optimization.ts`) with:
|
|
7
|
+
*
|
|
8
|
+
* - `graphColoring`: greedy proper vertex coloring (Welsh-Powell: largest
|
|
9
|
+
* degree first).
|
|
10
|
+
* - `maxClique`: a maximum clique via Bron-Kerbosch with pivoting.
|
|
11
|
+
* - `louvainCommunities`: Louvain modularity community detection.
|
|
12
|
+
* - `katzCentrality`: Katz centrality (matches `networkx.katz_centrality_numpy`).
|
|
13
|
+
* - `isIsomorphic`: graph isomorphism test via backtracking with
|
|
14
|
+
* degree-sequence pruning.
|
|
15
|
+
*
|
|
16
|
+
* Input format: adjacency matrix as `number[][]`, matching the convention
|
|
17
|
+
* used elsewhere in this directory. Structural functions (`graphColoring`,
|
|
18
|
+
* `maxClique`, `isIsomorphic`) treat any finite, nonzero `adj[i][j]` as an
|
|
19
|
+
* edge; `graphColoring`/`maxClique` read the graph as undirected (an edge
|
|
20
|
+
* i-j exists if either `adj[i][j]` or `adj[j][i]` is a finite nonzero
|
|
21
|
+
* value), while `isIsomorphic` reads directed (matching the bfs/dfs/
|
|
22
|
+
* floydWarshall convention — pass a symmetric matrix for undirected graphs).
|
|
23
|
+
* `louvainCommunities`/`katzCentrality` treat `adj[i][j]` as an edge weight
|
|
24
|
+
* (0 = no edge) and require a symmetric (undirected) matrix.
|
|
25
|
+
*
|
|
26
|
+
* @packageDocumentation
|
|
27
|
+
*/
|
|
28
|
+
/**
|
|
29
|
+
* Greedy proper vertex coloring using the Welsh-Powell heuristic: vertices
|
|
30
|
+
* are processed in descending order of (undirected) degree, each assigned
|
|
31
|
+
* the smallest color index not already used by an already-colored neighbor.
|
|
32
|
+
* Ties in degree are broken by ascending vertex index (deterministic).
|
|
33
|
+
*
|
|
34
|
+
* Not guaranteed to use the chromatic number of colors (graph coloring is
|
|
35
|
+
* NP-hard in general) — this is a fast heuristic upper bound, but the
|
|
36
|
+
* result is always a *proper* coloring (no edge connects two same-colored
|
|
37
|
+
* vertices).
|
|
38
|
+
*
|
|
39
|
+
* @param adj - Adjacency matrix (undirected reading: `adj[i][j]` or
|
|
40
|
+
* `adj[j][i]` nonzero means an edge)
|
|
41
|
+
* @returns Color index (0-based) for each vertex, length = n
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* const adj = [[0,1,1],[1,0,1],[1,1,0]]; // triangle K3
|
|
45
|
+
* graphColoring(adj) // => [0, 1, 2] (needs 3 colors)
|
|
46
|
+
*/
|
|
47
|
+
export declare function graphColoring(adj: number[][]): number[];
|
|
48
|
+
/**
|
|
49
|
+
* Find a maximum clique (largest set of mutually adjacent vertices) via the
|
|
50
|
+
* Bron-Kerbosch algorithm with pivoting, exploring all maximal cliques and
|
|
51
|
+
* keeping the largest. Exact (not a heuristic), but exponential worst-case —
|
|
52
|
+
* intended for small-to-moderate graphs.
|
|
53
|
+
*
|
|
54
|
+
* @param adj - Adjacency matrix (undirected reading)
|
|
55
|
+
* @returns Vertex indices of a maximum clique, ascending order
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* // triangle 0-1-2 plus a pendant 3 attached only to 0
|
|
59
|
+
* const adj = [[0,1,1,1],[1,0,1,0],[1,1,0,0],[1,0,0,0]];
|
|
60
|
+
* maxClique(adj) // => [0, 1, 2]
|
|
61
|
+
*/
|
|
62
|
+
export declare function maxClique(adj: number[][]): number[];
|
|
63
|
+
/**
|
|
64
|
+
* Louvain modularity-maximization community detection.
|
|
65
|
+
*
|
|
66
|
+
* Alternates a local-moving phase (greedily move each node into the
|
|
67
|
+
* neighboring community that most increases modularity, deterministic
|
|
68
|
+
* tie-break per `_louvainLocalMoving`) with an aggregation phase (collapse
|
|
69
|
+
* each found community into a super-node) until a local-moving pass leaves
|
|
70
|
+
* every node in its own singleton community (no further merge possible).
|
|
71
|
+
*
|
|
72
|
+
* Heuristic and **not** guaranteed to find the globally optimal partition,
|
|
73
|
+
* but deterministic — no random seed is used, so the same graph always
|
|
74
|
+
* produces the same partition.
|
|
75
|
+
*
|
|
76
|
+
* @param adj - Weighted undirected adjacency matrix (symmetric; `adj[i][j]`
|
|
77
|
+
* = edge weight, 0 = no edge)
|
|
78
|
+
* @returns Partition as an array of vertex-index groups (every vertex
|
|
79
|
+
* appears in exactly one group)
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* // Two triangles 0-1-2 and 3-4-5 joined by a single bridge edge 2-3
|
|
83
|
+
* louvainCommunities(adj) // => [[0,1,2],[3,4,5]] (two communities)
|
|
84
|
+
*/
|
|
85
|
+
export declare function louvainCommunities(adj: number[][]): number[][];
|
|
86
|
+
/**
|
|
87
|
+
* Katz centrality: `x = alpha * A^T * x + beta`, solved directly via
|
|
88
|
+
* `x = (I - alpha*A^T)^-1 * (beta * 1)`, then normalized so
|
|
89
|
+
* `sign(sum(x)) * ||x||_2 = 1` — matching `networkx.katz_centrality_numpy`'s
|
|
90
|
+
* convention exactly (including its "use A^T so directed graphs measure
|
|
91
|
+
* in-edges" default). For an undirected (symmetric) `adj`, `A^T = A`.
|
|
92
|
+
*
|
|
93
|
+
* `alpha` must be strictly less than `1 / λ_max(A)` (the reciprocal of the
|
|
94
|
+
* adjacency matrix's largest eigenvalue) for the system to be well-posed;
|
|
95
|
+
* an ill-conditioned/singular system throws.
|
|
96
|
+
*
|
|
97
|
+
* @param adj - Adjacency matrix (directed reading; weighted or unweighted)
|
|
98
|
+
* @param alpha - Attenuation factor (must satisfy `alpha < 1/λ_max`)
|
|
99
|
+
* @param beta - Constant added at every node (default 1)
|
|
100
|
+
* @returns L2-normalized Katz centrality score per vertex
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* const adj = [[0,1,1],[1,0,1],[1,1,0]]; // triangle K3
|
|
104
|
+
* katzCentrality(adj, 0.1) // all three equal (symmetric graph)
|
|
105
|
+
*/
|
|
106
|
+
export declare function katzCentrality(adj: number[][], alpha: number, beta?: number): number[];
|
|
107
|
+
/**
|
|
108
|
+
* Test whether two graphs are isomorphic: does there exist a bijection
|
|
109
|
+
* `f` between their vertices such that `i -> j` is an edge in `graphA` iff
|
|
110
|
+
* `f(i) -> f(j)` is an edge in `graphB`?
|
|
111
|
+
*
|
|
112
|
+
* Sound and complete backtracking search (not a heuristic): a quick reject
|
|
113
|
+
* compares sorted (out-degree, in-degree) sequences, then a permutation
|
|
114
|
+
* search builds the bijection incrementally, checking edge-consistency
|
|
115
|
+
* against every previously-mapped vertex at each step. Exponential
|
|
116
|
+
* worst-case (graph isomorphism has no known polynomial algorithm in
|
|
117
|
+
* general) — intended for small-to-moderate graphs.
|
|
118
|
+
*
|
|
119
|
+
* @param graphA - Adjacency matrix (directed reading)
|
|
120
|
+
* @param graphB - Adjacency matrix (directed reading)
|
|
121
|
+
* @returns Whether the two graphs are isomorphic
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* const k3 = [[0,1,1],[1,0,1],[1,1,0]];
|
|
125
|
+
* const c3 = [[0,1,1],[1,0,1],[1,1,0]]; // C3 === K3 for n=3
|
|
126
|
+
* isIsomorphic(k3, c3) // => true
|
|
127
|
+
*/
|
|
128
|
+
export declare function isIsomorphic(graphA: number[][], graphB: number[][]): boolean;
|
|
129
|
+
//# sourceMappingURL=community-coloring.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"community-coloring.d.ts","sourceRoot":"","sources":["../../src/graph/community-coloring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAwBH;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CA6BvD;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CAyCnD;AA8GD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CA8B9D;AA+CD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,GAAG,MAAM,EAAE,CAsBzF;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CA4D5E"}
|
package/dist/index.d.ts
CHANGED
|
@@ -87,8 +87,10 @@ export { idwt, wavedec, waverec, cwt } from './signal/wavelets.js';
|
|
|
87
87
|
export { findPeaks, peakWidths, csd, coherence, stft, istft, decimate, } from './signal/spectral-peaks.js';
|
|
88
88
|
export type { FindPeaksOptions, CsdOptions, StftOptions, StftResult, } from './signal/spectral-peaks.js';
|
|
89
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';
|
|
90
|
+
export { quaternionInverse, quaternionSlerp, quaternionToEuler, quaternionLog, quaternionExp, quaternionPow, boundingBox, procrustes, kdTreeKNN, kdTreeRadius, setIsSuperset, setEqual, setDisjoint, } from './geometry/geometry-extra.js';
|
|
91
91
|
export type { ProcrustesResult } from './geometry/geometry-extra.js';
|
|
92
|
+
export { rayTriangleIntersect, rayPlaneIntersect, segmentSegmentClosest, } from './geometry/intersect3d.js';
|
|
93
|
+
export type { RayHit, SegmentClosestResult } from './geometry/intersect3d.js';
|
|
92
94
|
export { noncentralChi2CDF, noncentralFCDF, noncentralTCDF, circmean, circstd, circvar, vonMisesPDF, mcnemar, cochranQ, } from './stats/inference-extra2.js';
|
|
93
95
|
export type { CircularOptions, McNemarOptions, McNemarResult, CochranQResult, } from './stats/inference-extra2.js';
|
|
94
96
|
export { hyp0f1, hyp1f1, hyp2f1, pFq } from './special/hypergeometric.js';
|
|
@@ -101,4 +103,5 @@ export type { BellmanFordResult } from './graph/traversal-centrality.js';
|
|
|
101
103
|
export { maxFlow, minCut, astar, hungarian } from './graph/optimization.js';
|
|
102
104
|
export type { MaxFlowResult, MinCutResult, AStarResult, HungarianResult, } from './graph/optimization.js';
|
|
103
105
|
export { interval, Interval } from './numeric/interval.js';
|
|
106
|
+
export { graphColoring, maxClique, louvainCommunities, katzCentrality, isIsomorphic, } from './graph/community-coloring.js';
|
|
104
107
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,cAAc,kBAAkB,CAAC;AAKjC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAOzC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGlG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAMjC,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACnF,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,GAAG,EACH,MAAM,EACN,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACT,UAAU,EACV,cAAc,EACd,GAAG,EACH,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,GACV,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,KAAK,EACL,OAAO,EACP,SAAS,EACT,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,aAAa,EACb,OAAO,EACP,YAAY,EACZ,SAAS,EACT,SAAS,EACT,cAAc,EACd,UAAU,EACV,UAAU,EACV,eAAe,EACf,WAAW,EACX,WAAW,EACX,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,KAAK,EACL,UAAU,EACV,aAAa,EACb,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,wBAAwB,EACxB,QAAQ,GACT,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,SAAS,EACT,SAAS,EACT,MAAM,EACN,eAAe,EACf,cAAc,EACd,EAAE,GACH,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAKxD,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AACnD,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,YAAY,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAIzF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAIlG,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMzD,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAClE,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,YAAY,GACb,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOxF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AAC/F,YAAY,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAQjE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACzF,YAAY,EACV,YAAY,EACZ,aAAa,EACb,qBAAqB,GACtB,MAAM,+BAA+B,CAAC;AAQvC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAKnE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAKhG,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAM1E,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAI1E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC/E,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGzD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC1E,YAAY,EACV,YAAY,EACZ,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,YAAY,EACV,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAInE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIzE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC3E,YAAY,EACV,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAM3F,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACjE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAK1D,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EACV,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGxF,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAIpG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAIpG,OAAO,EACL,cAAc,EACd,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,UAAU,GACX,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAIlE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAKnE,OAAO,EACL,SAAS,EACT,UAAU,EACV,GAAG,EACH,SAAS,EACT,IAAI,EACJ,KAAK,EACL,QAAQ,GACT,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,UAAU,GACX,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,SAAS,EACT,eAAe,EACf,KAAK,EACL,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,WAAW,GACZ,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|