@danielsimonjr/mathts-matrix 0.7.9 → 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.
Files changed (46) hide show
  1. package/README.md +51 -14
  2. package/dist/backends/BackendManager.d.ts +1 -1
  3. package/dist/backends/BackendManager.d.ts.map +1 -1
  4. package/dist/backends/GPUBackend.d.ts.map +1 -1
  5. package/dist/backends/GPUMatrixBackend.d.ts.map +1 -1
  6. package/dist/backends/JSBackend.d.ts.map +1 -1
  7. package/dist/backends/ParallelBackend.d.ts +10 -0
  8. package/dist/backends/ParallelBackend.d.ts.map +1 -1
  9. package/dist/backends/WASMBackend.d.ts.map +1 -1
  10. package/dist/backends/gpu/gpu-or-js.d.ts +5 -0
  11. package/dist/backends/gpu/gpu-or-js.d.ts.map +1 -0
  12. package/dist/backends/gpu/run-shader.d.ts +37 -0
  13. package/dist/backends/gpu/run-shader.d.ts.map +1 -0
  14. package/dist/backends/wasm/as-typed-array.d.ts +37 -0
  15. package/dist/backends/wasm/as-typed-array.d.ts.map +1 -0
  16. package/dist/backends/wasm/index.d.ts +0 -2
  17. package/dist/backends/wasm/index.d.ts.map +1 -1
  18. package/dist/config.d.ts +1 -1
  19. package/dist/config.d.ts.map +1 -1
  20. package/dist/index.js +621 -1047
  21. package/dist/operations/common.d.ts +79 -2
  22. package/dist/operations/common.d.ts.map +1 -1
  23. package/dist/operations/expm.d.ts.map +1 -1
  24. package/dist/operations/givens.d.ts +22 -0
  25. package/dist/operations/givens.d.ts.map +1 -0
  26. package/dist/operations/index.d.ts +1 -0
  27. package/dist/operations/index.d.ts.map +1 -1
  28. package/dist/operations/logm.d.ts.map +1 -1
  29. package/dist/operations/qr-family.d.ts +2 -0
  30. package/dist/operations/qr-family.d.ts.map +1 -1
  31. package/dist/operations/schur.d.ts.map +1 -1
  32. package/dist/operations/sqrtm.d.ts.map +1 -1
  33. package/dist/operations/svd.d.ts.map +1 -1
  34. package/dist/parallel-matrix.d.ts.map +1 -1
  35. package/dist/types/DenseMatrix.d.ts +7 -0
  36. package/dist/types/DenseMatrix.d.ts.map +1 -1
  37. package/dist/types/SparseMatrix.d.ts +3 -0
  38. package/dist/types/SparseMatrix.d.ts.map +1 -1
  39. package/dist/types/dense/arithmetic.d.ts.map +1 -1
  40. package/dist/wasm/mathts-as.wasm +0 -0
  41. package/dist/wasm/wasm-manifest.json +1 -1
  42. package/package.json +3 -3
  43. package/dist/backends/WasmLoader.d.ts +0 -356
  44. package/dist/backends/WasmLoader.d.ts.map +0 -1
  45. package/dist/backends/wasm/fft-wasm.d.ts +0 -120
  46. package/dist/backends/wasm/fft-wasm.d.ts.map +0 -1
@@ -1,356 +0,0 @@
1
- /**
2
- * WASM Loader - Loads and manages WebAssembly modules
3
- * Provides a bridge between JavaScript/TypeScript and compiled WASM
4
- *
5
- * Optimizations:
6
- * - Singleton pattern with module caching
7
- * - Streaming compilation in browsers (WebAssembly.instantiateStreaming)
8
- * - Memory pooling for frequent allocations
9
- * - Compiled module caching for faster re-instantiation
10
- * - Configurable size thresholds for JS fallback
11
- *
12
- * AssemblyScript managed-runtime allocation
13
- * -----------------------------------------
14
- * AssemblyScript is the sole WASM backend (`mathts-as.wasm`); the legacy
15
- * second toolchain was removed in the WASM-backend migration (complete 2026-06-26).
16
- *
17
- * The AS managed runtime allocates buffers via `__new(byteLength, id)` and
18
- * its typed-array exports expect a 12-byte *header* pointer (id=5 for
19
- * Float64Array, id=4 for Int32Array). The header holds
20
- * [dataStart, dataStart, byteLength] in little-endian u32s. The data block
21
- * (id=1 = ArrayBuffer) is allocated separately; we pin both so the GC can't
22
- * reclaim them.
23
- *
24
- * Callers receive an opaque `Allocation` handle whose `.ptr` is the header
25
- * pointer to pass to the WASM function and whose `.array` is a JS view over
26
- * the data region.
27
- */
28
- import type { LoadingMetrics } from '@danielsimonjr/mathts-core/internal';
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
- */
37
- export interface WasmModule {
38
- multiplyDense: (aPtr: number, aRows: number, aCols: number, bPtr: number, bRows: number, bCols: number, resultPtr: number) => void;
39
- multiplyDenseSIMD: (aPtr: number, aRows: number, aCols: number, bPtr: number, bRows: number, bCols: number, resultPtr: number) => void;
40
- multiplyVector: (aPtr: number, aRows: number, aCols: number, xPtr: number, resultPtr: number) => void;
41
- transpose: (dataPtr: number, rows: number, cols: number, resultPtr: number) => void;
42
- add: (aPtr: number, bPtr: number, size: number, resultPtr: number) => void;
43
- subtract: (aPtr: number, bPtr: number, size: number, resultPtr: number) => void;
44
- scalarMultiply: (aPtr: number, scalar: number, size: number, resultPtr: number) => void;
45
- dotProduct: (aPtr: number, bPtr: number, size: number) => number;
46
- luDecomposition: (aPtr: number, n: number, permPtr: number) => number;
47
- qrDecomposition: (aPtr: number, m: number, n: number, qPtr: number) => void;
48
- choleskyDecomposition: (aPtr: number, n: number, lPtr: number) => number;
49
- schur: (aPtr: number, n: number, maxIter: number, tol: number, qPtr: number, tPtr: number, workPtr: number) => number;
50
- luSolve: (luPtr: number, n: number, permPtr: number, bPtr: number, xPtr: number) => void;
51
- luDeterminant: (luPtr: number, n: number, permPtr: number) => number;
52
- laDet: (aPtr: number, n: number, workPtr: number) => number;
53
- laInv: (aPtr: number, n: number, resultPtr: number, workPtr: number) => number;
54
- laInv2x2: (aPtr: number, resultPtr: number) => number;
55
- laInv3x3: (aPtr: number, resultPtr: number) => number;
56
- laCond1: (aPtr: number, n: number, workPtr: number) => number;
57
- laCondInf: (aPtr: number, n: number, workPtr: number) => number;
58
- laKron: (aPtr: number, aRows: number, aCols: number, bPtr: number, bRows: number, bCols: number) => number;
59
- laDot: (aPtr: number, bPtr: number, n: number) => number;
60
- laCross: (aPtr: number, bPtr: number) => number;
61
- laNorm2: (xPtr: number, n: number) => number;
62
- laSolve: (aPtr: number, bPtr: number, n: number, resultPtr: number, workPtr: number) => number;
63
- laLsolve: (lPtr: number, bPtr: number, n: number, resultPtr: number) => number;
64
- laUsolve: (uPtr: number, bPtr: number, n: number, resultPtr: number) => number;
65
- eigsSymmetric: (matrixPtr: number, n: number, precision: number, eigenvaluesPtr: number, eigenvectorsPtr: number, workPtr: number) => number;
66
- powerIteration: (matrixPtr: number, n: number, eigenvaluePtr: number, eigenvectorPtr: number, workPtr: number, maxIterations: number, tolerance: number) => number;
67
- spectralRadius: (matrixPtr: number, n: number, workPtr: number, maxIterations: number, tolerance: number) => number;
68
- inverseIteration: (matrixPtr: number, n: number, shift: number, eigenvectorPtr: number, workPtr: number, maxIterations: number, tolerance: number) => number;
69
- balanceMatrix: (matrixPtr: number, n: number, scalePtr: number, transformPtr: number) => void;
70
- reduceToHessenberg: (matrixPtr: number, n: number, transformPtr: number) => void;
71
- eigenvalues2x2: (a: number, b: number, c: number, d: number, realPtr: number, imagPtr: number) => void;
72
- qrIterationStep: (matrixPtr: number, n: number, workPtr: number, shift: number) => void;
73
- qrAlgorithm: (matrixPtr: number, n: number, eigenvaluesRealPtr: number, eigenvaluesImagPtr: number, workPtr: number, maxIterations: number, tolerance: number) => number;
74
- hessenbergQRStep: (matrixPtr: number, n: number, startRow: number, endRow: number, shift: number) => void;
75
- expm: (matrixPtr: number, n: number, resultPtr: number, workPtr: number) => number;
76
- expmSmall: (matrixPtr: number, n: number, resultPtr: number, workPtr: number, terms: number) => void;
77
- expmv: (matrixPtr: number, n: number, vectorPtr: number, resultPtr: number, workPtr: number, t: number) => void;
78
- sqrtm: (matrixPtr: number, n: number, resultPtr: number, tolerance: number, maxIterations: number, workPtr: number) => number;
79
- sqrtmNewtonSchulz: (matrixPtr: number, n: number, resultPtr: number, workPtr: number, maxIterations: number, tolerance: number) => number;
80
- sqrtmCholesky: (matrixPtr: number, n: number, resultPtr: number, workPtr: number) => number;
81
- sparseLu: (valuesPtr: number, rowIndPtr: number, colPtrPtr: number, n: number, nnz: number, lValuesPtr: number, lRowIndPtr: number, lColPtrPtr: number, uValuesPtr: number, uRowIndPtr: number, uColPtrPtr: number, permPtr: number, workPtr: number) => number;
82
- sparseForwardSolve: (lValuesPtr: number, lRowIndPtr: number, lColPtrPtr: number, n: number, bPtr: number, xPtr: number) => void;
83
- sparseBackwardSolve: (uValuesPtr: number, uRowIndPtr: number, uColPtrPtr: number, n: number, bPtr: number, xPtr: number) => void;
84
- sparseLuSolve: (lValuesPtr: number, lRowIndPtr: number, lColPtrPtr: number, uValuesPtr: number, uRowIndPtr: number, uColPtrPtr: number, n: number, permPtr: number, bPtr: number, xPtr: number, workPtr: number) => void;
85
- sparseChol: (valuesPtr: number, rowIndPtr: number, colPtrPtr: number, n: number, nnz: number, lValuesPtr: number, lRowIndPtr: number, lColPtrPtr: number, parentPtr: number, workPtr: number) => number;
86
- sparseCholSolve: (lValuesPtr: number, lRowIndPtr: number, lColPtrPtr: number, n: number, bPtr: number, xPtr: number, workPtr: number) => void;
87
- eliminationTree: (rowIndPtr: number, colPtrPtr: number, n: number, parentPtr: number) => void;
88
- columnCounts: (rowIndPtr: number, colPtrPtr: number, n: number, parentPtr: number, countsPtr: number, workPtr: number) => void;
89
- amd: (colPtrPtr: number, rowIdxPtr: number, n: number, permPtr: number, workPtr: number) => void;
90
- amdAggressive: (colPtrPtr: number, rowIdxPtr: number, n: number, permPtr: number, workPtr: number) => void;
91
- symbolicCholesky: (indexPtr: number, ptrPtr: number, n: number, parentPtr: number, postPtr: number, colCountPtr: number, workPtr: number) => void;
92
- simdDotF64: (aPtr: number, bPtr: number, length: number) => number;
93
- simdSumF64: (aPtr: number, length: number) => number;
94
- simdSumSquaresF64: (aPtr: number, length: number) => number;
95
- simdNormF64: (aPtr: number, length: number) => number;
96
- simdMinF64: (aPtr: number, length: number) => number;
97
- simdMaxF64: (aPtr: number, length: number) => number;
98
- simdMeanF64: (aPtr: number, length: number) => number;
99
- simdVarianceF64: (aPtr: number, length: number, ddof: number) => number;
100
- simdStdF64: (aPtr: number, length: number, ddof: number) => number;
101
- simdAddF64: (aPtr: number, bPtr: number, resultPtr: number, length: number) => void;
102
- simdSubF64: (aPtr: number, bPtr: number, resultPtr: number, length: number) => void;
103
- simdMulF64: (aPtr: number, bPtr: number, resultPtr: number, length: number) => void;
104
- simdScaleF64: (aPtr: number, scalar: number, resultPtr: number, length: number) => void;
105
- simdAbsF64: (aPtr: number, resultPtr: number, length: number) => void;
106
- simdMatMulF64: (aPtr: number, bPtr: number, cPtr: number, m: number, k: number, n: number) => void;
107
- gcdArray: (aPtr: number, n: number) => number;
108
- hypotArray: (aPtr: number, n: number) => number;
109
- norm1: (aPtr: number, n: number) => number;
110
- norm2: (aPtr: number, n: number) => number;
111
- normInf: (aPtr: number, n: number) => number;
112
- normP: (aPtr: number, n: number, p: number) => number;
113
- erfArray: (aPtr: number, n: number, resultPtr: number) => void;
114
- zetaArray: (aPtr: number, n: number, resultPtr: number) => void;
115
- gammaArray: (aPtr: number, n: number, resultPtr: number) => void;
116
- lgammaArray: (aPtr: number, n: number, resultPtr: number) => void;
117
- partitionSelect: (dataPtr: number, n: number, k: number, workPtr: number) => number;
118
- distanceND: (p1Ptr: number, p2Ptr: number, n: number) => number;
119
- distance2D: (x1: number, y1: number, x2: number, y2: number) => number;
120
- distance3D: (x1: number, y1: number, z1: number, x2: number, y2: number, z2: number) => number;
121
- intersect2DLines: (x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, resultPtr: number) => void;
122
- intersect2DInfiniteLines: (x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, resultPtr: number) => void;
123
- distancePointToLine2D: (px: number, py: number, x1: number, y1: number, x2: number, y2: number) => number;
124
- statsMean: (aPtr: number, n: number) => number;
125
- statsMedian: (aPtr: number, n: number) => number;
126
- statsSum: (aPtr: number, n: number) => number;
127
- statsProd: (aPtr: number, n: number) => number;
128
- statsMin: (aPtr: number, n: number) => number;
129
- statsMax: (aPtr: number, n: number) => number;
130
- statsCumsum: (aPtr: number, n: number) => void;
131
- statsMad: (aPtr: number, n: number) => number;
132
- statsCorrelation: (aPtr: number, bPtr: number, n: number) => number;
133
- statsCovariance: (aPtr: number, bPtr: number, n: number, ddof: number) => number;
134
- freqz: (bPtr: number, bLen: number, aPtr: number, aLen: number, wPtr: number, wLen: number, hRealPtr: number, hImagPtr: number) => void;
135
- fft: (dataPtr: number, n: number, inverse: number) => void;
136
- fft2d: (dataPtr: number, rows: number, cols: number, inverse: number) => void;
137
- convolve: (signalPtr: number, n: number, kernelPtr: number, m: number, resultPtr: number) => void;
138
- rfft: (dataPtr: number, n: number, resultPtr: number) => void;
139
- irfft: (dataPtr: number, n: number, resultPtr: number) => void;
140
- isPowerOf2: (n: number) => number;
141
- vectorAdd: (aPtr: number, bPtr: number, n: number, resultPtr: number) => void;
142
- vectorScale: (aPtr: number, scalar: number, n: number, resultPtr: number) => void;
143
- vectorCopy: (srcPtr: number, n: number, dstPtr: number) => void;
144
- maxError: (errorPtr: number, n: number) => number;
145
- computeStepAdjustment: (maxErr: number, tol: number, order: number, minDelta: number, maxDelta: number) => number;
146
- rk45Step: (yPtr: number, t: number, h: number, n: number, kPtr: number, yNextPtr: number, yErrorPtr: number) => void;
147
- rk23Step: (yPtr: number, t: number, h: number, n: number, kPtr: number, yNextPtr: number, yErrorPtr: number) => void;
148
- bitAndArray?: (aPtr: number, bPtr: number, resultPtr: number, length: number) => void;
149
- bitOrArray?: (aPtr: number, bPtr: number, resultPtr: number, length: number) => void;
150
- bitXorArray?: (aPtr: number, bPtr: number, resultPtr: number, length: number) => void;
151
- bitNotArray?: (inputPtr: number, resultPtr: number, length: number) => void;
152
- leftShiftArrayPerElement?: (aPtr: number, bPtr: number, resultPtr: number, length: number) => void;
153
- rightArithShiftArrayPerElement?: (aPtr: number, bPtr: number, resultPtr: number, length: number) => void;
154
- rightLogShiftArrayPerElement?: (aPtr: number, bPtr: number, resultPtr: number, length: number) => void;
155
- bitAnd_i32_array?: (a: Int32Array, b: Int32Array, result: Int32Array) => void;
156
- bitOr_i32_array?: (a: Int32Array, b: Int32Array, result: Int32Array) => void;
157
- bitXor_i32_array?: (a: Int32Array, b: Int32Array, result: Int32Array) => void;
158
- bitNot_i32_array?: (a: Int32Array, result: Int32Array) => void;
159
- leftShift_i32_array?: (a: Int32Array, b: Int32Array, result: Int32Array) => void;
160
- rightArithShift_i32_array?: (a: Int32Array, b: Int32Array, result: Int32Array) => void;
161
- rightLogShift_i32_array?: (a: Int32Array, b: Int32Array, result: Int32Array) => void;
162
- matrix_lu_decompose?: (aHdr: number, n: number, lOutHdr: number, uOutHdr: number, permOutHdr: number) => number;
163
- matrix_qr_decompose?: (aHdr: number, m: number, n: number, qOutHdr: number, rOutHdr: number, vWorkHdr?: number) => number;
164
- matrix_cholesky?: (aHdr: number, n: number, lOutHdr: number) => number;
165
- matrix_inverse?: (aHdr: number, n: number, resultHdr: number, workHdr: number) => number;
166
- matrix_determinant?: (aHdr: number, n: number, workHdr: number) => number;
167
- __new: (size: number, id: number) => number;
168
- __pin: (ptr: number) => number;
169
- __unpin: (ptr: number) => void;
170
- __collect: () => void;
171
- memory: WebAssembly.Memory;
172
- }
173
- /**
174
- * Opaque allocation handle returned by `allocateFloat64Array` and friends.
175
- *
176
- * Callers treat `ptr` as the typed-array *header* pointer to pass to WASM
177
- * functions. The `array` view is positioned over the data region so callers
178
- * can `set()` and read it as JS expects.
179
- */
180
- export interface Allocation<TArray extends Float64Array | Int32Array> {
181
- /** Header pointer to pass to WASM functions. */
182
- readonly ptr: number;
183
- /** JS-side view of the data region. */
184
- array: TArray;
185
- /** Element length (independent of byte-width). */
186
- readonly length: number;
187
- /** Internal: the data-block offset (the ArrayBuffer the header points at). */
188
- readonly dataPtr: number;
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
- */
197
- export declare class WasmLoader {
198
- private static instance;
199
- private wasmModule;
200
- private compiledModule;
201
- private loading;
202
- private isNode;
203
- private lastMetrics;
204
- private float64Pool;
205
- private int32Pool;
206
- private readonly poolSizeThreshold;
207
- private constructor();
208
- static getInstance(): WasmLoader;
209
- /**
210
- * Load the WASM module
211
- */
212
- load(wasmPath?: string): Promise<WasmModule>;
213
- /**
214
- * Precompile the WASM module without instantiation
215
- * Useful for build-time or startup optimization
216
- */
217
- precompile(wasmPath?: string): Promise<void>;
218
- private loadModule;
219
- /**
220
- * Get the WASM binary path. AssemblyScript is the sole WASM backend
221
- * (`mathts-as.wasm`); the legacy second toolchain was removed in the
222
- * WASM-backend migration (complete 2026-06-26).
223
- *
224
- * Resolution is package-relative and CWD-independent: the packaged artifact
225
- * (`dist/wasm/`) is preferred via `resolvePackagedWasm`; when absent, the
226
- * canonical expected location is returned so the missing-binary warning is
227
- * actionable (see `defaultWasmLocation` in wasm/resolve.ts — B-3).
228
- */
229
- private getDefaultWasmPath;
230
- private loadNodeWasm;
231
- private loadBrowserWasm;
232
- private getImports;
233
- /**
234
- * Get the loaded WASM module
235
- */
236
- getModule(): WasmModule | null;
237
- /**
238
- * Get the compiled WASM module (for caching/serialization)
239
- */
240
- getCompiledModule(): WebAssembly.Module | null;
241
- /**
242
- * Check if WASM is loaded
243
- */
244
- isLoaded(): boolean;
245
- /**
246
- * Check if WASM is precompiled
247
- */
248
- isPrecompiled(): boolean;
249
- /**
250
- * Get loading performance metrics
251
- */
252
- getLoadingMetrics(): LoadingMetrics | null;
253
- /**
254
- * Allocate Float64Array in WASM memory and copy `data` into it.
255
- * Uses memory pooling.
256
- */
257
- allocateFloat64Array(data: number[] | Float64Array): Allocation<Float64Array>;
258
- /**
259
- * Decode a managed Float64Array RETURNED by an AssemblyScript export
260
- * (e.g. the `matrix_lu_decompose` / `matrix_qr_decompose` outputs) into a fresh JS copy.
261
- *
262
- * AS exports that return a `Float64Array` hand back the typed-array
263
- * *header* pointer. The header is a 12-byte block laid out as
264
- * `[buffer, dataStart, byteLength]` (little-endian u32s) — the same shape
265
- * the loader writes in `makeAsFloat64`. We read `dataStart`/`byteLength`
266
- * and copy the data region out so it survives any later reuse of WASM
267
- * memory.
268
- */
269
- readReturnedFloat64Array(headerPtr: number): Float64Array;
270
- /**
271
- * Allocate a zero-filled Float64Array (for output buffers). Zeroed explicitly,
272
- * since a recycled pool block still holds its previous contents.
273
- */
274
- allocateFloat64ArrayEmpty(length: number): Allocation<Float64Array>;
275
- /**
276
- * Allocate Int32Array in WASM memory and copy `data` into it.
277
- */
278
- allocateInt32Array(data: number[] | Int32Array): Allocation<Int32Array>;
279
- /**
280
- * Allocate a zero-filled Int32Array (for output buffers). Zeroed explicitly,
281
- * since a recycled pool block still holds its previous contents.
282
- */
283
- allocateInt32ArrayEmpty(length: number): Allocation<Int32Array>;
284
- private allocateAsFloat64;
285
- private allocateAsInt32;
286
- private makeAsFloat64;
287
- private makeAsInt32;
288
- /** Record a new in-use allocation so it can be recycled once released. */
289
- private track;
290
- /**
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.
296
- */
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;
304
- /**
305
- * Return an allocation to the pool for reuse.
306
- *
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.
311
- */
312
- release(ptr: number, isFloat64?: boolean): void;
313
- /**
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()`.
318
- */
319
- free(ptr: number): void;
320
- /**
321
- * Clear the memory pool
322
- */
323
- clearPool(): void;
324
- /**
325
- * Get pool statistics
326
- */
327
- getPoolStats(): {
328
- float64: {
329
- total: number;
330
- inUse: number;
331
- totalBytes: number;
332
- };
333
- int32: {
334
- total: number;
335
- inUse: number;
336
- totalBytes: number;
337
- };
338
- };
339
- /**
340
- * Run garbage collection.
341
- */
342
- collect(): void;
343
- /**
344
- * Reset the loader (for testing)
345
- */
346
- reset(): void;
347
- }
348
- /**
349
- * Global WASM loader instance
350
- */
351
- export declare const wasmLoader: WasmLoader;
352
- /**
353
- * Initialize WASM module (call once at startup)
354
- */
355
- export declare function initWasm(wasmPath?: string): Promise<WasmModule>;
356
- //# sourceMappingURL=WasmLoader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WasmLoader.d.ts","sourceRoot":"","sources":["../../src/backends/WasmLoader.ts"],"names":[],"mappings":"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"}
@@ -1,120 +0,0 @@
1
- /**
2
- * WASM-Accelerated FFT Operations
3
- *
4
- * Wraps the AssemblyScript WASM FFT exports (`fft` / `rfft` / `powerSpectrum`,
5
- * `assembly/src/ops/fft.ts`, interleaved complex format) with a high-level
6
- * TypeScript API. Falls back to a pure JavaScript Cooley-Tukey radix-2
7
- * implementation when WASM is unavailable. (Phase 7b: the matrix loader now
8
- * defaults to the AS binary; the AS `fft(data, n, inverse)` / `rfft(data, n,
9
- * result)` / `powerSpectrum(data, n, result)` call shapes match the consumer
10
- * exactly, so this module needed no marshalling changes.)
11
- *
12
- * The WASM kernels use interleaved complex arrays: [re0, im0, re1, im1, ...].
13
- * This module converts between split (separate real/imag) and interleaved
14
- * formats as needed.
15
- *
16
- * @packageDocumentation
17
- */
18
- /**
19
- * FFT result with separate real and imaginary arrays
20
- */
21
- export interface FFTResult {
22
- real: Float64Array;
23
- imag: Float64Array;
24
- }
25
- /**
26
- * FFT backend selection
27
- */
28
- export type FFTBackend = 'wasm' | 'js' | 'auto';
29
- /**
30
- * Configuration for FFT operations
31
- */
32
- export interface FFTConfig {
33
- /** Backend to use (default: 'auto') */
34
- backend?: FFTBackend;
35
- /** Minimum elements to use WASM (default: 64) */
36
- wasmThreshold?: number;
37
- }
38
- /**
39
- * Check if n is a power of 2
40
- */
41
- export declare function isPowerOf2(n: number): boolean;
42
- /**
43
- * Next power of 2 >= n
44
- */
45
- export declare function nextPowerOf2(n: number): number;
46
- /**
47
- * Pure JavaScript Cooley-Tukey radix-2 FFT
48
- *
49
- * Input length must be a power of 2.
50
- */
51
- export declare function fftJS(real: Float64Array, imag: Float64Array, inverse?: boolean): FFTResult;
52
- /**
53
- * Check if the WASM FFT backend is available
54
- */
55
- export declare function isWasmFFTAvailable(): boolean;
56
- /**
57
- * Compute the Fast Fourier Transform.
58
- *
59
- * Automatically selects WASM or JS backend based on availability and
60
- * array size. Input length must be a power of 2.
61
- *
62
- * @param real - Real part of input signal
63
- * @param imag - Imaginary part (zeros for real-only input)
64
- * @param config - Backend configuration
65
- * @returns FFT result with real and imaginary arrays
66
- */
67
- export declare function fft(real: Float64Array, imag: Float64Array, config?: FFTConfig): FFTResult;
68
- /**
69
- * Compute the Inverse Fast Fourier Transform.
70
- *
71
- * @param real - Real part of frequency-domain signal
72
- * @param imag - Imaginary part of frequency-domain signal
73
- * @param config - Backend configuration
74
- * @returns Time-domain signal with real and imaginary arrays
75
- */
76
- export declare function ifft(real: Float64Array, imag: Float64Array, config?: FFTConfig): FFTResult;
77
- /**
78
- * Compute the real FFT (real input -> complex output).
79
- *
80
- * Convenience wrapper that creates a zero imaginary array.
81
- *
82
- * @param data - Real-valued input signal (length must be power of 2)
83
- * @param config - Backend configuration
84
- * @returns FFT result
85
- */
86
- export declare function rfft(data: Float64Array, config?: FFTConfig): FFTResult;
87
- /**
88
- * Compute the power spectrum: |X[k]|^2 for each frequency bin.
89
- *
90
- * @param real - Real part of FFT output
91
- * @param imag - Imaginary part of FFT output
92
- * @returns Power spectrum array
93
- */
94
- export declare function powerSpectrum(real: Float64Array, imag: Float64Array): Float64Array;
95
- /**
96
- * Compute the magnitude spectrum: |X[k]| for each frequency bin.
97
- *
98
- * @param real - Real part of FFT output
99
- * @param imag - Imaginary part of FFT output
100
- * @returns Magnitude spectrum array
101
- */
102
- export declare function magnitudeSpectrum(real: Float64Array, imag: Float64Array): Float64Array;
103
- /**
104
- * Compute the phase spectrum: angle(X[k]) for each frequency bin.
105
- *
106
- * @param real - Real part of FFT output
107
- * @param imag - Imaginary part of FFT output
108
- * @returns Phase spectrum array (radians)
109
- */
110
- export declare function phaseSpectrum(real: Float64Array, imag: Float64Array): Float64Array;
111
- /**
112
- * FFT-based convolution: conv(signal, kernel) = IFFT(FFT(signal) * FFT(kernel))
113
- *
114
- * @param signal - Input signal
115
- * @param kernel - Convolution kernel
116
- * @param config - Backend configuration
117
- * @returns Convolution result (length = signal.length + kernel.length - 1)
118
- */
119
- export declare function convolve(signal: Float64Array, kernel: Float64Array, config?: FFTConfig): Float64Array;
120
- //# sourceMappingURL=fft-wasm.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fft-wasm.d.ts","sourceRoot":"","sources":["../../../src/backends/wasm/fft-wasm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAQH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,YAAY,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,uCAAuC;IACvC,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAqDD;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAE7C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,GAAE,OAAe,GAAG,SAAS,CA+EjG;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAG5C;AA2CD;;;;;;;;;;GAUG;AACH,wBAAgB,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,GAAE,SAAc,GAAG,SAAS,CAgB7F;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,GAAE,SAAc,GAAG,SAAS,CAgB9F;AAED;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,GAAE,SAAc,GAAG,SAAS,CAqC1E;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,GAAG,YAAY,CAkClF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,GAAG,YAAY,CAOtF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,GAAG,YAAY,CAOlF;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,YAAY,EACpB,MAAM,GAAE,SAAc,GACrB,YAAY,CAkCd"}