@danielsimonjr/mathts-functions 0.49.0 → 0.50.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,36 @@
1
+ /**
2
+ * Alpha shape (2-D) — a consumer of the Delaunay triangulation.
3
+ *
4
+ * An alpha shape generalises the convex hull: it keeps only the Delaunay
5
+ * triangles whose circumradius is `≤ 1/alpha`, then returns the boundary of
6
+ * that region (edges belonging to exactly one kept triangle). Large `alpha`
7
+ * hugs the point set tightly; `alpha → 0` recovers the convex hull. With the
8
+ * right `alpha`, an annulus-shaped point cloud yields a shape with a hole.
9
+ *
10
+ * Pinned on a known shape (annulus → recovers the hole: two boundary loops) in
11
+ * `functions/tests/geometry-consumers-oracle.test.ts`.
12
+ *
13
+ * @packageDocumentation
14
+ */
15
+ /** Structured alpha-shape result. */
16
+ export interface AlphaShapeResult {
17
+ /** Kept Delaunay triangles (circumradius ≤ 1/alpha), as index triples. */
18
+ triangles: number[][];
19
+ /**
20
+ * Boundary edges of the alpha shape — the edges that belong to exactly one
21
+ * kept triangle — as index pairs `[i, j]` with `i < j`.
22
+ */
23
+ edges: number[][];
24
+ }
25
+ /**
26
+ * Alpha shape of a set of 2-D points.
27
+ *
28
+ * @param points - Array of `[x, y]` points (at least 3, not all collinear).
29
+ * @param alpha - Positive alpha parameter; triangles with circumradius `≤ 1/alpha`
30
+ * are kept. Smaller `alpha` → looser shape (→ convex hull); larger `alpha` →
31
+ * tighter shape that can open holes/concavities.
32
+ * @returns An {@link AlphaShapeResult} (kept triangles + boundary edges).
33
+ * @throws When given fewer than 3 points, a non-2-D point set, or `alpha ≤ 0`.
34
+ */
35
+ export declare function alphaShape(points: number[][], alpha: number): AlphaShapeResult;
36
+ //# sourceMappingURL=alpha-shape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alpha-shape.d.ts","sourceRoot":"","sources":["../../src/geometry/alpha-shape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;IACtB;;;OAGG;IACH,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;CACnB;AAcD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,CA8B9E"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Delaunay triangulation (2-D) — part of the computational-geometry engine.
3
+ *
4
+ * `delaunay` triangulates a 2-D point set so that no point lies strictly inside
5
+ * the circumcircle of any triangle (the empty-circumcircle / Delaunay
6
+ * property). It reuses the package's Bowyer–Watson kernel and returns a
7
+ * structured result whose `simplices` mirror `scipy.spatial.Delaunay.simplices`
8
+ * (triangles as triples of point indices).
9
+ *
10
+ * The triangulation is not unique on cocircular points, so it is pinned by
11
+ * implementation-independent invariants (every input point is a vertex, the
12
+ * triangles partition the convex hull, and the empty-circumcircle property) —
13
+ * see `functions/tests/geometry-delaunay-oracle.test.ts`.
14
+ *
15
+ * @packageDocumentation
16
+ */
17
+ /** Structured Delaunay result (mirrors `scipy.spatial.Delaunay`). */
18
+ export interface DelaunayResult {
19
+ /** Triangles as triples of indices into the input `points`. */
20
+ simplices: number[][];
21
+ }
22
+ /**
23
+ * Delaunay triangulation of a set of 2-D points.
24
+ *
25
+ * @param points - Array of `[x, y]` points (at least 3, not all collinear).
26
+ * @returns A {@link DelaunayResult}.
27
+ * @throws When given fewer than 3 points or a non-2-D point set.
28
+ *
29
+ * @example
30
+ * delaunay([[0,0],[1,0],[0,1],[1,1],[0.5,0.5]]).simplices.length // 4
31
+ */
32
+ export declare function delaunay(points: number[][]): DelaunayResult;
33
+ //# sourceMappingURL=delaunay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delaunay.d.ts","sourceRoot":"","sources":["../../src/geometry/delaunay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,qEAAqE;AACrE,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,cAAc,CAQ3D"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Convex hull — the foundation of the computational-geometry engine.
3
+ *
4
+ * `convexHull` accepts a set of 2-D or 3-D points and returns a structured
5
+ * result (`vertices`, `simplices`, `area`, `volume`) whose fields mirror
6
+ * `scipy.spatial.ConvexHull`:
7
+ *
8
+ * - **2-D:** Andrew's monotone-chain algorithm (O(n log n)). `vertices` are the
9
+ * indices of the hull points in counter-clockwise order; `simplices` are the
10
+ * boundary edges (index pairs); `area` is the **perimeter** and `volume` is
11
+ * the **enclosed area** (matching SciPy's `.area` / `.volume` convention in
12
+ * 2-D).
13
+ * - **3-D:** incremental QuickHull (reusing the package's `convexHull3D`
14
+ * kernel). `simplices` are the triangular facets (index triples, oriented CCW
15
+ * as seen from outside); `area` is the **surface area** and `volume` the
16
+ * enclosed **volume**.
17
+ *
18
+ * Pinned against `scipy.spatial.ConvexHull` (vertex set + area/volume) in
19
+ * `functions/tests/geometry-hull-oracle.test.ts`.
20
+ *
21
+ * @packageDocumentation
22
+ */
23
+ /** Structured convex-hull result (mirrors `scipy.spatial.ConvexHull`). */
24
+ export interface ConvexHullResult {
25
+ /**
26
+ * Indices of the input points that lie on the hull. In 2-D these are in
27
+ * counter-clockwise order; in 3-D they are sorted ascending.
28
+ */
29
+ vertices: number[];
30
+ /**
31
+ * Hull facets as arrays of point indices: edges `[i, j]` in 2-D, triangles
32
+ * `[i, j, k]` in 3-D (CCW from outside).
33
+ */
34
+ simplices: number[][];
35
+ /** SciPy `.area`: **perimeter** in 2-D, **surface area** in 3-D. */
36
+ area: number;
37
+ /** SciPy `.volume`: **enclosed area** in 2-D, **enclosed volume** in 3-D. */
38
+ volume: number;
39
+ }
40
+ /**
41
+ * Convex hull of a set of 2-D or 3-D points.
42
+ *
43
+ * @param points - Array of points, all `[x, y]` (2-D) or all `[x, y, z]` (3-D).
44
+ * @returns A {@link ConvexHullResult}.
45
+ * @throws When fewer than 3 (2-D) / 4 (3-D) points are given, or the points are
46
+ * not 2- or 3-dimensional.
47
+ *
48
+ * @example
49
+ * convexHull([[0,0],[2,0],[2,2],[0,2],[1,1]])
50
+ * // { vertices: [0,1,2,3], simplices: [[0,1],[1,2],[2,3],[3,0]], area: 8, volume: 4 }
51
+ */
52
+ export declare function convexHull(points: number[][]): ConvexHullResult;
53
+ //# sourceMappingURL=hull.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hull.d.ts","sourceRoot":"","sources":["../../src/geometry/hull.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,0EAA0E;AAC1E,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;IACtB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;CAChB;AA+FD;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,gBAAgB,CAc/D"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Spherical Voronoi diagram — a consumer of the 3-D convex hull.
3
+ *
4
+ * For points on a sphere, the convex hull of the points IS the spherical
5
+ * Delaunay triangulation; the Voronoi vertices are the circumcenters of the
6
+ * hull facets projected onto the sphere (equivalently, the facet normals scaled
7
+ * to the sphere radius). `sphericalVoronoi` returns those vertices, each
8
+ * generator's region (as an ordered ring of vertex indices), and the geodesic
9
+ * area of each region.
10
+ *
11
+ * Pinned against `scipy.spatial.SphericalVoronoi` (vertex count `= 2N − 4` and
12
+ * region areas summing to `4πr²`) in
13
+ * `functions/tests/geometry-consumers-oracle.test.ts`.
14
+ *
15
+ * @packageDocumentation
16
+ */
17
+ /** Structured spherical-Voronoi result (mirrors `scipy.spatial.SphericalVoronoi`). */
18
+ export interface SphericalVoronoiResult {
19
+ /** Voronoi vertices on the sphere (the hull facets' circumcenters). */
20
+ vertices: number[][];
21
+ /**
22
+ * Per input point: the ordered ring of vertex indices (into
23
+ * {@link SphericalVoronoiResult.vertices}) bounding that generator's cell.
24
+ */
25
+ regions: number[][];
26
+ /** Per input point: the geodesic (surface) area of its Voronoi cell. */
27
+ areas: number[];
28
+ }
29
+ /**
30
+ * Spherical Voronoi diagram of points on a sphere.
31
+ *
32
+ * @param points - Array of `[x, y, z]` points on (or near) the sphere. At least
33
+ * 4 points, not all coplanar with the centre.
34
+ * @param radius - Sphere radius (default `1`).
35
+ * @param center - Sphere centre (default origin).
36
+ * @returns A {@link SphericalVoronoiResult}.
37
+ * @throws When given fewer than 4 points or a non-3-D point set.
38
+ */
39
+ export declare function sphericalVoronoi(points: number[][], radius?: number, center?: number[]): SphericalVoronoiResult;
40
+ //# sourceMappingURL=spherical-voronoi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spherical-voronoi.d.ts","sourceRoot":"","sources":["../../src/geometry/spherical-voronoi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,sFAAsF;AACtF,MAAM,WAAW,sBAAsB;IACrC,uEAAuE;IACvE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;IACrB;;;OAGG;IACH,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;IACpB,wEAAwE;IACxE,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAqCD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EAAE,EAAE,EAClB,MAAM,SAAI,EACV,MAAM,GAAE,MAAM,EAAc,GAC3B,sBAAsB,CAwExB"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Voronoi diagram (2-D) — a consumer of the Delaunay triangulation.
3
+ *
4
+ * The Voronoi diagram is the dual of the Delaunay triangulation: each Delaunay
5
+ * triangle contributes one Voronoi vertex (its circumcenter), and two Voronoi
6
+ * vertices are joined by a ridge when their triangles share an edge. `voronoi`
7
+ * returns the (unbounded) Voronoi vertices, the Delaunay triangle each one came
8
+ * from, and the region (set of incident Voronoi vertices) of every generator.
9
+ *
10
+ * Pinned via implementation-independent invariants (Voronoi vertices are the
11
+ * Delaunay circumcenters; each vertex's three generators are its nearest
12
+ * generators — the dual empty-circumcircle property) in
13
+ * `functions/tests/geometry-consumers-oracle.test.ts`.
14
+ *
15
+ * @packageDocumentation
16
+ */
17
+ /** Structured Voronoi result (dual of the Delaunay triangulation). */
18
+ export interface VoronoiResult {
19
+ /** Voronoi vertices — the circumcenters of the Delaunay triangles. */
20
+ vertices: number[][];
21
+ /**
22
+ * The Delaunay triangle (triple of input-point indices) that produced each
23
+ * Voronoi vertex, parallel to {@link VoronoiResult.vertices}.
24
+ */
25
+ simplices: number[][];
26
+ /**
27
+ * Per input point: the indices (into `vertices`) of the Voronoi vertices on
28
+ * the boundary of that point's Voronoi cell (unordered). Bounded cells of
29
+ * interior points are closed; unbounded cells of hull points are open.
30
+ */
31
+ regions: number[][];
32
+ }
33
+ /**
34
+ * Voronoi diagram of a set of 2-D points (the dual of {@link delaunay}).
35
+ *
36
+ * @param points - Array of `[x, y]` points (at least 3, not all collinear).
37
+ * @returns A {@link VoronoiResult}.
38
+ * @throws When given fewer than 3 points or a non-2-D point set.
39
+ *
40
+ * @example
41
+ * voronoi([[0,0],[1,0],[0,1],[1,1],[0.5,0.5]]).vertices.length // == triangle count
42
+ */
43
+ export declare function voronoi(points: number[][]): VoronoiResult;
44
+ //# sourceMappingURL=voronoi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voronoi.d.ts","sourceRoot":"","sources":["../../src/geometry/voronoi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,sEAAsE;IACtE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;IACrB;;;OAGG;IACH,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;IACtB;;;;OAIG;IACH,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;CACrB;AAcD;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,aAAa,CAczD"}
package/dist/index.d.ts CHANGED
@@ -98,6 +98,16 @@ export { quaternionInverse, quaternionSlerp, quaternionToEuler, quaternionLog, q
98
98
  export type { ProcrustesResult } from './geometry/geometry-extra.js';
99
99
  export { rayTriangleIntersect, rayPlaneIntersect, segmentSegmentClosest, } from './geometry/intersect3d.js';
100
100
  export type { RayHit, SegmentClosestResult } from './geometry/intersect3d.js';
101
+ export { convexHull } from './geometry/hull.js';
102
+ export type { ConvexHullResult } from './geometry/hull.js';
103
+ export { delaunay } from './geometry/delaunay.js';
104
+ export type { DelaunayResult } from './geometry/delaunay.js';
105
+ export { voronoi } from './geometry/voronoi.js';
106
+ export type { VoronoiResult } from './geometry/voronoi.js';
107
+ export { alphaShape } from './geometry/alpha-shape.js';
108
+ export type { AlphaShapeResult } from './geometry/alpha-shape.js';
109
+ export { sphericalVoronoi } from './geometry/spherical-voronoi.js';
110
+ export type { SphericalVoronoiResult } from './geometry/spherical-voronoi.js';
101
111
  export { noncentralChi2CDF, noncentralFCDF, noncentralTCDF, circmean, circstd, circvar, vonMisesPDF, mcnemar, cochranQ, } from './stats/inference-extra2.js';
102
112
  export type { CircularOptions, McNemarOptions, McNemarResult, CochranQResult, } from './stats/inference-extra2.js';
103
113
  export { hyp0f1, hyp1f1, hyp2f1, pFq } from './special/hypergeometric.js';
@@ -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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"}
package/dist/index.js CHANGED
@@ -112,7 +112,7 @@ __export(typed_exports, {
112
112
  cond: () => cond,
113
113
  conj: () => conj,
114
114
  connectedComponents: () => connectedComponents,
115
- convexHull: () => convexHull,
115
+ convexHull2D: () => convexHull2D,
116
116
  convexHull3D: () => convexHull3D,
117
117
  convolve: () => convolve,
118
118
  coordinateTransform: () => coordinateTransform,
@@ -2281,9 +2281,9 @@ var mean = mathTyped2("mean", {
2281
2281
  return result.result;
2282
2282
  }
2283
2283
  });
2284
- function varianceFromM2(m2, n, norm4) {
2284
+ function varianceFromM2(m2, n, norm5) {
2285
2285
  if (n === 0) return NaN;
2286
- switch (norm4) {
2286
+ switch (norm5) {
2287
2287
  case "biased":
2288
2288
  return m2 / (n + 1);
2289
2289
  case "uncorrected":
@@ -2298,31 +2298,31 @@ function m2OfArray(arr10) {
2298
2298
  }
2299
2299
  var variance = mathTyped2("variance", {
2300
2300
  Array: (arr10) => varianceFromM2(m2OfArray(arr10), arr10.length, "unbiased"),
2301
- "Array, string": (arr10, norm4) => varianceFromM2(m2OfArray(arr10), arr10.length, norm4),
2301
+ "Array, string": (arr10, norm5) => varianceFromM2(m2OfArray(arr10), arr10.length, norm5),
2302
2302
  // Parallel Float64Array variance. computePool returns POPULATION variance
2303
2303
  // (sum2/n); recover sum2 = pop·n and renormalize for the requested convention.
2304
2304
  Float64Array: async (a) => {
2305
2305
  const result = await computePool.variance(a);
2306
2306
  return varianceFromM2(result.result.variance * a.length, a.length, "unbiased");
2307
2307
  },
2308
- "Float64Array, string": async (a, norm4) => {
2308
+ "Float64Array, string": async (a, norm5) => {
2309
2309
  const result = await computePool.variance(a);
2310
- return varianceFromM2(result.result.variance * a.length, a.length, norm4);
2310
+ return varianceFromM2(result.result.variance * a.length, a.length, norm5);
2311
2311
  }
2312
2312
  });
2313
2313
  var std = mathTyped2("std", {
2314
2314
  Array: (arr10) => Math.sqrt(varianceFromM2(m2OfArray(arr10), arr10.length, "unbiased")),
2315
- "Array, string": (arr10, norm4) => Math.sqrt(varianceFromM2(m2OfArray(arr10), arr10.length, norm4)),
2315
+ "Array, string": (arr10, norm5) => Math.sqrt(varianceFromM2(m2OfArray(arr10), arr10.length, norm5)),
2316
2316
  // Parallel Float64Array std — derive from the (renormalized) variance so the
2317
2317
  // convention matches the Array path and parallelStatStd.
2318
2318
  Float64Array: async (a) => {
2319
2319
  const result = await computePool.variance(a);
2320
2320
  return Math.sqrt(varianceFromM2(result.result.variance * a.length, a.length, "unbiased"));
2321
2321
  },
2322
- "Float64Array, string": async (a, norm4) => {
2322
+ "Float64Array, string": async (a, norm5) => {
2323
2323
  const result = await computePool.variance(a);
2324
2324
  return Math.sqrt(
2325
- varianceFromM2(result.result.variance * a.length, a.length, norm4)
2325
+ varianceFromM2(result.result.variance * a.length, a.length, norm5)
2326
2326
  );
2327
2327
  }
2328
2328
  });
@@ -3589,8 +3589,8 @@ function welchPSDJS(samples, frameLength, overlap, windowType) {
3589
3589
  start += hop;
3590
3590
  }
3591
3591
  if (numFrames === 0) return new Float64Array(0);
3592
- const norm4 = numFrames * frameLength * winPower;
3593
- for (let k = 0; k < psdLen; k++) psd[k] /= norm4;
3592
+ const norm5 = numFrames * frameLength * winPower;
3593
+ for (let k = 0; k < psdLen; k++) psd[k] /= norm5;
3594
3594
  for (let k = 1; k < psdLen - 1; k++) psd[k] *= 2;
3595
3595
  return psd;
3596
3596
  }
@@ -8551,18 +8551,18 @@ import { computePool as computePool7 } from "@danielsimonjr/mathts-parallel";
8551
8551
  var GEOMETRY_WASM_THRESHOLD = 32;
8552
8552
  var HULL3D_WASM_THRESHOLD = 1024;
8553
8553
  function angle2D(v1, v2) {
8554
- const dot8 = v1[0] * v2[0] + v1[1] * v2[1];
8554
+ const dot9 = v1[0] * v2[0] + v1[1] * v2[1];
8555
8555
  const mag1 = Math.sqrt(v1[0] ** 2 + v1[1] ** 2);
8556
8556
  const mag2 = Math.sqrt(v2[0] ** 2 + v2[1] ** 2);
8557
8557
  if (mag1 === 0 || mag2 === 0) return NaN;
8558
- return Math.acos(Math.max(-1, Math.min(1, dot8 / (mag1 * mag2))));
8558
+ return Math.acos(Math.max(-1, Math.min(1, dot9 / (mag1 * mag2))));
8559
8559
  }
8560
8560
  function angle3D(v1, v2) {
8561
- const dot8 = v1[0] * v2[0] + v1[1] * v2[1] + v1[2] * v2[2];
8561
+ const dot9 = v1[0] * v2[0] + v1[1] * v2[1] + v1[2] * v2[2];
8562
8562
  const mag1 = Math.sqrt(v1[0] ** 2 + v1[1] ** 2 + v1[2] ** 2);
8563
8563
  const mag2 = Math.sqrt(v2[0] ** 2 + v2[1] ** 2 + v2[2] ** 2);
8564
8564
  if (mag1 === 0 || mag2 === 0) return NaN;
8565
- return Math.acos(Math.max(-1, Math.min(1, dot8 / (mag1 * mag2))));
8565
+ return Math.acos(Math.max(-1, Math.min(1, dot9 / (mag1 * mag2))));
8566
8566
  }
8567
8567
  function cross3D(a, b) {
8568
8568
  return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];
@@ -8584,7 +8584,7 @@ function polygonArea(vertices) {
8584
8584
  }
8585
8585
  return Math.abs(area2) / 2;
8586
8586
  }
8587
- function convexHull(points) {
8587
+ function convexHull2D(points) {
8588
8588
  const n = points.length;
8589
8589
  if (n <= 1) return points.slice();
8590
8590
  if (n === 2) return points.slice();
@@ -8606,12 +8606,12 @@ function convexHull(points) {
8606
8606
  } else {
8607
8607
  sorted = points.slice().sort((a, b) => a[0] - b[0] || a[1] - b[1]);
8608
8608
  }
8609
- function cross3(o, a, b) {
8609
+ function cross4(o, a, b) {
8610
8610
  return (a[0] - o[0]) * (b[1] - o[1]) - (a[1] - o[1]) * (b[0] - o[0]);
8611
8611
  }
8612
8612
  const lower = [];
8613
8613
  for (const p of sorted) {
8614
- while (lower.length >= 2 && cross3(lower[lower.length - 2], lower[lower.length - 1], p) <= 0) {
8614
+ while (lower.length >= 2 && cross4(lower[lower.length - 2], lower[lower.length - 1], p) <= 0) {
8615
8615
  lower.pop();
8616
8616
  }
8617
8617
  lower.push(p);
@@ -8619,7 +8619,7 @@ function convexHull(points) {
8619
8619
  const upper = [];
8620
8620
  for (let i = sorted.length - 1; i >= 0; i--) {
8621
8621
  const p = sorted[i];
8622
- while (upper.length >= 2 && cross3(upper[upper.length - 2], upper[upper.length - 1], p) <= 0) {
8622
+ while (upper.length >= 2 && cross4(upper[upper.length - 2], upper[upper.length - 1], p) <= 0) {
8623
8623
  upper.pop();
8624
8624
  }
8625
8625
  upper.push(p);
@@ -8667,14 +8667,14 @@ function reflectVector(v, normal) {
8667
8667
  const mag = Math.sqrt(normal.reduce((s, c) => s + c * c, 0));
8668
8668
  if (mag === 0) return v.slice();
8669
8669
  const n = normal.map((c) => c / mag);
8670
- const dot8 = v.reduce((s, c, i) => s + c * n[i], 0);
8671
- return v.map((c, i) => c - 2 * dot8 * n[i]);
8670
+ const dot9 = v.reduce((s, c, i) => s + c * n[i], 0);
8671
+ return v.map((c, i) => c - 2 * dot9 * n[i]);
8672
8672
  }
8673
8673
  function projectVector(v, onto) {
8674
- const dot8 = v.reduce((s, c, i) => s + c * onto[i], 0);
8674
+ const dot9 = v.reduce((s, c, i) => s + c * onto[i], 0);
8675
8675
  const magSq = onto.reduce((s, c) => s + c * c, 0);
8676
8676
  if (magSq === 0) return onto.map(() => 0);
8677
- const scale4 = dot8 / magSq;
8677
+ const scale4 = dot9 / magSq;
8678
8678
  return onto.map((c) => c * scale4);
8679
8679
  }
8680
8680
  function distance2D(a, b) {
@@ -8750,10 +8750,10 @@ function centroid(vertices) {
8750
8750
  let cy = 0;
8751
8751
  for (let i = 0; i < n; i++) {
8752
8752
  const j = (i + 1) % n;
8753
- const cross3 = vertices[i][0] * vertices[j][1] - vertices[j][0] * vertices[i][1];
8754
- signedArea += cross3;
8755
- cx += (vertices[i][0] + vertices[j][0]) * cross3;
8756
- cy += (vertices[i][1] + vertices[j][1]) * cross3;
8753
+ const cross4 = vertices[i][0] * vertices[j][1] - vertices[j][0] * vertices[i][1];
8754
+ signedArea += cross4;
8755
+ cx += (vertices[i][0] + vertices[j][0]) * cross4;
8756
+ cy += (vertices[i][1] + vertices[j][1]) * cross4;
8757
8757
  }
8758
8758
  signedArea /= 2;
8759
8759
  cx /= 6 * signedArea;
@@ -8840,37 +8840,6 @@ function minkowskiDistance(a, b, p) {
8840
8840
  function delaunayTriangulation(points) {
8841
8841
  const n = points.length;
8842
8842
  if (n < 3) return [];
8843
- if (n >= GEOMETRY_WASM_THRESHOLD) {
8844
- const wasm = wasmLoader.getModule();
8845
- if (wasm) {
8846
- try {
8847
- const flat = new Float64Array(n * 2);
8848
- for (let i = 0; i < n; i++) {
8849
- flat[i * 2] = points[i][0];
8850
- flat[i * 2 + 1] = points[i][1];
8851
- }
8852
- const ptsAlloc = wasmLoader.allocateFloat64Array(flat);
8853
- const maxTris = 2 * n;
8854
- const trisAlloc = wasmLoader.allocateInt32ArrayEmpty(maxTris * 3);
8855
- try {
8856
- const numTris = wasm.delaunay_wasm(ptsAlloc.ptr, n, trisAlloc.ptr);
8857
- const result = [];
8858
- for (let i = 0; i < numTris; i++) {
8859
- result.push([
8860
- trisAlloc.array[i * 3],
8861
- trisAlloc.array[i * 3 + 1],
8862
- trisAlloc.array[i * 3 + 2]
8863
- ]);
8864
- }
8865
- return result;
8866
- } finally {
8867
- wasmLoader.free(ptsAlloc.ptr);
8868
- wasmLoader.free(trisAlloc.ptr);
8869
- }
8870
- } catch {
8871
- }
8872
- }
8873
- }
8874
8843
  let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
8875
8844
  for (const p of points) {
8876
8845
  minX = Math.min(minX, p[0]);
@@ -15157,11 +15126,11 @@ function _eigenvectorOnce(adj, maxIter, tol, seed) {
15157
15126
  if (adj[j][i] > 0) next[i] += adj[j][i] * x[j];
15158
15127
  }
15159
15128
  }
15160
- let norm4 = 0;
15161
- for (let i = 0; i < n; i++) norm4 += next[i] * next[i];
15162
- norm4 = Math.sqrt(norm4);
15163
- if (norm4 < 1e-15) break;
15164
- for (let i = 0; i < n; i++) next[i] /= norm4;
15129
+ let norm5 = 0;
15130
+ for (let i = 0; i < n; i++) norm5 += next[i] * next[i];
15131
+ norm5 = Math.sqrt(norm5);
15132
+ if (norm5 < 1e-15) break;
15133
+ for (let i = 0; i < n; i++) next[i] /= norm5;
15165
15134
  let delta = 0;
15166
15135
  for (let i = 0; i < n; i++) delta = Math.max(delta, Math.abs(next[i] - x[i]));
15167
15136
  x = next;
@@ -15174,9 +15143,9 @@ function _aggregateEigenvector(vectors, aggregation) {
15174
15143
  const count2 = vectors.length;
15175
15144
  const ref = vectors[0];
15176
15145
  const aligned = vectors.map((v) => {
15177
- let dot8 = 0;
15178
- for (let i = 0; i < n; i++) dot8 += v[i] * ref[i];
15179
- if (dot8 < 0) {
15146
+ let dot9 = 0;
15147
+ for (let i = 0; i < n; i++) dot9 += v[i] * ref[i];
15148
+ if (dot9 < 0) {
15180
15149
  const flipped = new Float64Array(n);
15181
15150
  for (let i = 0; i < n; i++) flipped[i] = -v[i];
15182
15151
  return flipped;
@@ -15188,11 +15157,11 @@ function _aggregateEigenvector(vectors, aggregation) {
15188
15157
  for (let i = 0; i < n; i++) mean7[i] += v[i];
15189
15158
  }
15190
15159
  for (let i = 0; i < n; i++) mean7[i] /= count2;
15191
- let norm4 = 0;
15192
- for (let i = 0; i < n; i++) norm4 += mean7[i] * mean7[i];
15193
- norm4 = Math.sqrt(norm4);
15194
- if (norm4 > 1e-15) {
15195
- for (let i = 0; i < n; i++) mean7[i] /= norm4;
15160
+ let norm5 = 0;
15161
+ for (let i = 0; i < n; i++) norm5 += mean7[i] * mean7[i];
15162
+ norm5 = Math.sqrt(norm5);
15163
+ if (norm5 > 1e-15) {
15164
+ for (let i = 0; i < n; i++) mean7[i] /= norm5;
15196
15165
  }
15197
15166
  if (aggregation === "mean") {
15198
15167
  return { centrality: mean7 };
@@ -17103,11 +17072,11 @@ function principalComponentAnalysis(data, k) {
17103
17072
  Av[i] += A[i][j] * v[j];
17104
17073
  }
17105
17074
  }
17106
- let norm4 = 0;
17107
- for (let i = 0; i < p; i++) norm4 += Av[i] * Av[i];
17108
- norm4 = Math.sqrt(norm4);
17109
- if (norm4 === 0) break;
17110
- const vNew = Av.map((x) => x / norm4);
17075
+ let norm5 = 0;
17076
+ for (let i = 0; i < p; i++) norm5 += Av[i] * Av[i];
17077
+ norm5 = Math.sqrt(norm5);
17078
+ if (norm5 === 0) break;
17079
+ const vNew = Av.map((x) => x / norm5);
17111
17080
  let diff2 = 0;
17112
17081
  for (let i = 0; i < p; i++) diff2 += (vNew[i] - v[i]) ** 2;
17113
17082
  v = vNew;
@@ -17132,9 +17101,9 @@ function principalComponentAnalysis(data, k) {
17132
17101
  const explained = eigenvalues.map((ev) => totalVar > 0 ? Math.abs(ev) / totalVar : 0);
17133
17102
  const scores = centered.map((row2) => {
17134
17103
  return eigenvectors.map((ev) => {
17135
- let dot8 = 0;
17136
- for (let j = 0; j < p; j++) dot8 += row2[j] * ev[j];
17137
- return dot8;
17104
+ let dot9 = 0;
17105
+ for (let j = 0; j < p; j++) dot9 += row2[j] * ev[j];
17106
+ return dot9;
17138
17107
  });
17139
17108
  });
17140
17109
  return { components: eigenvectors, explained, scores };
@@ -17733,30 +17702,30 @@ function hessenbergForm(A) {
17733
17702
  if (normV < 1e-30) continue;
17734
17703
  const beta2 = 2 / normV;
17735
17704
  for (let j = k; j < n; j++) {
17736
- let dot8 = 0;
17705
+ let dot9 = 0;
17737
17706
  for (let i = 0; i < len; i++) {
17738
- dot8 += v[i] * H[k + 1 + i][j];
17707
+ dot9 += v[i] * H[k + 1 + i][j];
17739
17708
  }
17740
17709
  for (let i = 0; i < len; i++) {
17741
- H[k + 1 + i][j] -= beta2 * v[i] * dot8;
17710
+ H[k + 1 + i][j] -= beta2 * v[i] * dot9;
17742
17711
  }
17743
17712
  }
17744
17713
  for (let i = 0; i < n; i++) {
17745
- let dot8 = 0;
17714
+ let dot9 = 0;
17746
17715
  for (let j = 0; j < len; j++) {
17747
- dot8 += H[i][k + 1 + j] * v[j];
17716
+ dot9 += H[i][k + 1 + j] * v[j];
17748
17717
  }
17749
17718
  for (let j = 0; j < len; j++) {
17750
- H[i][k + 1 + j] -= beta2 * dot8 * v[j];
17719
+ H[i][k + 1 + j] -= beta2 * dot9 * v[j];
17751
17720
  }
17752
17721
  }
17753
17722
  for (let i = 0; i < n; i++) {
17754
- let dot8 = 0;
17723
+ let dot9 = 0;
17755
17724
  for (let j = 0; j < len; j++) {
17756
- dot8 += Q2[i][k + 1 + j] * v[j];
17725
+ dot9 += Q2[i][k + 1 + j] * v[j];
17757
17726
  }
17758
17727
  for (let j = 0; j < len; j++) {
17759
- Q2[i][k + 1 + j] -= beta2 * dot8 * v[j];
17728
+ Q2[i][k + 1 + j] -= beta2 * dot9 * v[j];
17760
17729
  }
17761
17730
  }
17762
17731
  }
@@ -18125,11 +18094,11 @@ function findKernelVector(A, n, tol) {
18125
18094
  }
18126
18095
  }
18127
18096
  }
18128
- let norm4 = 0;
18129
- for (let i = 0; i < n; i++) norm4 += v[i] * v[i];
18130
- norm4 = Math.sqrt(norm4);
18131
- if (norm4 > 1e-15) {
18132
- for (let i = 0; i < n; i++) v[i] /= norm4;
18097
+ let norm5 = 0;
18098
+ for (let i = 0; i < n; i++) norm5 += v[i] * v[i];
18099
+ norm5 = Math.sqrt(norm5);
18100
+ if (norm5 > 1e-15) {
18101
+ for (let i = 0; i < n; i++) v[i] /= norm5;
18133
18102
  }
18134
18103
  return v;
18135
18104
  }
@@ -18166,11 +18135,11 @@ async function solveApprox(A, b, n) {
18166
18135
  }
18167
18136
  }
18168
18137
  const x = M.map((row2) => row2[n]);
18169
- let norm4 = 0;
18170
- for (let i = 0; i < n; i++) norm4 += x[i] * x[i];
18171
- norm4 = Math.sqrt(norm4);
18172
- if (norm4 > 1e-15) {
18173
- for (let i = 0; i < n; i++) x[i] /= norm4;
18138
+ let norm5 = 0;
18139
+ for (let i = 0; i < n; i++) norm5 += x[i] * x[i];
18140
+ norm5 = Math.sqrt(norm5);
18141
+ if (norm5 > 1e-15) {
18142
+ for (let i = 0; i < n; i++) x[i] /= norm5;
18174
18143
  }
18175
18144
  return x;
18176
18145
  }
@@ -30180,7 +30149,7 @@ var createPinv = /* @__PURE__ */ factory(
30180
30149
  deepEqual: deepEqual3,
30181
30150
  equal: equal2,
30182
30151
  dotDivide: dotDivide2,
30183
- dot: dot8,
30152
+ dot: dot9,
30184
30153
  ctranspose: ctranspose2,
30185
30154
  divideScalar: divideScalar2,
30186
30155
  multiply: multiply2,
@@ -30196,7 +30165,7 @@ var createPinv = /* @__PURE__ */ factory(
30196
30165
  if (size2[0] === 1) {
30197
30166
  return inv3(x);
30198
30167
  } else {
30199
- return dotDivide2(ctranspose2(x), dot8(x, x));
30168
+ return dotDivide2(ctranspose2(x), dot9(x, x));
30200
30169
  }
30201
30170
  case 2: {
30202
30171
  if (_isZeros(x)) return ctranspose2(x);
@@ -30275,8 +30244,8 @@ var createPinv = /* @__PURE__ */ factory(
30275
30244
  }
30276
30245
  function _rankFact(mat, rows, cols) {
30277
30246
  const rref = _rref(mat, rows, cols);
30278
- const C = mat.map((row2) => row2.filter((_, j) => j < rows && !_isZero(dot8(rref[j], rref[j]))));
30279
- const F = rref.filter((_, i) => !_isZero(dot8(rref[i], rref[i])));
30247
+ const C = mat.map((row2) => row2.filter((_, j) => j < rows && !_isZero(dot9(rref[j], rref[j]))));
30248
+ const F = rref.filter((_, i) => !_isZero(dot9(rref[i], rref[i])));
30280
30249
  return { C, F };
30281
30250
  }
30282
30251
  function _isZero(x) {
@@ -37197,7 +37166,7 @@ function createComplexEigs({
37197
37166
  larger: larger2,
37198
37167
  smaller: smaller2,
37199
37168
  matrixFromColumns: _matrixFromColumns,
37200
- dot: dot8
37169
+ dot: dot9
37201
37170
  }) {
37202
37171
  function complexEigs(arr10, N, prec, type, findVectors = true) {
37203
37172
  if (!findVectors && type === "number" && N * N >= WASM_EIGS_THRESHOLD) {
@@ -37568,11 +37537,11 @@ function createComplexEigs({
37568
37537
  M[i] = Array(N).fill(0);
37569
37538
  }
37570
37539
  let I2 = 0;
37571
- for (const sub2 of arr10) {
37572
- const n = sub2.length;
37540
+ for (const sub3 of arr10) {
37541
+ const n = sub3.length;
37573
37542
  for (let i = 0; i < n; i++) {
37574
37543
  for (let j = 0; j < n; j++) {
37575
- M[I2 + i][I2 + j] = sub2[i][j];
37544
+ M[I2 + i][I2 + j] = sub3[i][j];
37576
37545
  }
37577
37546
  }
37578
37547
  I2 += n;
@@ -37598,7 +37567,7 @@ function createComplexEigs({
37598
37567
  } catch {
37599
37568
  continue;
37600
37569
  }
37601
- if (larger2(norm4(b), largeNum)) {
37570
+ if (larger2(norm5(b), largeNum)) {
37602
37571
  break;
37603
37572
  }
37604
37573
  }
@@ -37608,13 +37577,13 @@ function createComplexEigs({
37608
37577
  i = 0;
37609
37578
  while (true) {
37610
37579
  const c = usolve2(A, b);
37611
- if (smaller2(norm4(orthogonalComplement(b, [c])), prec)) {
37580
+ if (smaller2(norm5(orthogonalComplement(b, [c])), prec)) {
37612
37581
  break;
37613
37582
  }
37614
37583
  if (++i >= 10) {
37615
37584
  return null;
37616
37585
  }
37617
- b = normalize2(c, type);
37586
+ b = normalize3(c, type);
37618
37587
  }
37619
37588
  return b;
37620
37589
  }
@@ -37629,7 +37598,7 @@ function createComplexEigs({
37629
37598
  v = v.map((n) => complex3(n));
37630
37599
  }
37631
37600
  v = orthogonalComplement(v, orthog);
37632
- return normalize2(v, type);
37601
+ return normalize3(v, type);
37633
37602
  }
37634
37603
  function orthogonalComplement(v, orthog) {
37635
37604
  const vectorShape = size2(v);
@@ -37638,21 +37607,21 @@ function createComplexEigs({
37638
37607
  v = subtract3(
37639
37608
  v,
37640
37609
  multiply2(
37641
- divideScalar2(dot8(w, v), dot8(w, w)),
37610
+ divideScalar2(dot9(w, v), dot9(w, w)),
37642
37611
  w
37643
37612
  )
37644
37613
  );
37645
37614
  }
37646
37615
  return v;
37647
37616
  }
37648
- function norm4(v) {
37649
- return abs2(sqrt2(dot8(v, v)));
37617
+ function norm5(v) {
37618
+ return abs2(sqrt2(dot9(v, v)));
37650
37619
  }
37651
- function normalize2(v, type) {
37620
+ function normalize3(v, type) {
37652
37621
  const big = type === "BigNumber";
37653
37622
  const cplx = type === "Complex";
37654
37623
  const one = big ? bignumber2(1) : cplx ? complex3(1) : 1;
37655
- return multiply2(divideScalar2(one, norm4(v)), v);
37624
+ return multiply2(divideScalar2(one, norm5(v)), v);
37656
37625
  }
37657
37626
  return complexEigs;
37658
37627
  }
@@ -38066,7 +38035,7 @@ var createEigs = /* @__PURE__ */ factory(
38066
38035
  re: re3,
38067
38036
  smaller: smaller2,
38068
38037
  matrixFromColumns: matrixFromColumns2,
38069
- dot: dot8
38038
+ dot: dot9
38070
38039
  }) => {
38071
38040
  const doRealSymmetric = createRealSymmetric({
38072
38041
  config: config2,
@@ -38105,7 +38074,7 @@ var createEigs = /* @__PURE__ */ factory(
38105
38074
  larger: larger2,
38106
38075
  smaller: smaller2,
38107
38076
  matrixFromColumns: matrixFromColumns2,
38108
- dot: dot8
38077
+ dot: dot9
38109
38078
  });
38110
38079
  return typed3("eigs", {
38111
38080
  // The conversion to matrix in the first two implementations,
@@ -40852,7 +40821,7 @@ var createRotationMatrix = /* @__PURE__ */ factory(
40852
40821
  multiplyScalar: multiplyScalar2,
40853
40822
  addScalar: addScalar2,
40854
40823
  unaryMinus: unaryMinus2,
40855
- norm: norm4,
40824
+ norm: norm5,
40856
40825
  BigNumber: BigNumber9,
40857
40826
  matrix: matrix2,
40858
40827
  DenseMatrix: DenseMatrix7,
@@ -40926,7 +40895,7 @@ var createRotationMatrix = /* @__PURE__ */ factory(
40926
40895
  return data;
40927
40896
  }
40928
40897
  function _rotationMatrix3x3(theta, v, format4) {
40929
- const normV = norm4(v);
40898
+ const normV = norm5(v);
40930
40899
  if (normV === 0) {
40931
40900
  throw new RangeError("Rotation around zero vector");
40932
40901
  }
@@ -42963,11 +42932,11 @@ function multivariateTaylor(expr, vars, x0, n = 1) {
42963
42932
  const fmp = evalWith(expr, s);
42964
42933
  s[vars[j]] = x0[j] - h;
42965
42934
  const fmm = evalWith(expr, s);
42966
- const cross3 = (fpp - fpm - fmp + fmm) / (4 * h * h);
42967
- if (Math.abs(cross3) < 1e-12) continue;
42935
+ const cross4 = (fpp - fpm - fmp + fmm) / (4 * h * h);
42936
+ if (Math.abs(cross4) < 1e-12) continue;
42968
42937
  const xi = x0[i] === 0 ? vars[i] : `(${vars[i]} - ${formatCoeff(x0[i])})`;
42969
42938
  const xj = x0[j] === 0 ? vars[j] : `(${vars[j]} - ${formatCoeff(x0[j])})`;
42970
- terms.push(`${formatCoeff(cross3)}*${xi}*${xj}`);
42939
+ terms.push(`${formatCoeff(cross4)}*${xi}*${xj}`);
42971
42940
  }
42972
42941
  }
42973
42942
  }
@@ -45950,12 +45919,12 @@ function svds(A, k = 1, opts) {
45950
45919
  }
45951
45920
 
45952
45921
  // src/numeric/structured-solvers.ts
45953
- function thomasSolve(sub2, diag2, sup, d) {
45922
+ function thomasSolve(sub3, diag2, sup, d) {
45954
45923
  const n = diag2.length;
45955
45924
  if (n === 0) return [];
45956
- if (sub2.length !== n - 1 || sup.length !== n - 1 || d.length !== n) {
45925
+ if (sub3.length !== n - 1 || sup.length !== n - 1 || d.length !== n) {
45957
45926
  throw new Error(
45958
- `thomasSolve: expected sub/sup of length ${n - 1} and d of length ${n}, got sub=${sub2.length}, sup=${sup.length}, d=${d.length}`
45927
+ `thomasSolve: expected sub/sup of length ${n - 1} and d of length ${n}, got sub=${sub3.length}, sup=${sup.length}, d=${d.length}`
45959
45928
  );
45960
45929
  }
45961
45930
  const cp = new Array(n).fill(0);
@@ -45964,12 +45933,12 @@ function thomasSolve(sub2, diag2, sup, d) {
45964
45933
  cp[0] = n > 1 ? sup[0] / diag2[0] : 0;
45965
45934
  dp[0] = d[0] / diag2[0];
45966
45935
  for (let i = 1; i < n; i++) {
45967
- const m = diag2[i] - sub2[i - 1] * cp[i - 1];
45936
+ const m = diag2[i] - sub3[i - 1] * cp[i - 1];
45968
45937
  if (m === 0) {
45969
45938
  throw new Error(`thomasSolve: zero pivot at row ${i} (no pivoting is performed)`);
45970
45939
  }
45971
45940
  cp[i] = i < n - 1 ? sup[i] / m : 0;
45972
- dp[i] = (d[i] - sub2[i - 1] * dp[i - 1]) / m;
45941
+ dp[i] = (d[i] - sub3[i - 1] * dp[i - 1]) / m;
45973
45942
  }
45974
45943
  const x = new Array(n);
45975
45944
  x[n - 1] = dp[n - 1];
@@ -47554,17 +47523,17 @@ function nelderMead(f, x0, opts = {}) {
47554
47523
  return c;
47555
47524
  };
47556
47525
  const add4 = (a, b, s) => a.map((v, i) => v + s * b[i]);
47557
- const sub2 = (a, b) => a.map((v, i) => v - b[i]);
47526
+ const sub3 = (a, b) => a.map((v, i) => v - b[i]);
47558
47527
  for (; iter < maxIter; iter++) {
47559
47528
  const order = fv.map((_, i) => i).sort((i, j) => fv[i] - fv[j]);
47560
47529
  simplex = order.map((i) => simplex[i]);
47561
47530
  fv = order.map((i) => fv[i]);
47562
47531
  if (Math.abs(fv[n] - fv[0]) <= tol * (Math.abs(fv[0]) + tol)) break;
47563
47532
  const c = centroid2(simplex.slice(0, n));
47564
- const xr = add4(c, sub2(c, simplex[n]), alpha);
47533
+ const xr = add4(c, sub3(c, simplex[n]), alpha);
47565
47534
  const fr = f(xr);
47566
47535
  if (fr < fv[0]) {
47567
- const xe = add4(c, sub2(c, simplex[n]), gamma2);
47536
+ const xe = add4(c, sub3(c, simplex[n]), gamma2);
47568
47537
  const fe = f(xe);
47569
47538
  if (fe < fr) {
47570
47539
  simplex[n] = xe;
@@ -47577,14 +47546,14 @@ function nelderMead(f, x0, opts = {}) {
47577
47546
  simplex[n] = xr;
47578
47547
  fv[n] = fr;
47579
47548
  } else {
47580
- const xc = add4(c, sub2(simplex[n], c), rho);
47549
+ const xc = add4(c, sub3(simplex[n], c), rho);
47581
47550
  const fc = f(xc);
47582
47551
  if (fc < fv[n]) {
47583
47552
  simplex[n] = xc;
47584
47553
  fv[n] = fc;
47585
47554
  } else {
47586
47555
  for (let i = 1; i <= n; i++) {
47587
- simplex[i] = add4(simplex[0], sub2(simplex[i], simplex[0]), sigma);
47556
+ simplex[i] = add4(simplex[0], sub3(simplex[i], simplex[0]), sigma);
47588
47557
  fv[i] = f(simplex[i]);
47589
47558
  }
47590
47559
  }
@@ -50204,12 +50173,12 @@ function rickerWavelet(points, scale4) {
50204
50173
  return out;
50205
50174
  }
50206
50175
  function morletWavelet(points, scale4) {
50207
- const norm4 = 1 / (Math.sqrt(scale4) * Math.pow(Math.PI, 0.25));
50176
+ const norm5 = 1 / (Math.sqrt(scale4) * Math.pow(Math.PI, 0.25));
50208
50177
  const out = new Array(points);
50209
50178
  const center3 = (points - 1) / 2;
50210
50179
  for (let i = 0; i < points; i++) {
50211
50180
  const t = (i - center3) / scale4;
50212
- out[i] = norm4 * Math.cos(5 * t) * Math.exp(-(t * t) / 2);
50181
+ out[i] = norm5 * Math.cos(5 * t) * Math.exp(-(t * t) / 2);
50213
50182
  }
50214
50183
  return out;
50215
50184
  }
@@ -50756,6 +50725,264 @@ function segmentSegmentClosest(p1, p2, q1, q2) {
50756
50725
  return { point1, point2, distance: distance2 };
50757
50726
  }
50758
50727
 
50728
+ // src/geometry/hull.ts
50729
+ function hull2DIndices(points) {
50730
+ const n = points.length;
50731
+ const order = Array.from({ length: n }, (_, i) => i).sort(
50732
+ (a, b) => points[a][0] - points[b][0] || points[a][1] - points[b][1]
50733
+ );
50734
+ const cross4 = (o, a, b) => (points[a][0] - points[o][0]) * (points[b][1] - points[o][1]) - (points[a][1] - points[o][1]) * (points[b][0] - points[o][0]);
50735
+ const lower = [];
50736
+ for (const i of order) {
50737
+ while (lower.length >= 2 && cross4(lower[lower.length - 2], lower[lower.length - 1], i) <= 0) {
50738
+ lower.pop();
50739
+ }
50740
+ lower.push(i);
50741
+ }
50742
+ const upper = [];
50743
+ for (let k = order.length - 1; k >= 0; k--) {
50744
+ const i = order[k];
50745
+ while (upper.length >= 2 && cross4(upper[upper.length - 2], upper[upper.length - 1], i) <= 0) {
50746
+ upper.pop();
50747
+ }
50748
+ upper.push(i);
50749
+ }
50750
+ lower.pop();
50751
+ upper.pop();
50752
+ return lower.concat(upper);
50753
+ }
50754
+ function convexHull2D2(points) {
50755
+ const vertices = hull2DIndices(points);
50756
+ const m = vertices.length;
50757
+ const simplices = [];
50758
+ let signedArea = 0;
50759
+ let perimeter = 0;
50760
+ for (let k = 0; k < m; k++) {
50761
+ const i = vertices[k];
50762
+ const j = vertices[(k + 1) % m];
50763
+ simplices.push([i, j]);
50764
+ const a = points[i];
50765
+ const b = points[j];
50766
+ signedArea += a[0] * b[1] - b[0] * a[1];
50767
+ perimeter += Math.hypot(b[0] - a[0], b[1] - a[1]);
50768
+ }
50769
+ return { vertices, simplices, area: perimeter, volume: Math.abs(signedArea) / 2 };
50770
+ }
50771
+ function convexHull3DResult(points) {
50772
+ const faces = convexHull3D(points);
50773
+ const vertexSet = /* @__PURE__ */ new Set();
50774
+ let volume6 = 0;
50775
+ let surface = 0;
50776
+ for (const [ia, ib, ic] of faces) {
50777
+ vertexSet.add(ia);
50778
+ vertexSet.add(ib);
50779
+ vertexSet.add(ic);
50780
+ const a = points[ia];
50781
+ const b = points[ib];
50782
+ const c = points[ic];
50783
+ volume6 += a[0] * (b[1] * c[2] - b[2] * c[1]) - a[1] * (b[0] * c[2] - b[2] * c[0]) + a[2] * (b[0] * c[1] - b[1] * c[0]);
50784
+ const ux = b[0] - a[0];
50785
+ const uy = b[1] - a[1];
50786
+ const uz = b[2] - a[2];
50787
+ const vx = c[0] - a[0];
50788
+ const vy = c[1] - a[1];
50789
+ const vz = c[2] - a[2];
50790
+ const cx = uy * vz - uz * vy;
50791
+ const cy = uz * vx - ux * vz;
50792
+ const cz = ux * vy - uy * vx;
50793
+ surface += Math.hypot(cx, cy, cz) / 2;
50794
+ }
50795
+ return {
50796
+ vertices: Array.from(vertexSet).sort((a, b) => a - b),
50797
+ simplices: faces.map((f) => [...f]),
50798
+ area: surface,
50799
+ volume: Math.abs(volume6) / 6
50800
+ };
50801
+ }
50802
+ function convexHull(points) {
50803
+ if (!Array.isArray(points) || points.length === 0) {
50804
+ throw new Error("convexHull: requires a non-empty array of points");
50805
+ }
50806
+ const dim = points[0].length;
50807
+ if (dim === 2) {
50808
+ if (points.length < 3) throw new Error("convexHull: 2-D hull requires at least 3 points");
50809
+ return convexHull2D2(points);
50810
+ }
50811
+ if (dim === 3) {
50812
+ if (points.length < 4) throw new Error("convexHull: 3-D hull requires at least 4 points");
50813
+ return convexHull3DResult(points);
50814
+ }
50815
+ throw new Error(`convexHull: only 2-D and 3-D point sets are supported (got dimension ${dim})`);
50816
+ }
50817
+
50818
+ // src/geometry/delaunay.ts
50819
+ function delaunay(points) {
50820
+ if (!Array.isArray(points) || points.length < 3) {
50821
+ throw new Error("delaunay: requires at least 3 points");
50822
+ }
50823
+ if (points[0].length !== 2) {
50824
+ throw new Error("delaunay: only 2-D point sets are supported");
50825
+ }
50826
+ return { simplices: delaunayTriangulation(points).map((t) => [...t]) };
50827
+ }
50828
+
50829
+ // src/geometry/voronoi.ts
50830
+ function circumcenter(a, b, c) {
50831
+ const d = 2 * (a[0] * (b[1] - c[1]) + b[0] * (c[1] - a[1]) + c[0] * (a[1] - b[1]));
50832
+ if (Math.abs(d) < 1e-15) return null;
50833
+ const a2 = a[0] * a[0] + a[1] * a[1];
50834
+ const b2 = b[0] * b[0] + b[1] * b[1];
50835
+ const c2 = c[0] * c[0] + c[1] * c[1];
50836
+ const ux = (a2 * (b[1] - c[1]) + b2 * (c[1] - a[1]) + c2 * (a[1] - b[1])) / d;
50837
+ const uy = (a2 * (c[0] - b[0]) + b2 * (a[0] - c[0]) + c2 * (b[0] - a[0])) / d;
50838
+ return [ux, uy];
50839
+ }
50840
+ function voronoi(points) {
50841
+ const { simplices: tris } = delaunay(points);
50842
+ const vertices = [];
50843
+ const simplices = [];
50844
+ const regions = Array.from({ length: points.length }, () => []);
50845
+ for (const t of tris) {
50846
+ const cc = circumcenter(points[t[0]], points[t[1]], points[t[2]]);
50847
+ if (cc === null) continue;
50848
+ const vIdx = vertices.length;
50849
+ vertices.push(cc);
50850
+ simplices.push([...t]);
50851
+ for (const p of t) regions[p].push(vIdx);
50852
+ }
50853
+ return { vertices, simplices, regions };
50854
+ }
50855
+
50856
+ // src/geometry/alpha-shape.ts
50857
+ function circumradius(a, b, c) {
50858
+ const d = 2 * (a[0] * (b[1] - c[1]) + b[0] * (c[1] - a[1]) + c[0] * (a[1] - b[1]));
50859
+ if (Math.abs(d) < 1e-15) return Infinity;
50860
+ const a2 = a[0] * a[0] + a[1] * a[1];
50861
+ const b2 = b[0] * b[0] + b[1] * b[1];
50862
+ const c2 = c[0] * c[0] + c[1] * c[1];
50863
+ const ux = (a2 * (b[1] - c[1]) + b2 * (c[1] - a[1]) + c2 * (a[1] - b[1])) / d;
50864
+ const uy = (a2 * (c[0] - b[0]) + b2 * (a[0] - c[0]) + c2 * (b[0] - a[0])) / d;
50865
+ return Math.hypot(a[0] - ux, a[1] - uy);
50866
+ }
50867
+ function alphaShape(points, alpha) {
50868
+ if (!(alpha > 0)) throw new Error("alphaShape: alpha must be positive");
50869
+ const { simplices: tris } = delaunay(points);
50870
+ const threshold = 1 / alpha;
50871
+ const triangles = [];
50872
+ const edgeCount = /* @__PURE__ */ new Map();
50873
+ for (const t of tris) {
50874
+ if (circumradius(points[t[0]], points[t[1]], points[t[2]]) > threshold) continue;
50875
+ triangles.push([...t]);
50876
+ const es = [
50877
+ [t[0], t[1]],
50878
+ [t[1], t[2]],
50879
+ [t[2], t[0]]
50880
+ ];
50881
+ for (const [u, v] of es) {
50882
+ const key = `${Math.min(u, v)},${Math.max(u, v)}`;
50883
+ edgeCount.set(key, (edgeCount.get(key) ?? 0) + 1);
50884
+ }
50885
+ }
50886
+ const edges = [];
50887
+ for (const [key, count2] of edgeCount) {
50888
+ if (count2 === 1) {
50889
+ const [lo, hi] = key.split(",").map(Number);
50890
+ edges.push([lo, hi]);
50891
+ }
50892
+ }
50893
+ return { triangles, edges };
50894
+ }
50895
+
50896
+ // src/geometry/spherical-voronoi.ts
50897
+ function sub2(a, b) {
50898
+ return [a[0] - b[0], a[1] - b[1], a[2] - b[2]];
50899
+ }
50900
+ function cross3(a, b) {
50901
+ return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];
50902
+ }
50903
+ function dot8(a, b) {
50904
+ return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
50905
+ }
50906
+ function norm4(a) {
50907
+ return Math.hypot(a[0], a[1], a[2]);
50908
+ }
50909
+ function normalize2(a) {
50910
+ const n = norm4(a) || 1;
50911
+ return [a[0] / n, a[1] / n, a[2] / n];
50912
+ }
50913
+ function geodesicAngle(u, v) {
50914
+ return Math.atan2(norm4(cross3(u, v)), dot8(u, v));
50915
+ }
50916
+ function sphericalTriangleArea(a, b, c) {
50917
+ const A = geodesicAngle(b, c);
50918
+ const B = geodesicAngle(a, c);
50919
+ const C = geodesicAngle(a, b);
50920
+ const s = (A + B + C) / 2;
50921
+ const t = Math.tan(s / 2) * Math.tan((s - A) / 2) * Math.tan((s - B) / 2) * Math.tan((s - C) / 2);
50922
+ return 4 * Math.atan(Math.sqrt(Math.max(0, t)));
50923
+ }
50924
+ function sphericalVoronoi(points, radius = 1, center3 = [0, 0, 0]) {
50925
+ if (!Array.isArray(points) || points.length < 4) {
50926
+ throw new Error("sphericalVoronoi: requires at least 4 points");
50927
+ }
50928
+ if (points[0].length !== 3) {
50929
+ throw new Error("sphericalVoronoi: only 3-D point sets are supported");
50930
+ }
50931
+ const gen = points.map((p) => normalize2(sub2(p, center3)));
50932
+ const faces = convexHull3D(points);
50933
+ const vertices = [];
50934
+ const vertDir = [];
50935
+ const incident = Array.from({ length: points.length }, () => []);
50936
+ faces.forEach((f, fi) => {
50937
+ const a = gen[f[0]];
50938
+ const b = gen[f[1]];
50939
+ const c = gen[f[2]];
50940
+ let nrm = cross3(sub2(b, a), sub2(c, a));
50941
+ if (dot8(nrm, a) < 0) nrm = [-nrm[0], -nrm[1], -nrm[2]];
50942
+ const dir = normalize2(nrm);
50943
+ vertDir.push(dir);
50944
+ vertices.push([
50945
+ center3[0] + radius * dir[0],
50946
+ center3[1] + radius * dir[1],
50947
+ center3[2] + radius * dir[2]
50948
+ ]);
50949
+ for (const p of f) incident[p].push(fi);
50950
+ });
50951
+ const regions = [];
50952
+ const areas = [];
50953
+ for (let g = 0; g < points.length; g++) {
50954
+ const gdir = gen[g];
50955
+ const facs = incident[g];
50956
+ let ref = null;
50957
+ const withAngle = facs.map((fi) => {
50958
+ const d = vertDir[fi];
50959
+ const tang = normalize2(
50960
+ sub2(d, [gdir[0] * dot8(d, gdir), gdir[1] * dot8(d, gdir), gdir[2] * dot8(d, gdir)])
50961
+ );
50962
+ if (ref === null) {
50963
+ ref = tang;
50964
+ return { fi, ang: 0 };
50965
+ }
50966
+ const x = dot8(tang, ref);
50967
+ const y = dot8(cross3(gdir, ref), tang);
50968
+ let ang = Math.atan2(y, x);
50969
+ if (ang < 0) ang += 2 * Math.PI;
50970
+ return { fi, ang };
50971
+ });
50972
+ withAngle.sort((p, q) => p.ang - q.ang);
50973
+ const ring = withAngle.map((w) => w.fi);
50974
+ regions.push(ring);
50975
+ let area2 = 0;
50976
+ for (let k = 0; k < ring.length; k++) {
50977
+ const v1 = vertDir[ring[k]];
50978
+ const v2 = vertDir[ring[(k + 1) % ring.length]];
50979
+ area2 += sphericalTriangleArea(gdir, v1, v2);
50980
+ }
50981
+ areas.push(area2 * radius * radius);
50982
+ }
50983
+ return { vertices, regions, areas };
50984
+ }
50985
+
50759
50986
  // src/stats/inference-extra2.ts
50760
50987
  var TWO_PI = 2 * Math.PI;
50761
50988
  function noncentralChi2CDF(x, df, nc) {
@@ -51965,9 +52192,9 @@ function katzCentrality(adj, alpha, beta2 = 1) {
51965
52192
  sum3 += xi;
51966
52193
  sumSq += xi * xi;
51967
52194
  }
51968
- const norm4 = Math.sign(sum3) * Math.sqrt(sumSq);
51969
- if (norm4 === 0) return x;
51970
- return x.map((xi) => xi / norm4);
52195
+ const norm5 = Math.sign(sum3) * Math.sqrt(sumSq);
52196
+ if (norm5 === 0) return x;
52197
+ return x.map((xi) => xi / norm5);
51971
52198
  }
51972
52199
  function isIsomorphic(graphA, graphB) {
51973
52200
  const n = graphA.length;
@@ -52522,6 +52749,7 @@ export {
52522
52749
  adjacencyMatrix,
52523
52750
  airyAi,
52524
52751
  airyBi,
52752
+ alphaShape,
52525
52753
  and,
52526
52754
  andersonDarlingTest,
52527
52755
  angle2D,
@@ -52666,6 +52894,7 @@ export {
52666
52894
  connectedComponents,
52667
52895
  continuedFraction,
52668
52896
  convexHull,
52897
+ convexHull2D,
52669
52898
  convexHull3D,
52670
52899
  convolve,
52671
52900
  coordinateTransform,
@@ -52717,6 +52946,7 @@ export {
52717
52946
  deconvolve,
52718
52947
  deepEqual,
52719
52948
  degree,
52949
+ delaunay,
52720
52950
  delaunayTriangulation,
52721
52951
  derivative,
52722
52952
  derivativeAt,
@@ -53423,6 +53653,7 @@ export {
53423
53653
  spectralClustering,
53424
53654
  spectrogram,
53425
53655
  speedOfLight,
53656
+ sphericalVoronoi,
53426
53657
  splitUnit,
53427
53658
  sqrt,
53428
53659
  sqrtm,
@@ -53526,6 +53757,7 @@ export {
53526
53757
  variance,
53527
53758
  variation,
53528
53759
  vonMisesPDF,
53760
+ voronoi,
53529
53761
  voronoiDiagram,
53530
53762
  wavedec,
53531
53763
  waverec,
@@ -61,12 +61,16 @@ export declare function triangleArea(a: number[], b: number[], c: number[]): f64
61
61
  export declare function polygonArea(vertices: number[][]): f64;
62
62
  /**
63
63
  * Compute the convex hull of a set of 2D points using Andrew's monotone chain algorithm.
64
- * Returns vertices in counter-clockwise order.
64
+ * Returns vertices (as coordinates) in counter-clockwise order.
65
+ *
66
+ * Internal, WASM-sort-accelerated 2-D hull. The public, structured hull API
67
+ * (indices + area/volume, 2-D and 3-D) is `convexHull` in
68
+ * `../geometry/hull.ts`.
65
69
  *
66
70
  * @param points - Array of [x, y] points
67
- * @returns Convex hull vertices in CCW order
71
+ * @returns Convex hull vertices (coordinates) in CCW order
68
72
  */
69
- export declare function convexHull(points: number[][]): number[][];
73
+ export declare function convexHull2D(points: number[][]): number[][];
70
74
  /**
71
75
  * Determine if a 2D point lies inside a polygon using the ray casting algorithm.
72
76
  *
@@ -1 +1 @@
1
- {"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../src/typed/geometry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../src/typed/geometry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danielsimonjr/mathts-functions",
3
- "version": "0.49.0",
3
+ "version": "0.50.0",
4
4
  "description": "Mathematical functions for MathTS - arithmetic, algebra, trigonometry, statistics, and more",
5
5
  "author": "Daniel Simon Jr.",
6
6
  "license": "MIT",