@danielsimonjr/mathts-matrix 0.7.3 → 0.7.5

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.
Files changed (35) hide show
  1. package/README.md +62 -62
  2. package/dist/backends/WASMBackend.d.ts +1 -0
  3. package/dist/backends/WASMBackend.d.ts.map +1 -1
  4. package/dist/backends/WasmLoader.d.ts +40 -10
  5. package/dist/backends/WasmLoader.d.ts.map +1 -1
  6. package/dist/index.js +100 -46
  7. package/dist/operations/cholesky.d.ts +3 -0
  8. package/dist/operations/cholesky.d.ts.map +1 -1
  9. package/dist/operations/expm.d.ts +6 -0
  10. package/dist/operations/expm.d.ts.map +1 -1
  11. package/dist/operations/logm.d.ts +3 -0
  12. package/dist/operations/logm.d.ts.map +1 -1
  13. package/dist/operations/lu.d.ts +3 -0
  14. package/dist/operations/lu.d.ts.map +1 -1
  15. package/dist/operations/pinv.d.ts +3 -0
  16. package/dist/operations/pinv.d.ts.map +1 -1
  17. package/dist/operations/qr-family.d.ts +9 -0
  18. package/dist/operations/qr-family.d.ts.map +1 -1
  19. package/dist/operations/qr-pivoted.d.ts +7 -0
  20. package/dist/operations/qr-pivoted.d.ts.map +1 -1
  21. package/dist/operations/qr.d.ts +6 -0
  22. package/dist/operations/qr.d.ts.map +1 -1
  23. package/dist/operations/schur.d.ts +6 -0
  24. package/dist/operations/schur.d.ts.map +1 -1
  25. package/dist/operations/sqrtm.d.ts +3 -0
  26. package/dist/operations/sqrtm.d.ts.map +1 -1
  27. package/dist/operations/svd.d.ts +16 -0
  28. package/dist/operations/svd.d.ts.map +1 -1
  29. package/dist/types/dense/arithmetic.d.ts +53 -0
  30. package/dist/types/dense/arithmetic.d.ts.map +1 -1
  31. package/dist/types/dense/reduction.d.ts +38 -0
  32. package/dist/types/dense/reduction.d.ts.map +1 -1
  33. package/dist/wasm/mathts-as.wasm +0 -0
  34. package/dist/wasm/wasm-manifest.json +1 -1
  35. package/package.json +70 -70
package/README.md CHANGED
@@ -1,62 +1,62 @@
1
- # @danielsimonjr/mathts-matrix
2
-
3
- High-performance matrix operations with multi-backend support (JS/WASM/GPU).
4
-
5
- ## Installation
6
-
7
- ```bash
8
- npm install @danielsimonjr/mathts-matrix
9
- ```
10
-
11
- ## Usage
12
-
13
- ```typescript
14
- import { DenseMatrix } from '@danielsimonjr/mathts-matrix';
15
-
16
- // Create a matrix from a 2D array
17
- const A = DenseMatrix.fromArray([
18
- [1, 2, 3],
19
- [4, 5, 6],
20
- [7, 8, 9],
21
- ]);
22
-
23
- // Basic operations
24
- const sum = A.add(A);
25
- const product = A.multiply(A);
26
- const transposed = A.transpose();
27
-
28
- // Decompositions (operate on number[][])
29
- import { svd, eig } from '@danielsimonjr/mathts-matrix';
30
- const { U, S, V } = svd(A.toArray());
31
- ```
32
-
33
- ## Backends
34
-
35
- | Backend | Trigger | Performance |
36
- | -------- | -------------- | ------------ |
37
- | **JS** | Default | 1x baseline |
38
- | **WASM** | >1K elements | ~10x faster |
39
- | **GPU** | >100K elements | ~100x faster |
40
-
41
- ## Matrix Types
42
-
43
- - `DenseMatrix` - Standard dense storage (row-major)
44
- - `SparseMatrix` - CSR format for sparse data
45
-
46
- ## Status
47
-
48
- This package is under active development. Currently implemented:
49
-
50
- - [x] Type definitions
51
- - [x] Backend infrastructure
52
- - [x] Dense matrix structure
53
- - [x] Sparse matrix (CSR) structure
54
- - [x] Matrix operations (add, multiply, transpose, etc.)
55
- - [x] WASM backend (AssemblyScript)
56
- - [x] GPU backend (WebGPU)
57
- - [x] SVD decomposition
58
- - [x] Eigenvalue solvers
59
-
60
- ## License
61
-
62
- MIT
1
+ # @danielsimonjr/mathts-matrix
2
+
3
+ High-performance matrix operations with multi-backend support (JS/WASM/GPU).
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @danielsimonjr/mathts-matrix
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```typescript
14
+ import { DenseMatrix } from '@danielsimonjr/mathts-matrix';
15
+
16
+ // Create a matrix from a 2D array
17
+ const A = DenseMatrix.fromArray([
18
+ [1, 2, 3],
19
+ [4, 5, 6],
20
+ [7, 8, 9],
21
+ ]);
22
+
23
+ // Basic operations
24
+ const sum = A.add(A);
25
+ const product = A.multiply(A);
26
+ const transposed = A.transpose();
27
+
28
+ // Decompositions (operate on number[][])
29
+ import { svd, eig } from '@danielsimonjr/mathts-matrix';
30
+ const { U, S, V } = svd(A.toArray());
31
+ ```
32
+
33
+ ## Backends
34
+
35
+ | Backend | Trigger | Performance |
36
+ | -------- | -------------- | ------------ |
37
+ | **JS** | Default | 1x baseline |
38
+ | **WASM** | >1K elements | ~10x faster |
39
+ | **GPU** | >100K elements | ~100x faster |
40
+
41
+ ## Matrix Types
42
+
43
+ - `DenseMatrix` - Standard dense storage (row-major)
44
+ - `SparseMatrix` - CSR format for sparse data
45
+
46
+ ## Status
47
+
48
+ This package is under active development. Currently implemented:
49
+
50
+ - [x] Type definitions
51
+ - [x] Backend infrastructure
52
+ - [x] Dense matrix structure
53
+ - [x] Sparse matrix (CSR) structure
54
+ - [x] Matrix operations (add, multiply, transpose, etc.)
55
+ - [x] WASM backend (AssemblyScript)
56
+ - [x] GPU backend (WebGPU)
57
+ - [x] SVD decomposition
58
+ - [x] Eigenvalue solvers
59
+
60
+ ## License
61
+
62
+ MIT
@@ -77,6 +77,7 @@ export declare class WASMBackend implements MatrixBackend {
77
77
  private initPromise;
78
78
  /** Pooled allocations — see `AsAllocCache` for rationale. */
79
79
  private allocCache;
80
+ private int32Cache;
80
81
  constructor(config?: WASMBackendConfig);
81
82
  isAvailable(): boolean;
82
83
  initialize(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"WASMBackend.d.ts","sourceRoot":"","sources":["../../src/backends/WASMBackend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WASMBackend.d.ts","sourceRoot":"","sources":["../../src/backends/WASMBackend.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,13 @@
27
27
  */
28
28
  import type { LoadingMetrics } from '@danielsimonjr/mathts-core/internal';
29
29
  export type { LoadingMetrics };
30
+ /**
31
+ * Functions that the compiled WebAssembly matrix module exports.
32
+ *
33
+ * Each function reads and writes data through pointers into the linear
34
+ * memory of the module. Use the `WasmLoader` allocation methods to get
35
+ * these pointers.
36
+ */
30
37
  export interface WasmModule {
31
38
  multiplyDense: (aPtr: number, aRows: number, aCols: number, bPtr: number, bRows: number, bCols: number, resultPtr: number) => void;
32
39
  multiplyDenseSIMD: (aPtr: number, aRows: number, aCols: number, bPtr: number, bRows: number, bCols: number, resultPtr: number) => void;
@@ -153,7 +160,7 @@ export interface WasmModule {
153
160
  rightArithShift_i32_array?: (a: Int32Array, b: Int32Array, result: Int32Array) => void;
154
161
  rightLogShift_i32_array?: (a: Int32Array, b: Int32Array, result: Int32Array) => void;
155
162
  matrix_lu_decompose?: (aHdr: number, n: number, lOutHdr: number, uOutHdr: number, permOutHdr: number) => number;
156
- matrix_qr_decompose?: (aHdr: number, m: number, n: number, qOutHdr: number, rOutHdr: number) => number;
163
+ matrix_qr_decompose?: (aHdr: number, m: number, n: number, qOutHdr: number, rOutHdr: number, vWorkHdr?: number) => number;
157
164
  matrix_cholesky?: (aHdr: number, n: number, lOutHdr: number) => number;
158
165
  matrix_inverse?: (aHdr: number, n: number, resultHdr: number, workHdr: number) => number;
159
166
  matrix_determinant?: (aHdr: number, n: number, workHdr: number) => number;
@@ -180,6 +187,13 @@ export interface Allocation<TArray extends Float64Array | Int32Array> {
180
187
  /** Internal: the data-block offset (the ArrayBuffer the header points at). */
181
188
  readonly dataPtr: number;
182
189
  }
190
+ /**
191
+ * Singleton that compiles, loads, and caches the WebAssembly matrix module.
192
+ *
193
+ * Use `WasmLoader.getInstance()` to get the instance; the constructor is
194
+ * private. The loader also allocates typed arrays in the memory of the
195
+ * module, keeps a pool of released allocations, and records loading metrics.
196
+ */
183
197
  export declare class WasmLoader {
184
198
  private static instance;
185
199
  private wasmModule;
@@ -254,7 +268,8 @@ export declare class WasmLoader {
254
268
  */
255
269
  readReturnedFloat64Array(headerPtr: number): Float64Array;
256
270
  /**
257
- * Allocate Float64Array without copying data (for output buffers)
271
+ * Allocate a zero-filled Float64Array (for output buffers). Zeroed explicitly,
272
+ * since a recycled pool block still holds its previous contents.
258
273
  */
259
274
  allocateFloat64ArrayEmpty(length: number): Allocation<Float64Array>;
260
275
  /**
@@ -262,29 +277,44 @@ export declare class WasmLoader {
262
277
  */
263
278
  allocateInt32Array(data: number[] | Int32Array): Allocation<Int32Array>;
264
279
  /**
265
- * Allocate Int32Array without copying data (for output buffers)
280
+ * Allocate a zero-filled Int32Array (for output buffers). Zeroed explicitly,
281
+ * since a recycled pool block still holds its previous contents.
266
282
  */
267
283
  allocateInt32ArrayEmpty(length: number): Allocation<Int32Array>;
268
284
  private allocateAsFloat64;
269
285
  private allocateAsInt32;
270
286
  private makeAsFloat64;
271
287
  private makeAsInt32;
288
+ /** Record a new in-use allocation so it can be recycled once released. */
289
+ private track;
272
290
  /**
273
- * Find a pool entry whose data region is large enough; returns null when
274
- * no suitable entry is available.
291
+ * Find a released pool entry whose data region is large enough (best fit,
292
+ * at most 2x the request); returns null when none is available. The entry's
293
+ * header `byteLength` is rewritten to the requested size, because kernels read
294
+ * their length from the header: a recycled larger block would otherwise make
295
+ * them process trailing elements the caller never wrote.
275
296
  */
276
297
  private acquireFromAsPool;
298
+ /** The pool entry for a header pointer, searching both pools. */
299
+ private findEntry;
300
+ /** Unpin an allocation's header and its separately pinned data buffer. */
301
+ private unpinAllocation;
302
+ /** Data pointer recorded in an AS typed-array header (`dataStart`). */
303
+ private headerDataPtr;
277
304
  /**
278
305
  * Return an allocation to the pool for reuse.
279
306
  *
280
- * `isFloat64` exists for backwards compatibility — callers can still
281
- * pass it positionally to disambiguate the pool to use on the AS path.
282
- * Prefer `releaseAllocation` for new code, which discovers the pool
283
- * automatically.
307
+ * Both pools are searched, so `isFloat64` is only a hint kept for backwards
308
+ * compatibility. An allocation above `poolSizeThreshold` is not pooled; it is
309
+ * unpinned instead (header and data buffer), which under the stub runtime
310
+ * leaves it allocated but at least unpinned for a GC runtime.
284
311
  */
285
312
  release(ptr: number, isFloat64?: boolean): void;
286
313
  /**
287
- * Free allocated memory (immediate, bypasses pool): unpin the header pointer.
314
+ * Release an allocation the caller is done with. A pooled block goes back to
315
+ * the pool, because the stub runtime cannot reclaim it and recycling is the
316
+ * only way to reuse the memory; a larger block is unpinned. Same as
317
+ * `release()`.
288
318
  */
289
319
  free(ptr: number): void;
290
320
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"WasmLoader.d.ts","sourceRoot":"","sources":["../../src/backends/WasmLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WasmLoader.d.ts","sourceRoot":"","sources":["../../src/backends/WasmLoader.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2444,10 +2444,22 @@ function readAsInt32Array(module, alloc) {
2444
2444
  const view = new Int32Array(module.memory.buffer, alloc.bufferPtr, alloc.length);
2445
2445
  return new Int32Array(view);
2446
2446
  }
2447
- function releaseAsInt32Array(module, alloc) {
2448
- module.__unpin(alloc.headerPtr);
2449
- module.__unpin(alloc.bufferPtr);
2450
- }
2447
+ var AsInt32Cache = class {
2448
+ free = /* @__PURE__ */ new Map();
2449
+ acquire(module, length) {
2450
+ const alloc = this.free.get(length)?.pop();
2451
+ if (alloc) {
2452
+ alloc.view = new Int32Array(module.memory.buffer, alloc.bufferPtr, length);
2453
+ return alloc;
2454
+ }
2455
+ return allocAsInt32Array(module, length);
2456
+ }
2457
+ release(alloc) {
2458
+ const pool = this.free.get(alloc.length);
2459
+ if (pool) pool.push(alloc);
2460
+ else this.free.set(alloc.length, [alloc]);
2461
+ }
2462
+ };
2451
2463
  var DEFAULT_CONFIG = {
2452
2464
  minElements: 100,
2453
2465
  wasmPath: "",
@@ -2461,6 +2473,7 @@ var WASMBackend = class {
2461
2473
  initPromise = null;
2462
2474
  /** Pooled allocations — see `AsAllocCache` for rationale. */
2463
2475
  allocCache = new AsAllocCache();
2476
+ int32Cache = new AsInt32Cache();
2464
2477
  constructor(config = {}) {
2465
2478
  this.config = { ...DEFAULT_CONFIG, ...config };
2466
2479
  }
@@ -2661,7 +2674,7 @@ var WASMBackend = class {
2661
2674
  const aAlloc = writeAsFloat64Array(this.allocCache, mod, a.toFloat64Array());
2662
2675
  const lAlloc = allocAsFloat64Array(this.allocCache, mod, n * n);
2663
2676
  const uAlloc = allocAsFloat64Array(this.allocCache, mod, n * n);
2664
- const permAlloc = allocAsInt32Array(mod, n);
2677
+ const permAlloc = this.int32Cache.acquire(mod, n);
2665
2678
  try {
2666
2679
  const status = mod.matrix_lu_decompose(
2667
2680
  aAlloc.headerPtr,
@@ -2691,7 +2704,7 @@ var WASMBackend = class {
2691
2704
  this.allocCache.release(aAlloc);
2692
2705
  this.allocCache.release(lAlloc);
2693
2706
  this.allocCache.release(uAlloc);
2694
- releaseAsInt32Array(mod, permAlloc);
2707
+ this.int32Cache.release(permAlloc);
2695
2708
  }
2696
2709
  }
2697
2710
  luDecompositionJS(a) {
@@ -2746,8 +2759,16 @@ var WASMBackend = class {
2746
2759
  const aAlloc = writeAsFloat64Array(this.allocCache, mod, a.toFloat64Array());
2747
2760
  const qAlloc = allocAsFloat64Array(this.allocCache, mod, m * m);
2748
2761
  const rAlloc = allocAsFloat64Array(this.allocCache, mod, m * n);
2762
+ const vAlloc = allocAsFloat64Array(this.allocCache, mod, m);
2749
2763
  try {
2750
- mod.matrix_qr_decompose(aAlloc.headerPtr, m, n, qAlloc.headerPtr, rAlloc.headerPtr);
2764
+ mod.matrix_qr_decompose(
2765
+ aAlloc.headerPtr,
2766
+ m,
2767
+ n,
2768
+ qAlloc.headerPtr,
2769
+ rAlloc.headerPtr,
2770
+ vAlloc.headerPtr
2771
+ );
2751
2772
  const qFlat = readAsFloat64Array(mod, qAlloc);
2752
2773
  const rFlat = readAsFloat64Array(mod, rAlloc);
2753
2774
  return {
@@ -2758,6 +2779,7 @@ var WASMBackend = class {
2758
2779
  this.allocCache.release(aAlloc);
2759
2780
  this.allocCache.release(qAlloc);
2760
2781
  this.allocCache.release(rAlloc);
2782
+ this.allocCache.release(vAlloc);
2761
2783
  }
2762
2784
  }
2763
2785
  qrDecompositionJS(a) {
@@ -2816,7 +2838,7 @@ var WASMBackend = class {
2816
2838
  }
2817
2839
  const aAlloc = writeAsFloat64Array(this.allocCache, mod, a.toFloat64Array());
2818
2840
  const resultAlloc = allocAsFloat64Array(this.allocCache, mod, n * n);
2819
- const workAlloc = allocAsFloat64Array(this.allocCache, mod, n * n);
2841
+ const workAlloc = allocAsFloat64Array(this.allocCache, mod, n * n + n);
2820
2842
  try {
2821
2843
  const status = mod.matrix_inverse(
2822
2844
  aAlloc.headerPtr,
@@ -4278,7 +4300,14 @@ var WasmLoader = class _WasmLoader {
4278
4300
  return this.loading;
4279
4301
  }
4280
4302
  this.loading = this.loadModule(wasmPath);
4281
- this.wasmModule = await this.loading;
4303
+ try {
4304
+ this.wasmModule = await this.loading;
4305
+ } catch (error) {
4306
+ this.compiledModule = null;
4307
+ throw error;
4308
+ } finally {
4309
+ this.loading = null;
4310
+ }
4282
4311
  return this.wasmModule;
4283
4312
  }
4284
4313
  /**
@@ -4504,12 +4533,15 @@ var WasmLoader = class _WasmLoader {
4504
4533
  return new Float64Array(view);
4505
4534
  }
4506
4535
  /**
4507
- * Allocate Float64Array without copying data (for output buffers)
4536
+ * Allocate a zero-filled Float64Array (for output buffers). Zeroed explicitly,
4537
+ * since a recycled pool block still holds its previous contents.
4508
4538
  */
4509
4539
  allocateFloat64ArrayEmpty(length) {
4510
4540
  const module = this.wasmModule;
4511
4541
  if (!module) throw new Error("WASM module not loaded");
4512
- return this.allocateAsFloat64(module, length);
4542
+ const alloc = this.allocateAsFloat64(module, length);
4543
+ alloc.array.fill(0);
4544
+ return alloc;
4513
4545
  }
4514
4546
  /**
4515
4547
  * Allocate Int32Array in WASM memory and copy `data` into it.
@@ -4523,18 +4555,21 @@ var WasmLoader = class _WasmLoader {
4523
4555
  return alloc;
4524
4556
  }
4525
4557
  /**
4526
- * Allocate Int32Array without copying data (for output buffers)
4558
+ * Allocate a zero-filled Int32Array (for output buffers). Zeroed explicitly,
4559
+ * since a recycled pool block still holds its previous contents.
4527
4560
  */
4528
4561
  allocateInt32ArrayEmpty(length) {
4529
4562
  const module = this.wasmModule;
4530
4563
  if (!module) throw new Error("WASM module not loaded");
4531
- return this.allocateAsInt32(module, length);
4564
+ const alloc = this.allocateAsInt32(module, length);
4565
+ alloc.array.fill(0);
4566
+ return alloc;
4532
4567
  }
4533
4568
  // ---- AS managed runtime (header pointers) ------------------------------
4534
4569
  allocateAsFloat64(module, length) {
4535
4570
  const byteLength = length * 8;
4536
4571
  if (byteLength <= this.poolSizeThreshold) {
4537
- const recycled = this.acquireFromAsPool(this.float64Pool, byteLength);
4572
+ const recycled = this.acquireFromAsPool(module, this.float64Pool, byteLength);
4538
4573
  if (recycled) {
4539
4574
  const array = new Float64Array(module.memory.buffer, recycled.dataPtr, length);
4540
4575
  return {
@@ -4550,7 +4585,7 @@ var WasmLoader = class _WasmLoader {
4550
4585
  allocateAsInt32(module, length) {
4551
4586
  const byteLength = length * 4;
4552
4587
  if (byteLength <= this.poolSizeThreshold) {
4553
- const recycled = this.acquireFromAsPool(this.int32Pool, byteLength);
4588
+ const recycled = this.acquireFromAsPool(module, this.int32Pool, byteLength);
4554
4589
  if (recycled) {
4555
4590
  const array = new Int32Array(module.memory.buffer, recycled.dataPtr, length);
4556
4591
  return {
@@ -4573,6 +4608,7 @@ var WasmLoader = class _WasmLoader {
4573
4608
  dv.setUint32(headerPtr + 4, bufferPtr, true);
4574
4609
  dv.setUint32(headerPtr + 8, byteLength, true);
4575
4610
  const array = new Float64Array(module.memory.buffer, bufferPtr, length);
4611
+ this.track(this.float64Pool, headerPtr, bufferPtr, byteLength);
4576
4612
  return { ptr: headerPtr, dataPtr: bufferPtr, array, length };
4577
4613
  }
4578
4614
  makeAsInt32(module, length) {
@@ -4585,13 +4621,23 @@ var WasmLoader = class _WasmLoader {
4585
4621
  dv.setUint32(headerPtr + 4, bufferPtr, true);
4586
4622
  dv.setUint32(headerPtr + 8, byteLength, true);
4587
4623
  const array = new Int32Array(module.memory.buffer, bufferPtr, length);
4624
+ this.track(this.int32Pool, headerPtr, bufferPtr, byteLength);
4588
4625
  return { ptr: headerPtr, dataPtr: bufferPtr, array, length };
4589
4626
  }
4627
+ /** Record a new in-use allocation so it can be recycled once released. */
4628
+ track(pool, ptr, dataPtr, size2) {
4629
+ if (size2 <= this.poolSizeThreshold) {
4630
+ pool.push({ ptr, dataPtr, size: size2, inUse: true });
4631
+ }
4632
+ }
4590
4633
  /**
4591
- * Find a pool entry whose data region is large enough; returns null when
4592
- * no suitable entry is available.
4634
+ * Find a released pool entry whose data region is large enough (best fit,
4635
+ * at most 2x the request); returns null when none is available. The entry's
4636
+ * header `byteLength` is rewritten to the requested size, because kernels read
4637
+ * their length from the header: a recycled larger block would otherwise make
4638
+ * them process trailing elements the caller never wrote.
4593
4639
  */
4594
- acquireFromAsPool(pool, requestedSize) {
4640
+ acquireFromAsPool(module, pool, requestedSize) {
4595
4641
  let bestFit = null;
4596
4642
  let bestFitWaste = Infinity;
4597
4643
  for (const entry of pool) {
@@ -4603,37 +4649,53 @@ var WasmLoader = class _WasmLoader {
4603
4649
  }
4604
4650
  }
4605
4651
  }
4606
- if (bestFit) bestFit.inUse = true;
4652
+ if (bestFit) {
4653
+ bestFit.inUse = true;
4654
+ new DataView(module.memory.buffer).setUint32(bestFit.ptr + 8, requestedSize, true);
4655
+ }
4607
4656
  return bestFit;
4608
4657
  }
4658
+ /** The pool entry for a header pointer, searching both pools. */
4659
+ findEntry(ptr) {
4660
+ return this.float64Pool.find((e) => e.ptr === ptr) ?? this.int32Pool.find((e) => e.ptr === ptr);
4661
+ }
4662
+ /** Unpin an allocation's header and its separately pinned data buffer. */
4663
+ unpinAllocation(module, ptr, dataPtr) {
4664
+ if (typeof module.__unpin !== "function") return;
4665
+ module.__unpin(ptr);
4666
+ if (dataPtr !== void 0) module.__unpin(dataPtr);
4667
+ }
4668
+ /** Data pointer recorded in an AS typed-array header (`dataStart`). */
4669
+ headerDataPtr(module, ptr) {
4670
+ return new DataView(module.memory.buffer).getUint32(ptr + 4, true);
4671
+ }
4609
4672
  /**
4610
4673
  * Return an allocation to the pool for reuse.
4611
4674
  *
4612
- * `isFloat64` exists for backwards compatibility — callers can still
4613
- * pass it positionally to disambiguate the pool to use on the AS path.
4614
- * Prefer `releaseAllocation` for new code, which discovers the pool
4615
- * automatically.
4675
+ * Both pools are searched, so `isFloat64` is only a hint kept for backwards
4676
+ * compatibility. An allocation above `poolSizeThreshold` is not pooled; it is
4677
+ * unpinned instead (header and data buffer), which under the stub runtime
4678
+ * leaves it allocated but at least unpinned for a GC runtime.
4616
4679
  */
4617
4680
  release(ptr, isFloat64 = true) {
4618
- const pool = isFloat64 ? this.float64Pool : this.int32Pool;
4619
- const entry = pool.find((e) => e.ptr === ptr);
4681
+ void isFloat64;
4682
+ const entry = this.findEntry(ptr);
4620
4683
  if (entry) {
4621
4684
  entry.inUse = false;
4622
4685
  return;
4623
4686
  }
4624
- this.free(ptr);
4687
+ const module = this.wasmModule;
4688
+ if (!module) return;
4689
+ this.unpinAllocation(module, ptr, this.headerDataPtr(module, ptr));
4625
4690
  }
4626
4691
  /**
4627
- * Free allocated memory (immediate, bypasses pool): unpin the header pointer.
4692
+ * Release an allocation the caller is done with. A pooled block goes back to
4693
+ * the pool, because the stub runtime cannot reclaim it and recycling is the
4694
+ * only way to reuse the memory; a larger block is unpinned. Same as
4695
+ * `release()`.
4628
4696
  */
4629
4697
  free(ptr) {
4630
- const module = this.wasmModule;
4631
- if (!module) return;
4632
- this.float64Pool = this.float64Pool.filter((e) => e.ptr !== ptr);
4633
- this.int32Pool = this.int32Pool.filter((e) => e.ptr !== ptr);
4634
- if (typeof module.__unpin === "function") {
4635
- module.__unpin(ptr);
4636
- }
4698
+ this.release(ptr);
4637
4699
  }
4638
4700
  /**
4639
4701
  * Clear the memory pool
@@ -4641,13 +4703,8 @@ var WasmLoader = class _WasmLoader {
4641
4703
  clearPool() {
4642
4704
  const module = this.wasmModule;
4643
4705
  if (!module) return;
4644
- if (typeof module.__unpin === "function") {
4645
- for (const entry of this.float64Pool) {
4646
- module.__unpin(entry.ptr);
4647
- }
4648
- for (const entry of this.int32Pool) {
4649
- module.__unpin(entry.ptr);
4650
- }
4706
+ for (const entry of [...this.float64Pool, ...this.int32Pool]) {
4707
+ if (!entry.inUse) this.unpinAllocation(module, entry.ptr, entry.dataPtr);
4651
4708
  }
4652
4709
  this.float64Pool = [];
4653
4710
  this.int32Pool = [];
@@ -7269,9 +7326,7 @@ function sqrtmGeneral(A) {
7269
7326
  const { values, vectors } = eig(A, { computeVectors: true });
7270
7327
  for (const v of values) {
7271
7328
  if (Math.abs(v.im) > 1e-7) {
7272
- throw new Error(
7273
- "matrixSqrtm: complex eigenvalues detected \u2014 real square root not supported"
7274
- );
7329
+ throw new Error("matrixSqrtm: complex eigenvalues detected \u2014 real square root not supported");
7275
7330
  }
7276
7331
  if (v.re < -1e-7) {
7277
7332
  throw new Error(
@@ -7375,8 +7430,7 @@ function sqrtmQuasiTriangular(T) {
7375
7430
  const sol = solveLinearSystem(MAT, rhs);
7376
7431
  if (sol === null) return null;
7377
7432
  for (let ii = 0; ii < si; ii++)
7378
- for (let jj = 0; jj < sj; jj++)
7379
- U[ri + ii][rj + jj] = sol[ii * sj + jj];
7433
+ for (let jj = 0; jj < sj; jj++) U[ri + ii][rj + jj] = sol[ii * sj + jj];
7380
7434
  }
7381
7435
  }
7382
7436
  return U;
@@ -9,6 +9,9 @@
9
9
  * // A ≈ L · L^T (to floating-point precision)
10
10
  */
11
11
  import { DenseMatrix } from '../types/DenseMatrix.js';
12
+ /**
13
+ * Result of `cholesky`: the lower-triangular factor of the decomposition.
14
+ */
12
15
  export interface CholeskyResult {
13
16
  /** Lower-triangular Cholesky factor L such that A = L · Lᵀ. */
14
17
  L: DenseMatrix;
@@ -1 +1 @@
1
- {"version":3,"file":"cholesky.d.ts","sourceRoot":"","sources":["../../src/operations/cholesky.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,CAAC,EAAE,WAAW,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,WAAW,GAAG,cAAc,CA+BvD"}
1
+ {"version":3,"file":"cholesky.d.ts","sourceRoot":"","sources":["../../src/operations/cholesky.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,CAAC,EAAE,WAAW,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,WAAW,GAAG,cAAc,CA+BvD"}
@@ -15,6 +15,12 @@
15
15
  * stay within the Padé approximant's accuracy radius.
16
16
  */
17
17
  import { DenseMatrix } from '../types/DenseMatrix.js';
18
+ /**
19
+ * Options for the matrix exponential.
20
+ *
21
+ * This interface has no usable fields at this time. It is reserved for
22
+ * future options.
23
+ */
18
24
  export interface ExpmOptions {
19
25
  /**
20
26
  * When true, return the result as a DenseMatrix.
@@ -1 +1 @@
1
- {"version":3,"file":"expm.d.ts","sourceRoot":"","sources":["../../src/operations/expm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAmHtD,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW,CA+BtD"}
1
+ {"version":3,"file":"expm.d.ts","sourceRoot":"","sources":["../../src/operations/expm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAmHtD;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW,CA+BtD"}
@@ -16,6 +16,9 @@
16
16
  * eigenvalues): logm(A) = V · diag(log(λ)) · V^{-1}.
17
17
  */
18
18
  import { DenseMatrix } from '../types/DenseMatrix.js';
19
+ /**
20
+ * Options for `matrixLogm`.
21
+ */
19
22
  export interface LogmOptions {
20
23
  /**
21
24
  * Tolerance for the "near-identity" test.
@@ -1 +1 @@
1
- {"version":3,"file":"logm.d.ts","sourceRoot":"","sources":["../../src/operations/logm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAiXtD,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,WAAW,CAyD1E"}
1
+ {"version":3,"file":"logm.d.ts","sourceRoot":"","sources":["../../src/operations/logm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAiXtD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,WAAW,CAyD1E"}
@@ -13,6 +13,9 @@
13
13
  * // P[i] gives the original row moved to position i, so P · A = L · U.
14
14
  */
15
15
  import { DenseMatrix } from '../types/DenseMatrix.js';
16
+ /**
17
+ * Result of `lu`: the factors L and U and the row permutation P.
18
+ */
16
19
  export interface LUResult {
17
20
  /** Unit lower-triangular factor L. */
18
21
  L: DenseMatrix;
@@ -1 +1 @@
1
- {"version":3,"file":"lu.d.ts","sourceRoot":"","sources":["../../src/operations/lu.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,WAAW,QAAQ;IACvB,sCAAsC;IACtC,CAAC,EAAE,WAAW,CAAC;IACf,iCAAiC;IACjC,CAAC,EAAE,WAAW,CAAC;IACf,2FAA2F;IAC3F,CAAC,EAAE,MAAM,EAAE,CAAC;CACb;AAED;;;;;;;;GAQG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,WAAW,GAAG,QAAQ,CAuE3C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CA2BrE"}
1
+ {"version":3,"file":"lu.d.ts","sourceRoot":"","sources":["../../src/operations/lu.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,sCAAsC;IACtC,CAAC,EAAE,WAAW,CAAC;IACf,iCAAiC;IACjC,CAAC,EAAE,WAAW,CAAC;IACf,2FAA2F;IAC3F,CAAC,EAAE,MAAM,EAAE,CAAC;CACb;AAED;;;;;;;;GAQG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,WAAW,GAAG,QAAQ,CAuE3C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CA2BrE"}
@@ -17,6 +17,9 @@
17
17
  * (A⁺ · A)ᵀ = A⁺ · A
18
18
  */
19
19
  import { DenseMatrix } from '../types/DenseMatrix.js';
20
+ /**
21
+ * Options for `pinv`.
22
+ */
20
23
  export interface PinvOptions {
21
24
  /**
22
25
  * Relative condition threshold for singular-value truncation.
@@ -1 +1 @@
1
- {"version":3,"file":"pinv.d.ts","sourceRoot":"","sources":["../../src/operations/pinv.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,WAAW,CAoCpE"}
1
+ {"version":3,"file":"pinv.d.ts","sourceRoot":"","sources":["../../src/operations/pinv.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,WAAW,CAoCpE"}
@@ -16,18 +16,27 @@
16
16
  * factor pairing is (m×k, k×n) with k = min(m, n).
17
17
  */
18
18
  import { DenseMatrix } from '../types/DenseMatrix.js';
19
+ /**
20
+ * Result of the LQ decomposition, where A = L · Q.
21
+ */
19
22
  export interface LQResult {
20
23
  /** Lower-triangular (trapezoidal) factor. m × k, k = min(m, n). */
21
24
  L: DenseMatrix;
22
25
  /** Orthonormal-row factor (Q · Qᵀ = I). k × n. */
23
26
  Q: DenseMatrix;
24
27
  }
28
+ /**
29
+ * Result of the RQ decomposition, where A = R · Q.
30
+ */
25
31
  export interface RQResult {
26
32
  /** Upper-triangular (trapezoidal) factor. m × k, k = min(m, n). */
27
33
  R: DenseMatrix;
28
34
  /** Orthonormal-row factor (Q · Qᵀ = I). k × n. */
29
35
  Q: DenseMatrix;
30
36
  }
37
+ /**
38
+ * Result of the QL decomposition, where A = Q · L.
39
+ */
31
40
  export interface QLResult {
32
41
  /** Orthonormal-column factor (Qᵀ · Q = I). m × k, k = min(m, n). */
33
42
  Q: DenseMatrix;
@@ -1 +1 @@
1
- {"version":3,"file":"qr-family.d.ts","sourceRoot":"","sources":["../../src/operations/qr-family.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,MAAM,WAAW,QAAQ;IACvB,mEAAmE;IACnE,CAAC,EAAE,WAAW,CAAC;IACf,kDAAkD;IAClD,CAAC,EAAE,WAAW,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,mEAAmE;IACnE,CAAC,EAAE,WAAW,CAAC;IACf,kDAAkD;IAClD,CAAC,EAAE,WAAW,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,oEAAoE;IACpE,CAAC,EAAE,WAAW,CAAC;IACf,oDAAoD;IACpD,CAAC,EAAE,WAAW,CAAC;CAChB;AA8BD;;;GAGG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,WAAW,GAAG,QAAQ,CAG3C;AAED;;;GAGG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,WAAW,GAAG,QAAQ,CAM3C;AAED;;;GAGG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,WAAW,GAAG,QAAQ,CAM3C"}
1
+ {"version":3,"file":"qr-family.d.ts","sourceRoot":"","sources":["../../src/operations/qr-family.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,mEAAmE;IACnE,CAAC,EAAE,WAAW,CAAC;IACf,kDAAkD;IAClD,CAAC,EAAE,WAAW,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,mEAAmE;IACnE,CAAC,EAAE,WAAW,CAAC;IACf,kDAAkD;IAClD,CAAC,EAAE,WAAW,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,oEAAoE;IACpE,CAAC,EAAE,WAAW,CAAC;IACf,oDAAoD;IACpD,CAAC,EAAE,WAAW,CAAC;CAChB;AA8BD;;;GAGG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,WAAW,GAAG,QAAQ,CAG3C;AAED;;;GAGG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,WAAW,GAAG,QAAQ,CAM3C;AAED;;;GAGG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,WAAW,GAAG,QAAQ,CAM3C"}
@@ -15,6 +15,10 @@
15
15
  * `svd.ts`/`schur.ts`) rather than re-deriving reflection algebra here.
16
16
  */
17
17
  import { DenseMatrix } from '../types/DenseMatrix.js';
18
+ /**
19
+ * Result of `qrPivoted`: the factors Q and R, the column permutation P, and
20
+ * the numerical rank.
21
+ */
18
22
  export interface QRPivotedResult {
19
23
  /** Orthonormal Q factor (m × k, k = min(m, n)). */
20
24
  Q: DenseMatrix;
@@ -25,6 +29,9 @@ export interface QRPivotedResult {
25
29
  /** Numerical rank: count of `i` with `|R[i,i]| > tolerance · |R[0,0]|`. */
26
30
  rank: number;
27
31
  }
32
+ /**
33
+ * Options for `qrPivoted`.
34
+ */
28
35
  export interface QRPivotedOptions {
29
36
  /** Relative rank tolerance (default `1e-10`). */
30
37
  tolerance?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"qr-pivoted.d.ts","sourceRoot":"","sources":["../../src/operations/qr-pivoted.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,CAAC,EAAE,WAAW,CAAC;IACf,uEAAuE;IACvE,CAAC,EAAE,WAAW,CAAC;IACf,yGAAyG;IACzG,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,eAAe,CA6GlF"}
1
+ {"version":3,"file":"qr-pivoted.d.ts","sourceRoot":"","sources":["../../src/operations/qr-pivoted.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,CAAC,EAAE,WAAW,CAAC;IACf,uEAAuE;IACvE,CAAC,EAAE,WAAW,CAAC;IACf,yGAAyG;IACzG,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,eAAe,CA6GlF"}
@@ -15,12 +15,18 @@
15
15
  * Q's columns are orthonormal (Qᵀ · Q = I_k); R is upper-triangular.
16
16
  */
17
17
  import { DenseMatrix } from '../types/DenseMatrix.js';
18
+ /**
19
+ * Result of `qr`: the factors Q and R, where A = Q · R.
20
+ */
18
21
  export interface QRResult {
19
22
  /** Orthonormal Q factor. Reduced: (m × k); full: (m × m). */
20
23
  Q: DenseMatrix;
21
24
  /** Upper-triangular R factor. Reduced: (k × n); full: (m × n). */
22
25
  R: DenseMatrix;
23
26
  }
27
+ /**
28
+ * Options for `qr`.
29
+ */
24
30
  export interface QROptions {
25
31
  /** 'reduced' (default, thin QR) or 'full'. */
26
32
  mode?: 'reduced' | 'full';
@@ -1 +1 @@
1
- {"version":3,"file":"qr.d.ts","sourceRoot":"","sources":["../../src/operations/qr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,WAAW,QAAQ;IACvB,6DAA6D;IAC7D,CAAC,EAAE,WAAW,CAAC;IACf,kEAAkE;IAClE,CAAC,EAAE,WAAW,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,CAqJ7D"}
1
+ {"version":3,"file":"qr.d.ts","sourceRoot":"","sources":["../../src/operations/qr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,6DAA6D;IAC7D,CAAC,EAAE,WAAW,CAAC;IACf,kEAAkE;IAClE,CAAC,EAAE,WAAW,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,CAqJ7D"}
@@ -14,12 +14,18 @@
14
14
  * Higham (2008) "Functions of Matrices: Theory and Computation," §1.
15
15
  */
16
16
  import { DenseMatrix } from '../types/DenseMatrix.js';
17
+ /**
18
+ * Result of the real Schur decomposition, where A = Q · T · Qᵀ.
19
+ */
17
20
  export interface SchurResult {
18
21
  /** Orthogonal factor Q (Q^T · Q = I, Q · Q^T = I). */
19
22
  Q: DenseMatrix;
20
23
  /** Quasi-upper-triangular Schur form T (real Schur form). */
21
24
  T: DenseMatrix;
22
25
  }
26
+ /**
27
+ * Options for the real Schur decomposition. They control the QR iteration.
28
+ */
23
29
  export interface SchurOptions {
24
30
  /** Maximum QR iterations (default: 1000). */
25
31
  maxIterations?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"schur.d.ts","sourceRoot":"","sources":["../../src/operations/schur.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAqVtD,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,CAAC,EAAE,WAAW,CAAC;IACf,6DAA6D;IAC7D,CAAC,EAAE,WAAW,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,WAAW,CA+B5E;AAMD;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,CAAC,EAAE,MAAM,EAAE,EAAE,EACb,aAAa,SAAO,EACpB,SAAS,SAAQ,GAChB;IAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;CAAE,CAElC"}
1
+ {"version":3,"file":"schur.d.ts","sourceRoot":"","sources":["../../src/operations/schur.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAqVtD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,CAAC,EAAE,WAAW,CAAC;IACf,6DAA6D;IAC7D,CAAC,EAAE,WAAW,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,WAAW,CA+B5E;AAMD;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,CAAC,EAAE,MAAM,EAAE,EAAE,EACb,aAAa,SAAO,EACpB,SAAS,SAAQ,GAChB;IAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;CAAE,CAElC"}
@@ -19,6 +19,9 @@
19
19
  * - Björck & Hammarling (1983) "A Schur method for the square root of a matrix."
20
20
  */
21
21
  import { DenseMatrix } from '../types/DenseMatrix.js';
22
+ /**
23
+ * Options for `matrixSqrtm`.
24
+ */
22
25
  export interface SqrtmOptions {
23
26
  /**
24
27
  * Force the symmetric-eigendecomposition path even for non-SPD matrices.
@@ -1 +1 @@
1
- {"version":3,"file":"sqrtm.d.ts","sourceRoot":"","sources":["../../src/operations/sqrtm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAuatD,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,WAAW,CAqC5E;AAUD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CAsBlE"}
1
+ {"version":3,"file":"sqrtm.d.ts","sourceRoot":"","sources":["../../src/operations/sqrtm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAoatD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,WAAW,CAqC5E;AAUD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CAsBlE"}
@@ -39,6 +39,22 @@ export interface SVDOptions {
39
39
  /** Threshold for rank determination */
40
40
  rankTolerance?: number;
41
41
  }
42
+ /**
43
+ * Compute the singular value decomposition A = U · diag(S) · Vᵀ.
44
+ *
45
+ * The singular values in `S` are non-negative and in descending order.
46
+ * If a singular value is near zero, the function computes the decomposition
47
+ * again with one-sided Jacobi SVD, because that method is correct for
48
+ * rank-deficient input.
49
+ *
50
+ * @param matrix - Input matrix as a 2D array, or as a row-major
51
+ * `Float64Array`. A `Float64Array` must hold a square matrix.
52
+ * @param options - Iteration limit, tolerances, and the `fullMatrices` flag.
53
+ * Default rank tolerance: 1e-10.
54
+ * @returns The factors U, S, and V, and the numerical rank. For an empty
55
+ * input, all arrays are empty and the rank is 0.
56
+ * @throws Error if a `Float64Array` length is not a perfect square.
57
+ */
42
58
  export declare function svd(matrix: number[][] | Float64Array, options?: SVDOptions): SVDResult;
43
59
  /**
44
60
  * Compute only singular values (faster than full SVD)
@@ -1 +1 @@
1
- {"version":3,"file":"svd.d.ts","sourceRoot":"","sources":["../../src/operations/svd.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,oCAAoC;IACpC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IACd,wCAAwC;IACxC,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,qCAAqC;IACrC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IACd,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uCAAuC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAuVD,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,YAAY,EAAE,OAAO,GAAE,UAAe,GAAG,SAAS,CA0K1F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,YAAY,EACjC,OAAO,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,GACzC,MAAM,EAAE,CAEV;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,EAAE,CAmCzE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,EAAE,CAqB7F;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,CAQrE;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,CAGtE;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAQlD"}
1
+ {"version":3,"file":"svd.d.ts","sourceRoot":"","sources":["../../src/operations/svd.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,oCAAoC;IACpC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IACd,wCAAwC;IACxC,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,qCAAqC;IACrC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IACd,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uCAAuC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAuVD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,YAAY,EAAE,OAAO,GAAE,UAAe,GAAG,SAAS,CA0K1F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,YAAY,EACjC,OAAO,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,GACzC,MAAM,EAAE,CAEV;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,EAAE,CAmCzE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,EAAE,CAqB7F;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,CAQrE;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,CAGtE;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAQlD"}
@@ -1,8 +1,61 @@
1
1
  import type { Matrix } from '../Matrix.js';
2
+ /**
3
+ * Add two matrices element by element.
4
+ *
5
+ * The function does not check the shapes. The two matrices must have the
6
+ * same number of elements.
7
+ *
8
+ * @param a - First matrix.
9
+ * @param b - Second matrix.
10
+ * @returns A new row-major array that holds a + b.
11
+ */
2
12
  export declare function add(a: Matrix<number>, b: Matrix<number>): Float64Array;
13
+ /**
14
+ * Subtract one matrix from another, element by element.
15
+ *
16
+ * The function does not check the shapes. The two matrices must have the
17
+ * same number of elements.
18
+ *
19
+ * @param a - Matrix to subtract from.
20
+ * @param b - Matrix to subtract.
21
+ * @returns A new row-major array that holds a - b.
22
+ */
3
23
  export declare function subtract(a: Matrix<number>, b: Matrix<number>): Float64Array;
24
+ /**
25
+ * Multiply two matrices element by element (Hadamard product).
26
+ *
27
+ * The function does not check the shapes. The two matrices must have the
28
+ * same number of elements.
29
+ *
30
+ * @param a - First matrix.
31
+ * @param b - Second matrix.
32
+ * @returns A new row-major array that holds the element-wise product.
33
+ */
4
34
  export declare function multiplyElementwise(a: Matrix<number>, b: Matrix<number>): Float64Array;
35
+ /**
36
+ * Multiply two matrices (matrix product a · b).
37
+ *
38
+ * The function does not check that `a.cols` equals `b.rows`. The loop skips
39
+ * the zero elements of `a`.
40
+ *
41
+ * @param a - Left matrix (n × p).
42
+ * @param b - Right matrix (p × m).
43
+ * @returns A new row-major array of length n · m that holds a · b.
44
+ */
5
45
  export declare function multiply(a: Matrix<number>, b: Matrix<number>): Float64Array;
46
+ /**
47
+ * Multiply each element of a matrix by a scalar.
48
+ *
49
+ * @param a - Input matrix.
50
+ * @param scalar - Value to multiply by.
51
+ * @returns A new row-major array that holds scalar · a.
52
+ */
6
53
  export declare function scale(a: Matrix<number>, scalar: number): Float64Array;
54
+ /**
55
+ * Transpose a matrix.
56
+ *
57
+ * @param a - Input matrix (rows × cols).
58
+ * @returns A new row-major array of the transposed matrix (cols × rows).
59
+ */
7
60
  export declare function transpose(a: Matrix<number>): Float64Array;
8
61
  //# sourceMappingURL=arithmetic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"arithmetic.d.ts","sourceRoot":"","sources":["../../../src/types/dense/arithmetic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAmB3C,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,YAAY,CAMtE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,YAAY,CAM3E;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,YAAY,CAMtF;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,YAAY,CAoB3E;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAKrE;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,YAAY,CAUzD"}
1
+ {"version":3,"file":"arithmetic.d.ts","sourceRoot":"","sources":["../../../src/types/dense/arithmetic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAmB3C;;;;;;;;;GASG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,YAAY,CAMtE;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,YAAY,CAM3E;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,YAAY,CAMtF;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,YAAY,CAoB3E;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAKrE;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,YAAY,CAUzD"}
@@ -1,8 +1,46 @@
1
1
  import type { Matrix } from '../Matrix.js';
2
+ /**
3
+ * Add all elements of a matrix.
4
+ *
5
+ * @param a - Input matrix.
6
+ * @returns The sum of all elements. For an empty matrix, 0.
7
+ */
2
8
  export declare function sum(a: Matrix<number>): number;
9
+ /**
10
+ * Compute the arithmetic mean of all elements of a matrix.
11
+ *
12
+ * @param a - Input matrix.
13
+ * @returns The sum of the elements divided by the number of elements.
14
+ */
3
15
  export declare function mean(a: Matrix<number>): number;
16
+ /**
17
+ * Find the smallest element of a matrix.
18
+ *
19
+ * @param a - Input matrix.
20
+ * @returns The smallest element. For an empty matrix, `Infinity`.
21
+ */
4
22
  export declare function min(a: Matrix<number>): number;
23
+ /**
24
+ * Find the largest element of a matrix.
25
+ *
26
+ * @param a - Input matrix.
27
+ * @returns The largest element. For an empty matrix, `-Infinity`.
28
+ */
5
29
  export declare function max(a: Matrix<number>): number;
30
+ /**
31
+ * Compute the Frobenius norm of a matrix: the square root of the sum of the
32
+ * squares of all elements.
33
+ *
34
+ * @param a - Input matrix.
35
+ * @returns The Frobenius norm.
36
+ */
6
37
  export declare function norm(a: Matrix<number>): number;
38
+ /**
39
+ * Compute the trace of a square matrix: the sum of its diagonal elements.
40
+ *
41
+ * @param a - Square input matrix.
42
+ * @returns The sum of the diagonal elements.
43
+ * @throws Error if the matrix is not square.
44
+ */
7
45
  export declare function trace(a: Matrix<number>): number;
8
46
  //# sourceMappingURL=reduction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reduction.d.ts","sourceRoot":"","sources":["../../../src/types/dense/reduction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAQ7C;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAE9C;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAS7C;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAS7C;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAS9C;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAS/C"}
1
+ {"version":3,"file":"reduction.d.ts","sourceRoot":"","sources":["../../../src/types/dense/reduction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAQ7C;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAE9C;AAED;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAS7C;AAED;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAS7C;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAS9C;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAS/C"}
Binary file
@@ -1,3 +1,3 @@
1
1
  {
2
- "mathts-as.wasm": "sha384-3I3cES5imZFxDO0jSdaWroD7QA+M7pqyVwhK4etlOYpMYHG9GubGIymo2CgBYSJm"
2
+ "mathts-as.wasm": "sha384-01dwonC0XXiSPd3nkA+vORAXfIlWJ9fmNpsMiJGwRBkc3HXUthQyl6tSOrAH+d61"
3
3
  }
package/package.json CHANGED
@@ -1,70 +1,70 @@
1
- {
2
- "name": "@danielsimonjr/mathts-matrix",
3
- "version": "0.7.3",
4
- "description": "Matrix operations for MathTS with WASM/WebGPU backend support",
5
- "author": "Daniel Simon Jr.",
6
- "license": "MIT",
7
- "type": "module",
8
- "main": "./dist/index.js",
9
- "module": "./dist/index.js",
10
- "types": "./dist/index.d.ts",
11
- "exports": {
12
- ".": {
13
- "import": "./dist/index.js",
14
- "types": "./dist/index.d.ts"
15
- }
16
- },
17
- "files": [
18
- "dist",
19
- "README.md"
20
- ],
21
- "scripts": {
22
- "build": "tsup src/index.ts --format esm --clean && tsc -p tsconfig.dts.json && node scripts/copy-wasm.mjs",
23
- "copy:wasm": "node scripts/copy-wasm.mjs",
24
- "dev": "tsup src/index.ts --format esm --dts --watch",
25
- "test": "bun test --isolate --timeout 30000",
26
- "test:watch": "vitest",
27
- "test:coverage": "bun test --isolate --timeout 30000 --coverage",
28
- "typecheck": "tsc --noEmit",
29
- "lint": "oxlint src",
30
- "lint:fix": "oxlint src --fix",
31
- "clean": "rm -rf dist",
32
- "build:prod": "tsup src/index.ts --format esm --dts --clean --minify --treeshake && node scripts/copy-wasm.mjs"
33
- },
34
- "dependencies": {
35
- "@danielsimonjr/mathts-core": "^0.15.0",
36
- "@danielsimonjr/mathts-gpu": "^0.2.0",
37
- "@danielsimonjr/mathts-parallel": "^0.6.5"
38
- },
39
- "devDependencies": {
40
- "@types/node": "^26.4.0",
41
- "tsup": "^8.0.0",
42
- "typescript": "^7.0.2",
43
- "vitest": "^5.0.0",
44
- "@webgpu/types": "^0.1.72"
45
- },
46
- "publishConfig": {
47
- "access": "public"
48
- },
49
- "repository": {
50
- "type": "git",
51
- "url": "git+https://github.com/danielsimonjr/MathTS.git",
52
- "directory": "matrix"
53
- },
54
- "keywords": [
55
- "math",
56
- "matrix",
57
- "linear-algebra",
58
- "typescript",
59
- "wasm",
60
- "webgpu"
61
- ],
62
- "peerDependencies": {
63
- "@webgpu/types": "^0.1.72"
64
- },
65
- "peerDependenciesMeta": {
66
- "@webgpu/types": {
67
- "optional": true
68
- }
69
- }
70
- }
1
+ {
2
+ "name": "@danielsimonjr/mathts-matrix",
3
+ "version": "0.7.5",
4
+ "description": "Matrix operations for MathTS with WASM/WebGPU backend support",
5
+ "author": "Daniel Simon Jr.",
6
+ "license": "MIT",
7
+ "type": "module",
8
+ "main": "./dist/index.js",
9
+ "module": "./dist/index.js",
10
+ "types": "./dist/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "import": "./dist/index.js",
14
+ "types": "./dist/index.d.ts"
15
+ }
16
+ },
17
+ "files": [
18
+ "dist",
19
+ "README.md"
20
+ ],
21
+ "scripts": {
22
+ "build": "tsup src/index.ts --format esm --clean && tsc -p tsconfig.dts.json && node scripts/copy-wasm.mjs",
23
+ "copy:wasm": "node scripts/copy-wasm.mjs",
24
+ "dev": "tsup src/index.ts --format esm --watch --onSuccess \"tsc -p tsconfig.dts.json && node scripts/copy-wasm.mjs\"",
25
+ "test": "bun test --isolate --timeout 30000",
26
+ "test:watch": "vitest",
27
+ "test:coverage": "bun test --isolate --timeout 30000 --coverage",
28
+ "typecheck": "tsc --noEmit && tsc -p tsconfig.test.json",
29
+ "lint": "oxlint src",
30
+ "lint:fix": "oxlint src --fix",
31
+ "clean": "rm -rf dist",
32
+ "build:prod": "tsup src/index.ts --format esm --clean --minify --treeshake && tsc -p tsconfig.dts.json && node scripts/copy-wasm.mjs"
33
+ },
34
+ "dependencies": {
35
+ "@danielsimonjr/mathts-core": "^0.15.5",
36
+ "@danielsimonjr/mathts-gpu": "^0.2.1",
37
+ "@danielsimonjr/mathts-parallel": "^0.6.7"
38
+ },
39
+ "devDependencies": {
40
+ "@types/node": "^26.4.0",
41
+ "tsup": "^8.0.0",
42
+ "typescript": "^7.0.2",
43
+ "vitest": "^5.0.0",
44
+ "@webgpu/types": "^0.1.72"
45
+ },
46
+ "publishConfig": {
47
+ "access": "public"
48
+ },
49
+ "repository": {
50
+ "type": "git",
51
+ "url": "git+https://github.com/danielsimonjr/MathTS.git",
52
+ "directory": "matrix"
53
+ },
54
+ "keywords": [
55
+ "math",
56
+ "matrix",
57
+ "linear-algebra",
58
+ "typescript",
59
+ "wasm",
60
+ "webgpu"
61
+ ],
62
+ "peerDependencies": {
63
+ "@webgpu/types": "^0.1.72"
64
+ },
65
+ "peerDependenciesMeta": {
66
+ "@webgpu/types": {
67
+ "optional": true
68
+ }
69
+ }
70
+ }