@danielsimonjr/mathts-matrix 0.7.8 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -14
- package/dist/backends/BackendManager.d.ts +1 -1
- package/dist/backends/BackendManager.d.ts.map +1 -1
- package/dist/backends/GPUBackend.d.ts.map +1 -1
- package/dist/backends/GPUMatrixBackend.d.ts.map +1 -1
- package/dist/backends/JSBackend.d.ts.map +1 -1
- package/dist/backends/ParallelBackend.d.ts +10 -0
- package/dist/backends/ParallelBackend.d.ts.map +1 -1
- package/dist/backends/WASMBackend.d.ts.map +1 -1
- package/dist/backends/gpu/gpu-or-js.d.ts +5 -0
- package/dist/backends/gpu/gpu-or-js.d.ts.map +1 -0
- package/dist/backends/gpu/run-shader.d.ts +37 -0
- package/dist/backends/gpu/run-shader.d.ts.map +1 -0
- package/dist/backends/wasm/as-typed-array.d.ts +37 -0
- package/dist/backends/wasm/as-typed-array.d.ts.map +1 -0
- package/dist/backends/wasm/index.d.ts +0 -2
- package/dist/backends/wasm/index.d.ts.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/index.js +5701 -8247
- package/dist/integrity-Hbf0W3mK.js +1 -0
- package/dist/operations/common.d.ts +79 -2
- package/dist/operations/common.d.ts.map +1 -1
- package/dist/operations/expm.d.ts.map +1 -1
- package/dist/operations/givens.d.ts +22 -0
- package/dist/operations/givens.d.ts.map +1 -0
- package/dist/operations/index.d.ts +1 -0
- package/dist/operations/index.d.ts.map +1 -1
- package/dist/operations/logm.d.ts.map +1 -1
- package/dist/operations/qr-family.d.ts +2 -0
- package/dist/operations/qr-family.d.ts.map +1 -1
- package/dist/operations/schur.d.ts.map +1 -1
- package/dist/operations/sqrtm.d.ts.map +1 -1
- package/dist/operations/svd.d.ts.map +1 -1
- package/dist/parallel-matrix.d.ts.map +1 -1
- package/dist/resolve-BzZxSO28.js +1 -0
- package/dist/types/DenseMatrix.d.ts +7 -0
- package/dist/types/DenseMatrix.d.ts.map +1 -1
- package/dist/types/SparseMatrix.d.ts +3 -0
- package/dist/types/SparseMatrix.d.ts.map +1 -1
- package/dist/types/dense/arithmetic.d.ts.map +1 -1
- package/dist/wasm/mathts-as.wasm +0 -0
- package/dist/wasm/wasm-manifest.json +1 -1
- package/package.json +18 -7
- package/dist/backends/WasmLoader.d.ts +0 -356
- package/dist/backends/WasmLoader.d.ts.map +0 -1
- package/dist/backends/wasm/fft-wasm.d.ts +0 -120
- package/dist/backends/wasm/fft-wasm.d.ts.map +0 -1
- package/dist/chunk-4VMDO6W2.js +0 -31
- package/dist/integrity-LIWCCDIJ.js +0 -13
- package/dist/resolve-DDCEWHWX.js +0 -8
package/README.md
CHANGED
|
@@ -11,7 +11,16 @@ npm install @danielsimonjr/mathts-matrix
|
|
|
11
11
|
## Usage
|
|
12
12
|
|
|
13
13
|
```typescript
|
|
14
|
-
import {
|
|
14
|
+
import {
|
|
15
|
+
DenseMatrix,
|
|
16
|
+
matMul,
|
|
17
|
+
transposeNestedArray,
|
|
18
|
+
svd,
|
|
19
|
+
eig,
|
|
20
|
+
lu,
|
|
21
|
+
qr,
|
|
22
|
+
cholesky,
|
|
23
|
+
} from '@danielsimonjr/mathts-matrix';
|
|
15
24
|
|
|
16
25
|
// Create a matrix from a 2D array
|
|
17
26
|
const A = DenseMatrix.fromArray([
|
|
@@ -20,23 +29,50 @@ const A = DenseMatrix.fromArray([
|
|
|
20
29
|
[7, 8, 9],
|
|
21
30
|
]);
|
|
22
31
|
|
|
23
|
-
//
|
|
32
|
+
// DenseMatrix methods use the JS backend (add, multiply, transpose, …)
|
|
24
33
|
const sum = A.add(A);
|
|
25
34
|
const product = A.multiply(A);
|
|
26
35
|
const transposed = A.transpose();
|
|
27
36
|
|
|
28
|
-
//
|
|
29
|
-
|
|
30
|
-
const {
|
|
37
|
+
// `eig` / `svd` take number[][]; `lu` / `qr` / `cholesky` take DenseMatrix
|
|
38
|
+
const { U, S, V, rank } = svd(A.toArray());
|
|
39
|
+
const { values, vectors } = eig(A.toArray());
|
|
40
|
+
const { L, U: Ulu, P } = lu(A);
|
|
41
|
+
|
|
42
|
+
// Nested-array multiply / transpose (same kernels as decomposition internals)
|
|
43
|
+
const C = matMul(A.toArray(), A.toArray());
|
|
44
|
+
const At = transposeNestedArray(A.toArray());
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### WASM matrix multiply (not `DenseMatrix.multiply`)
|
|
48
|
+
|
|
49
|
+
After `await backendManager.initialize()`, `backendManager.multiply(a, b)` and
|
|
50
|
+
`wasmBackend.multiply(a, b)` can run the AssemblyScript GEMM kernel when size gates
|
|
51
|
+
pass. `Tensor.matMul` in `@danielsimonjr/mathts-tensor` routes through the same
|
|
52
|
+
manager. Public `lu` / `qr` / `cholesky` / `eig` / `svd` stay on JS; `eigWasm` and
|
|
53
|
+
`svdWasm` are async wrappers that still call those JS solvers.
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
import { backendManager, DenseMatrix } from '@danielsimonjr/mathts-matrix';
|
|
57
|
+
|
|
58
|
+
await backendManager.initialize();
|
|
59
|
+
const a = DenseMatrix.random(32, 32);
|
|
60
|
+
const c = backendManager.multiply(a, a);
|
|
31
61
|
```
|
|
32
62
|
|
|
33
63
|
## Backends
|
|
34
64
|
|
|
35
|
-
| Backend |
|
|
36
|
-
| -------- |
|
|
37
|
-
| **JS** |
|
|
38
|
-
| **WASM** |
|
|
39
|
-
| **GPU** |
|
|
65
|
+
| Backend | How you reach it | Role |
|
|
66
|
+
| -------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
|
|
67
|
+
| **JS** | `DenseMatrix` methods; `lu`/`qr`/`cholesky`/`eig`/`svd` | Default |
|
|
68
|
+
| **WASM** | `backendManager.multiply`, `wasmBackend.multiply`, `Tensor.matMul` | SIMD GEMM (+ unused-by-public decomp methods on `WASMBackend`) |
|
|
69
|
+
| **GPU** | `gpuMatrixBackend.multiplyAsync`; `@danielsimonjr/mathts-functions` with `enableGpu()` | f32 opt-in; **not** registered on `BackendManager` |
|
|
70
|
+
|
|
71
|
+
Live defaults come from one table: `matrix/src/config.ts` `DEFAULT_CONFIG` (multiply
|
|
72
|
+
WASM **256** flop count; `gpu.enabled` **false**). `DEFAULT_EXTENDED_HINTS` on
|
|
73
|
+
`BackendManager` is derived from that table at load time. GPU hint **65536** is
|
|
74
|
+
dormant until a GPU backend registers. Element-wise WASM paths were retired as
|
|
75
|
+
slower than JS (2026-07).
|
|
40
76
|
|
|
41
77
|
## Matrix Types
|
|
42
78
|
|
|
@@ -52,10 +88,11 @@ This package is under active development. Currently implemented:
|
|
|
52
88
|
- [x] Dense matrix structure
|
|
53
89
|
- [x] Sparse matrix (CSR) structure
|
|
54
90
|
- [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
|
|
91
|
+
- [x] WASM backend (AssemblyScript) for manager-driven GEMM
|
|
92
|
+
- [x] GPU backend (WebGPU) via `GPUMatrixBackend`
|
|
93
|
+
- [x] SVD decomposition (JS)
|
|
94
|
+
- [x] Eigenvalue solvers (JS)
|
|
95
|
+
- [x] LU / QR / Cholesky and related exports (see API reference)
|
|
59
96
|
|
|
60
97
|
## License
|
|
61
98
|
|
|
@@ -27,7 +27,7 @@ export interface ExtendedBackendHints extends BackendHints {
|
|
|
27
27
|
fallbackOnError?: boolean;
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
|
-
* Default extended hints
|
|
30
|
+
* Default extended hints (derived from `DEFAULT_CONFIG` — single threshold table).
|
|
31
31
|
*/
|
|
32
32
|
export declare const DEFAULT_EXTENDED_HINTS: Required<ExtendedBackendHints>;
|
|
33
33
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackendManager.d.ts","sourceRoot":"","sources":["../../src/backends/BackendManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"BackendManager.d.ts","sourceRoot":"","sources":["../../src/backends/BackendManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GPUBackend.d.ts","sourceRoot":"","sources":["../../src/backends/GPUBackend.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,EAEtB,UAAU,EACV,aAAa,EAIb,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"GPUBackend.d.ts","sourceRoot":"","sources":["../../src/backends/GPUBackend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GPUMatrixBackend.d.ts","sourceRoot":"","sources":["../../src/backends/GPUMatrixBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EACL,UAAU,EAGV,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAoC,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"GPUMatrixBackend.d.ts","sourceRoot":"","sources":["../../src/backends/GPUMatrixBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EACL,UAAU,EAGV,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAoC,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGnG;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0BAA0B;IAC1B,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,oCAAoC;IACpC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAYD;;;;;;;;;;;;;GAaG;AACH,qBAAa,gBAAiB,YAAW,aAAa;IACpD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAS;IAEnC,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,UAAU,CAAwB;IAE1C,YAAY,MAAM,GAAE,sBAA2B,EAE9C;IAED;;OAEG;IACH,WAAW,IAAI,OAAO,CAMrB;IAED;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAMhC;YAEa,YAAY;IA8B1B;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;YACW,mBAAmB;IAajC;;OAEG;IACH,eAAe,IAAI,eAAe,GAAG,IAAI,CAExC;IAED;;OAEG;IACH,QAAQ,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAEpD;IAMD,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CAY/C;IAED;;OAEG;IACG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAanE;IAED,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CASpD;IAED,mBAAmB,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CAQ/D;IAED,iBAAiB,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CAQ7D;IAED,KAAK,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAQjD;IAED;;OAEG;IACG,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAYrE;IAED,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW,CAE/B;IAED,MAAM,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW,CAElC;IAMD,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CASpD;IAED;;OAEG;IACG,aAAa,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAaxE;IAED,SAAS,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW,CAQrC;IAED;;OAEG;IACG,cAAc,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAezD;IAMD,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAE1B;IAED,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,WAAW,CAEhD;IAED,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAE3B;IAED,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,MAAM,CAE1C;IAMD;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAE1D;IAED;;OAEG;IACH,SAAS,IAAI,QAAQ,CAAC,sBAAsB,CAAC,CAE5C;IAED;;OAEG;IACH,OAAO,IAAI,IAAI,CAKd;CACF;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,kBAAyB,CAAC;AAEvD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,gBAAgB,CAExF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JSBackend.d.ts","sourceRoot":"","sources":["../../src/backends/JSBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"JSBackend.d.ts","sourceRoot":"","sources":["../../src/backends/JSBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAuB,MAAM,yBAAyB,CAAC;AAE3E,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE/D;;;;;GAKG;AACH,qBAAa,SAAU,YAAW,aAAa;IAC7C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAQ;IAElC;;OAEG;IACH,WAAW,IAAI,OAAO,CAErB;IAED;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAEhC;IAMD;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CAW/C;IAED;;OAEG;IACH,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CAWpD;IAED;;OAEG;IACH,mBAAmB,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CAW/D;IAED;;OAEG;IACH,iBAAiB,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CAW7D;IAED;;OAEG;IACH,KAAK,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAUjD;IAED;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW,CAU/B;IAED;;OAEG;IACH,MAAM,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW,CAElC;IAMD;;;;;OAKG;IACH,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CAwBpD;IAED;;OAEG;IACH,SAAS,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW,CAUrC;IAMD;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAU1B;IAED;;;;OAIG;IACH,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,WAAW,CAwBhD;IAED;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAE3B;IAED;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,MAAM,CAoB1C;IAMD,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,uBAAuB;CAKhC;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,WAAkB,CAAC"}
|
|
@@ -117,6 +117,16 @@ export declare class ParallelBackend {
|
|
|
117
117
|
* Get pool statistics
|
|
118
118
|
*/
|
|
119
119
|
getStats(): import("workerpool").PoolStats;
|
|
120
|
+
/**
|
|
121
|
+
* Run the parallel worker path when the pool is ready and the matrix is large enough;
|
|
122
|
+
* otherwise delegate to the sequential implementation (bit-identical for small matrices).
|
|
123
|
+
*
|
|
124
|
+
* Intentionally not `async`: a sequential throw or plain `T` must settle on the same
|
|
125
|
+
* tick as the inlined `if (!shouldParallelize || !isReady) return sequential()` this
|
|
126
|
+
* replaced. Callers are already `async` and flatten a returned `Promise<T>`.
|
|
127
|
+
*/
|
|
128
|
+
private whenParallel;
|
|
129
|
+
private parallelBinary;
|
|
120
130
|
private checkDimensionsMatch;
|
|
121
131
|
private checkMultiplyDimensions;
|
|
122
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParallelBackend.d.ts","sourceRoot":"","sources":["../../src/backends/ParallelBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAe,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ParallelBackend.d.ts","sourceRoot":"","sources":["../../src/backends/ParallelBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAe,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAKhD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,6CAA6C;IAC7C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,gDAAgD;IAChD,UAAU,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACxC,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,eAAe;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAA6B;IAEvD,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,iBAAiB,CAAS;IAElC,YAAY,MAAM,GAAE,qBAA0B,EAG7C;IAED;;OAEG;IACH,WAAW,IAAI,OAAO,CAIrB;IAED;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAKhC;IAED;;OAEG;IACH,OAAO,IAAI,OAAO,CAEjB;IAED;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAE9D;IAED;;OAEG;IACG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAEnE;IAED;;OAEG;IACG,mBAAmB,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAE9E;IAED;;OAEG;IACG,iBAAiB,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAE5E;IAED;;OAEG;IACG,KAAK,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAWhE;IAED;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW,CAE/B;IAED;;OAEG;IACH,MAAM,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW,CAElC;IAMD;;OAEG;IACG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAiBnE;IAED;;OAEG;IACG,SAAS,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAYpD;IAMD;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAWzC;IAED;;OAEG;IACH,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,WAAW,CAEhD;IAED;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAE3B;IAED;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBzD;IAMD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAK/B;IAED;;OAEG;IACH,QAAQ,mCAEP;IAMD;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;YAWN,cAAc;IAqB5B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,uBAAuB;CAKhC;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,iBAA6C,CAAC;AAE1E;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,qBAAqB,GAAG,eAAe,CAErF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WASMBackend.d.ts","sourceRoot":"","sources":["../../src/backends/WASMBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"WASMBackend.d.ts","sourceRoot":"","sources":["../../src/backends/WASMBackend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Route a matrix op to GPU when over the element threshold, else JS (with optional fallback).
|
|
3
|
+
*/
|
|
4
|
+
export declare function gpuOrJs<T>(useGpu: boolean, js: () => T, gpu: () => Promise<T>, executeWithFallback: (gpuOp: () => Promise<T>, fallback: () => T) => Promise<T>): Promise<T>;
|
|
5
|
+
//# sourceMappingURL=gpu-or-js.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gpu-or-js.d.ts","sourceRoot":"","sources":["../../../src/backends/gpu/gpu-or-js.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAsB,OAAO,CAAC,CAAC,EAC7B,MAAM,EAAE,OAAO,EACf,EAAE,EAAE,MAAM,CAAC,EACX,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACrB,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC9E,OAAO,CAAC,CAAC,CAAC,CAKZ"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared acquire / write / dispatch / read / release path for matrix GPU kernels.
|
|
3
|
+
*/
|
|
4
|
+
import type { BufferPool, GPUContext, ShaderManager } from '@danielsimonjr/mathts-gpu';
|
|
5
|
+
export type ShaderBindEntry = {
|
|
6
|
+
binding: number;
|
|
7
|
+
bufferIndex: number;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Structural host for {@link runShader}. Kept local so this module does not
|
|
11
|
+
* import GPUBackend (that import was a type-only cycle).
|
|
12
|
+
*/
|
|
13
|
+
export interface RunShaderHost {
|
|
14
|
+
getContext(): GPUContext;
|
|
15
|
+
getBufferPool(): BufferPool;
|
|
16
|
+
getShaderManager(): ShaderManager;
|
|
17
|
+
}
|
|
18
|
+
export interface RunShaderPlan {
|
|
19
|
+
pipeline: string;
|
|
20
|
+
bytes: number[];
|
|
21
|
+
storageLabels: string[];
|
|
22
|
+
writes: Float32Array[];
|
|
23
|
+
bindEntries: ShaderBindEntry[];
|
|
24
|
+
params: ArrayBufferView;
|
|
25
|
+
workgroups: [number, number, number];
|
|
26
|
+
resultBufferIndex: number;
|
|
27
|
+
}
|
|
28
|
+
export declare function planRunShaderFromAdd(a: Float32Array, b: Float32Array, rows: number, cols: number, workgroups: [number, number, number]): RunShaderPlan;
|
|
29
|
+
export declare function planRunShaderFromMatmul(a: Float32Array, b: Float32Array, M: number, K: number, N: number, workgroups: [number, number, number]): RunShaderPlan;
|
|
30
|
+
export declare function planRunShaderFromTranspose(a: Float32Array, rows: number, cols: number, workgroups: [number, number, number]): RunShaderPlan;
|
|
31
|
+
/**
|
|
32
|
+
* Run a compute shader described by `plan` on an initialized GPU backend host.
|
|
33
|
+
* Buffers are released on both success and throw (the pre-extract bodies only
|
|
34
|
+
* released after a successful readback).
|
|
35
|
+
*/
|
|
36
|
+
export declare function runShader(backend: RunShaderHost, plan: RunShaderPlan): Promise<Float32Array>;
|
|
37
|
+
//# sourceMappingURL=run-shader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-shader.d.ts","sourceRoot":"","sources":["../../../src/backends/gpu/run-shader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAEvF,MAAM,MAAM,eAAe,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,IAAI,UAAU,CAAC;IACzB,aAAa,IAAI,UAAU,CAAC;IAC5B,gBAAgB,IAAI,aAAa,CAAC;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAID,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,YAAY,EACf,CAAC,EAAE,YAAY,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GACnC,aAAa,CAiBf;AAED,wBAAgB,uBAAuB,CACrC,CAAC,EAAE,YAAY,EACf,CAAC,EAAE,YAAY,EACf,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GACnC,aAAa,CAgBf;AAED,wBAAgB,0BAA0B,CACxC,CAAC,EAAE,YAAY,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GACnC,aAAa,CAgBf;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,YAAY,CAAC,CA6DvB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared AssemblyScript managed-runtime allocation for typed arrays.
|
|
3
|
+
*
|
|
4
|
+
* Both {@link ../WASMBackend.ts} and {@link ../WasmLoader.ts} pin a data
|
|
5
|
+
* buffer, allocate a 12-byte header, and write `[dataStart, dataStart,
|
|
6
|
+
* byteLength]` as little-endian u32s before constructing the JS view. Not
|
|
7
|
+
* exported from the package barrel.
|
|
8
|
+
*/
|
|
9
|
+
/** Minimal AS runtime surface needed to allocate managed typed arrays. */
|
|
10
|
+
export interface AsRuntime {
|
|
11
|
+
__new: (size: number, id: number) => number;
|
|
12
|
+
__pin: (ptr: number) => number;
|
|
13
|
+
memory: WebAssembly.Memory;
|
|
14
|
+
}
|
|
15
|
+
/** AssemblyScript runtime type ids (see `assembly/build/mathts.js`). */
|
|
16
|
+
export declare const AS_ID_ARRAY_BUFFER = 1;
|
|
17
|
+
export declare const AS_ID_FLOAT64_ARRAY = 5;
|
|
18
|
+
export declare const AS_ID_INT32_ARRAY = 6;
|
|
19
|
+
export declare const AS_F64_ALIGN_SHIFT = 3;
|
|
20
|
+
export declare const AS_I32_ALIGN_SHIFT = 2;
|
|
21
|
+
/**
|
|
22
|
+
* Pin a new ArrayBuffer, write the AS typed-array header, and return views.
|
|
23
|
+
*
|
|
24
|
+
* @param module - Loaded AS module exports (`__new`, `__pin`, `memory`).
|
|
25
|
+
* @param byteLength - Total data bytes (`length * elementBytes` or `length << shift`).
|
|
26
|
+
* @param length - Element count for the returned typed-array view.
|
|
27
|
+
* @param typeId - AS class id for the header object (`Float64Array` / `Int32Array`).
|
|
28
|
+
* @param Ctor - JS typed-array constructor for the data view.
|
|
29
|
+
*/
|
|
30
|
+
export declare function allocAsTypedView<T extends Float64Array | Int32Array>(module: AsRuntime, byteLength: number, length: number, typeId: number, Ctor: new (b: ArrayBuffer, o: number, l: number) => T): {
|
|
31
|
+
headerPtr: number;
|
|
32
|
+
bufferPtr: number;
|
|
33
|
+
view: T;
|
|
34
|
+
byteLength: number;
|
|
35
|
+
length: number;
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=as-typed-array.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"as-typed-array.d.ts","sourceRoot":"","sources":["../../../src/backends/wasm/as-typed-array.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,0EAA0E;AAC1E,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;CAC5B;AAED,wEAAwE;AACxE,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,YAAY,GAAG,UAAU,EAClE,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC,GACpD;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,CAAC,CAAC;IACR,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAKA"}
|
|
@@ -4,6 +4,4 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export { detectWasmFeatures, isWasmAvailable, isSharedMemoryAvailable, isAtomicsAvailable, clearFeatureCache, getCachedFeatures, } from './detect.js';
|
|
6
6
|
export type { WasmFeatures } from './detect.js';
|
|
7
|
-
export { fft as wasmFFT, ifft as wasmIFFT, rfft as wasmRFFT, fftJS, convolve as wasmConvolve, powerSpectrum, magnitudeSpectrum, phaseSpectrum, isPowerOf2, nextPowerOf2, isWasmFFTAvailable, } from './fft-wasm.js';
|
|
8
|
-
export type { FFTResult, FFTBackend, FFTConfig } from './fft-wasm.js';
|
|
9
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/backends/wasm/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/backends/wasm/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/config.d.ts
CHANGED
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|