@danielsimonjr/mathts-functions 0.20.1 → 0.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +32 -28
- package/dist/matrix/fft.d.ts.map +1 -1
- package/dist/matrix/ifft.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -31757,7 +31757,7 @@ var createSplitUnit = /* @__PURE__ */ factory(
|
|
|
31757
31757
|
);
|
|
31758
31758
|
|
|
31759
31759
|
// src/matrix/fft.ts
|
|
31760
|
-
var
|
|
31760
|
+
var FAST_FFT_THRESHOLD = 64;
|
|
31761
31761
|
function isPowerOf22(n) {
|
|
31762
31762
|
return n > 0 && (n & n - 1) === 0;
|
|
31763
31763
|
}
|
|
@@ -31897,20 +31897,22 @@ var createFft = /* @__PURE__ */ factory(
|
|
|
31897
31897
|
function _fft(arr7, len) {
|
|
31898
31898
|
const length = len ?? arr7.length;
|
|
31899
31899
|
if (length === 1) return [arr7[0]];
|
|
31900
|
-
|
|
31901
|
-
if (wasm && length >= WASM_FFT_THRESHOLD && isPowerOf22(length) && len === void 0) {
|
|
31900
|
+
if (length === arr7.length && length >= FAST_FFT_THRESHOLD && isPowerOf22(length)) {
|
|
31902
31901
|
const interleaved = complexToInterleaved(arr7, complex2);
|
|
31903
31902
|
if (interleaved) {
|
|
31904
|
-
|
|
31905
|
-
|
|
31906
|
-
|
|
31907
|
-
|
|
31908
|
-
|
|
31909
|
-
} finally {
|
|
31910
|
-
wasmLoader.free(dataAlloc.ptr);
|
|
31911
|
-
}
|
|
31912
|
-
} catch {
|
|
31903
|
+
const real = new Float64Array(length);
|
|
31904
|
+
const imag = new Float64Array(length);
|
|
31905
|
+
for (let i = 0; i < length; i++) {
|
|
31906
|
+
real[i] = interleaved[i * 2];
|
|
31907
|
+
imag[i] = interleaved[i * 2 + 1];
|
|
31913
31908
|
}
|
|
31909
|
+
const out = fftCoreFloat64(real, imag, false);
|
|
31910
|
+
const result = new Float64Array(length * 2);
|
|
31911
|
+
for (let i = 0; i < length; i++) {
|
|
31912
|
+
result[i * 2] = out.real[i];
|
|
31913
|
+
result[i * 2 + 1] = out.imag[i];
|
|
31914
|
+
}
|
|
31915
|
+
return interleavedToComplex(result, length, complex2);
|
|
31914
31916
|
}
|
|
31915
31917
|
}
|
|
31916
31918
|
if (length % 2 === 0) {
|
|
@@ -32202,7 +32204,7 @@ var createDivide = /* @__PURE__ */ factory(
|
|
|
32202
32204
|
);
|
|
32203
32205
|
|
|
32204
32206
|
// src/matrix/ifft.ts
|
|
32205
|
-
var
|
|
32207
|
+
var FAST_IFFT_THRESHOLD = 64;
|
|
32206
32208
|
function isPowerOf23(n) {
|
|
32207
32209
|
return n > 0 && (n & n - 1) === 0;
|
|
32208
32210
|
}
|
|
@@ -32243,25 +32245,27 @@ var createIfft = /* @__PURE__ */ factory(
|
|
|
32243
32245
|
const totalSize = size2.reduce((acc, curr) => acc * curr, 1);
|
|
32244
32246
|
if (size2.length === 1) {
|
|
32245
32247
|
const length = size2[0];
|
|
32246
|
-
|
|
32247
|
-
if (wasm && length >= WASM_IFFT_THRESHOLD && isPowerOf23(length)) {
|
|
32248
|
+
if (length >= FAST_IFFT_THRESHOLD && isPowerOf23(length)) {
|
|
32248
32249
|
const arrData = isMatrix(arr7) ? arr7.valueOf() : arr7;
|
|
32249
32250
|
const interleaved = complexToInterleaved2(arrData, complex2);
|
|
32250
32251
|
if (interleaved) {
|
|
32251
|
-
|
|
32252
|
-
|
|
32253
|
-
|
|
32254
|
-
|
|
32255
|
-
|
|
32256
|
-
|
|
32257
|
-
|
|
32258
|
-
|
|
32259
|
-
|
|
32260
|
-
|
|
32261
|
-
|
|
32262
|
-
}
|
|
32263
|
-
} catch {
|
|
32252
|
+
const real = new Float64Array(length);
|
|
32253
|
+
const imag = new Float64Array(length);
|
|
32254
|
+
for (let i = 0; i < length; i++) {
|
|
32255
|
+
real[i] = interleaved[i * 2];
|
|
32256
|
+
imag[i] = interleaved[i * 2 + 1];
|
|
32257
|
+
}
|
|
32258
|
+
const out = fftCoreFloat64(real, imag, true);
|
|
32259
|
+
const packed = new Float64Array(length * 2);
|
|
32260
|
+
for (let i = 0; i < length; i++) {
|
|
32261
|
+
packed[i * 2] = out.real[i];
|
|
32262
|
+
packed[i * 2 + 1] = out.imag[i];
|
|
32264
32263
|
}
|
|
32264
|
+
const result = interleavedToComplex2(packed, length, complex2);
|
|
32265
|
+
if (isMatrix(arr7)) {
|
|
32266
|
+
return arr7.create(result);
|
|
32267
|
+
}
|
|
32268
|
+
return result;
|
|
32265
32269
|
}
|
|
32266
32270
|
}
|
|
32267
32271
|
}
|
package/dist/matrix/fft.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fft.d.ts","sourceRoot":"","sources":["../../src/matrix/fft.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"fft.d.ts","sourceRoot":"","sources":["../../src/matrix/fft.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AA4D/D,KAAK,aAAa,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC;AAIzD,wDAAwD;AACxD,KAAK,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAEhD,UAAU,MAAM;IACd,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,IAAI,OAAO,GAAG,QAAQ,CAAC;IAC9B,IAAI,IAAI,MAAM,EAAE,CAAC;IACjB,WAAW,IAAI,MAAM,CAAC;IACtB,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnD,OAAO,IAAI,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC;CACpC;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,KAAK,MAAM,CAAC;IAClE,SAAS,EAAE,QAAQ,CAAC;IACpB,cAAc,EAAE,QAAQ,CAAC;IACzB,YAAY,EAAE,QAAQ,CAAC;IACvB,GAAG,EAAE,QAAQ,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,aAAa,CAAC;IACjB,SAAS,EAAE,QAAQ,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,QAAQ,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;CAC/C;AA4BD,eAAO,MAAM,SAAS,sEA4NrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifft.d.ts","sourceRoot":"","sources":["../../src/matrix/ifft.ts"],"names":[],"mappings":"AA6DA,KAAK,aAAa,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC;AACzD,KAAK,cAAc,GAAG,aAAa,EAAE,GAAG,cAAc,EAAE,CAAC;AAEzD,UAAU,aAAa,CAAC,CAAC,GAAG,OAAO;IACjC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACxB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAChD;AAED,UAAU,MAAM;IACd,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,IAAI,OAAO,GAAG,QAAQ,CAAC;IAC9B,IAAI,IAAI,MAAM,EAAE,CAAC;IACjB,WAAW,IAAI,MAAM,CAAC;IACtB,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnD,OAAO,IAAI,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC;CACpC;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,aAAa,CAAC,cAAc,GAAG,MAAM,CAAC,CAAC;IAC5C,SAAS,EAAE,aAAa,CAAC;IACzB,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;CAC/C;AAKD,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"ifft.d.ts","sourceRoot":"","sources":["../../src/matrix/ifft.ts"],"names":[],"mappings":"AA6DA,KAAK,aAAa,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC;AACzD,KAAK,cAAc,GAAG,aAAa,EAAE,GAAG,cAAc,EAAE,CAAC;AAEzD,UAAU,aAAa,CAAC,CAAC,GAAG,OAAO;IACjC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACxB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAChD;AAED,UAAU,MAAM;IACd,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,IAAI,OAAO,GAAG,QAAQ,CAAC;IAC9B,IAAI,IAAI,MAAM,EAAE,CAAC;IACjB,WAAW,IAAI,MAAM,CAAC;IACtB,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnD,OAAO,IAAI,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC;CACpC;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,aAAa,CAAC,cAAc,GAAG,MAAM,CAAC,CAAC;IAC5C,SAAS,EAAE,aAAa,CAAC;IACzB,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;CAC/C;AAKD,eAAO,MAAM,UAAU,sEAuEtB,CAAC"}
|
package/package.json
CHANGED