@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 CHANGED
@@ -31757,7 +31757,7 @@ var createSplitUnit = /* @__PURE__ */ factory(
31757
31757
  );
31758
31758
 
31759
31759
  // src/matrix/fft.ts
31760
- var WASM_FFT_THRESHOLD = 64;
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
- const wasm = wasmLoader.getModule();
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
- try {
31905
- const dataAlloc = wasmLoader.allocateFloat64Array(interleaved);
31906
- try {
31907
- wasm.fft(dataAlloc.ptr, length, 0);
31908
- return interleavedToComplex(dataAlloc.array, length, complex2);
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 WASM_IFFT_THRESHOLD = 64;
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
- const wasm = wasmLoader.getModule();
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
- try {
32252
- const dataAlloc = wasmLoader.allocateFloat64Array(interleaved);
32253
- try {
32254
- wasm.fft(dataAlloc.ptr, length, 1);
32255
- const result = interleavedToComplex2(dataAlloc.array, length, complex2);
32256
- if (isMatrix(arr7)) {
32257
- return arr7.create(result);
32258
- }
32259
- return result;
32260
- } finally {
32261
- wasmLoader.free(dataAlloc.ptr);
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
  }
@@ -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;AA2E/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,sEA0MrB,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,sEA4DtB,CAAC"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danielsimonjr/mathts-functions",
3
- "version": "0.20.1",
3
+ "version": "0.20.2",
4
4
  "description": "Mathematical functions for MathTS - arithmetic, algebra, trigonometry, statistics, and more",
5
5
  "author": "Daniel Simon Jr.",
6
6
  "license": "MIT",