@danielsimonjr/mathts-functions 0.21.0 → 0.23.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.
@@ -1 +1 @@
1
- {"version":3,"file":"norm.d.ts","sourceRoot":"","sources":["../../src/arithmetic/norm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAO/D,UAAU,WAAW;IACnB,GAAG,IAAI,MAAM,CAAC;CACf;AAED,UAAU,aAAa;IACrB,GAAG,IAAI,aAAa,CAAC;CACtB;AAED,UAAU,UAAU;IAClB,IAAI,IAAI,MAAM,EAAE,CAAC;IACjB,OAAO,CACL,QAAQ,EAAE,CACR,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,WAAW,EAC3C,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,EAAE,UAAU,KACf,IAAI,EACT,SAAS,CAAC,EAAE,OAAO,GAClB,IAAI,CAAC;IACR,OAAO,IAAI,CAAC,MAAM,GAAG,aAAa,GAAG,WAAW,CAAC,EAAE,CAAC;CACrD;AAED,UAAU,UAAU;IAClB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,UAAU,gBAAgB;IACxB,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,aAAa,CAAC;IACnB,GAAG,EAAE,aAAa,CAAC;IACnB,GAAG,EAAE,aAAa,CAAC;IACnB,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,WAAW,EAAE,aAAa,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa,KAAK,OAAO,CAAC;IAC1E,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa,KAAK,OAAO,CAAC;IAC3E,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,UAAU,CAAC;IACtC,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,UAAU,CAAC;CACrC;AAmBD,eAAO,MAAM,UAAU,gFA+VtB,CAAC"}
1
+ {"version":3,"file":"norm.d.ts","sourceRoot":"","sources":["../../src/arithmetic/norm.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAO/D,UAAU,WAAW;IACnB,GAAG,IAAI,MAAM,CAAC;CACf;AAED,UAAU,aAAa;IACrB,GAAG,IAAI,aAAa,CAAC;CACtB;AAED,UAAU,UAAU;IAClB,IAAI,IAAI,MAAM,EAAE,CAAC;IACjB,OAAO,CACL,QAAQ,EAAE,CACR,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,WAAW,EAC3C,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,EAAE,UAAU,KACf,IAAI,EACT,SAAS,CAAC,EAAE,OAAO,GAClB,IAAI,CAAC;IACR,OAAO,IAAI,CAAC,MAAM,GAAG,aAAa,GAAG,WAAW,CAAC,EAAE,CAAC;CACrD;AAED,UAAU,UAAU;IAClB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,UAAU,gBAAgB;IACxB,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,aAAa,CAAC;IACnB,GAAG,EAAE,aAAa,CAAC;IACnB,GAAG,EAAE,aAAa,CAAC;IACnB,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,WAAW,EAAE,aAAa,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa,KAAK,OAAO,CAAC;IAC1E,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa,KAAK,OAAO,CAAC;IAC3E,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,UAAU,CAAC;IACtC,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,UAAU,CAAC;CACrC;AAmBD,eAAO,MAAM,UAAU,gFAiXtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"distance.d.ts","sourceRoot":"","sources":["../../src/geometry/distance.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAM/D,UAAU,oBAAoB;IAC5B,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,KAAK,eAAe,CAAC;IACvE,cAAc,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,KAAK,eAAe,CAAC;IAC5E,cAAc,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,KAAK,eAAe,CAAC;IAC5E,YAAY,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,KAAK,eAAe,CAAC;IAC1E,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,eAAe,CAAC;IAC9C,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,eAAe,CAAC;CAC9C;AAcD,eAAO,MAAM,cAAc,8EAshB1B,CAAC"}
1
+ {"version":3,"file":"distance.d.ts","sourceRoot":"","sources":["../../src/geometry/distance.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG/D,UAAU,oBAAoB;IAC5B,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,KAAK,eAAe,CAAC;IACvE,cAAc,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,KAAK,eAAe,CAAC;IAC5E,cAAc,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,KAAK,eAAe,CAAC;IAC5E,YAAY,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,KAAK,eAAe,CAAC;IAC1E,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,eAAe,CAAC;IAC9C,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,eAAe,CAAC;CAC9C;AAcD,eAAO,MAAM,cAAc,8EAkgB1B,CAAC"}
package/dist/index.js CHANGED
@@ -194,6 +194,7 @@ __export(typed_exports, {
194
194
  fresnelC: () => fresnelC,
195
195
  fresnelS: () => fresnelS,
196
196
  friedmanTest: () => friedmanTest,
197
+ fsum: () => fsum,
197
198
  fullSimplify: () => fullSimplify,
198
199
  functionExpand: () => functionExpand,
199
200
  fuseUnaryChain: () => fuseUnaryChain,
@@ -313,7 +314,7 @@ __export(typed_exports, {
313
314
  nintegrate: () => nintegrate,
314
315
  noncentralChi2PDF: () => noncentralChi2PDF,
315
316
  norm: () => norm,
316
- norm2: () => norm2,
317
+ norm2: () => norm22,
317
318
  normFro: () => normFro,
318
319
  normalCDF: () => normalCDF,
319
320
  normalDist: () => normalDist,
@@ -509,6 +510,7 @@ __export(typed_exports, {
509
510
 
510
511
  // src/typed/arithmetic.ts
511
512
  import { mathTyped as mathTyped2, Complex, Fraction, BigNumber, Dual } from "@danielsimonjr/mathts-core";
513
+ import { pairwiseSum, neumaierSum, norm2, pairwiseDot } from "@danielsimonjr/mathts-core";
512
514
  import { DenseMatrix as DenseMatrix2, backendManager as backendManager2, singularValues } from "@danielsimonjr/mathts-matrix";
513
515
 
514
516
  // src/factories/matrix-bridge.ts
@@ -2020,11 +2022,10 @@ function vectorNorm(arr7, p = 2) {
2020
2022
  if (p === Infinity) return Math.max(...arr7.map((x) => Math.abs(x)));
2021
2023
  if (p === -Infinity) return Math.min(...arr7.map((x) => Math.abs(x)));
2022
2024
  if (p === 0) return arr7.filter((x) => x !== 0).length;
2023
- if (p === 2) return Math.sqrt(arr7.reduce((sum3, x) => sum3 + x * x, 0));
2024
- return Math.pow(
2025
- arr7.reduce((sum3, x) => sum3 + Math.pow(Math.abs(x), p), 0),
2026
- 1 / p
2027
- );
2025
+ if (p === 2) return norm2(arr7);
2026
+ const terms = new Array(arr7.length);
2027
+ for (let i = 0; i < arr7.length; i++) terms[i] = Math.pow(Math.abs(arr7[i]), p);
2028
+ return Math.pow(pairwiseSum(terms), 1 / p);
2028
2029
  }
2029
2030
  function matrixNorm(data, p = "fro") {
2030
2031
  const rows = data.length;
@@ -2081,9 +2082,7 @@ var norm = mathTyped2("norm", {
2081
2082
  if (computePool.shouldParallelize(a.length, "norm")) {
2082
2083
  return (await computePool.norm(a)).result;
2083
2084
  }
2084
- let s = 0;
2085
- for (let i = 0; i < a.length; i++) s += a[i] * a[i];
2086
- return Math.sqrt(s);
2085
+ return norm2(a);
2087
2086
  }
2088
2087
  });
2089
2088
  var sinh = mathTyped2("sinh", {
@@ -2215,15 +2214,28 @@ var max = mathTyped2("max", {
2215
2214
  return m;
2216
2215
  }
2217
2216
  });
2217
+ var fsum = mathTyped2("fsum", {
2218
+ Array: (arr7) => neumaierSum(arr7),
2219
+ Float64Array: (a) => neumaierSum(a)
2220
+ });
2218
2221
  var sum = mathTyped2("sum", {
2219
- Array: (arr7) => {
2220
- let total = 0;
2221
- for (let i = 0; i < arr7.length; i++) {
2222
- total += arr7[i];
2223
- }
2224
- return total;
2225
- },
2226
- // Parallel Float64Array sum
2222
+ // PAIRWISE summation, not `total += arr[i]`.
2223
+ //
2224
+ // Naive accumulation lets the running total grow large while the addends stay small, so each
2225
+ // addition rounds off a bit more of the total: error grows as O(n)*eps. Measured on 1e6 copies
2226
+ // of 0.1 (exact answer 100000):
2227
+ //
2228
+ // naive (what shipped) relative error 1.3e-11
2229
+ // pairwise (this) relative error 2.9e-16 <- identical to NumPy's np.sum
2230
+ //
2231
+ // We were ~46,000x less accurate than NumPy on a bog-standard `sum`, and `mean`/`std`/`variance`
2232
+ // all inherit it. Pairwise costs the same number of additions — the naive loop was simply worse.
2233
+ // For catastrophic cancellation (e.g. [1e16, 1, -1e16], which pairwise AND np.sum both
2234
+ // annihilate to 0) use `fsum`.
2235
+ Array: (arr7) => pairwiseSum(arr7),
2236
+ // Float64Array: the pool's sequential branch is pairwise too (see ComputePool.sum), and its
2237
+ // parallel branch sums per-chunk then combines — blocked summation, which is pairwise-like.
2238
+ // Either way the O(n) drift is gone.
2227
2239
  Float64Array: async (a) => {
2228
2240
  const result = await computePool.sum(a);
2229
2241
  return result.result;
@@ -2232,11 +2244,7 @@ var sum = mathTyped2("sum", {
2232
2244
  var mean = mathTyped2("mean", {
2233
2245
  Array: (arr7) => {
2234
2246
  if (arr7.length === 0) return NaN;
2235
- let total = 0;
2236
- for (let i = 0; i < arr7.length; i++) {
2237
- total += arr7[i];
2238
- }
2239
- return total / arr7.length;
2247
+ return pairwiseSum(arr7) / arr7.length;
2240
2248
  },
2241
2249
  // Parallel Float64Array mean
2242
2250
  Float64Array: async (a) => {
@@ -2302,11 +2310,7 @@ var dot = mathTyped2("dot", {
2302
2310
  if (a.length !== b.length) {
2303
2311
  throw new Error(`Vector lengths must match: ${a.length} vs ${b.length}`);
2304
2312
  }
2305
- let total = 0;
2306
- for (let i = 0; i < a.length; i++) {
2307
- total += a[i] * b[i];
2308
- }
2309
- return total;
2313
+ return pairwiseDot(a, b);
2310
2314
  },
2311
2315
  // Parallel Float64Array dot product
2312
2316
  "Float64Array, Float64Array": async (a, b) => {
@@ -2669,7 +2673,7 @@ var typedTrigonometry = {
2669
2673
  };
2670
2674
 
2671
2675
  // src/typed/statistics.ts
2672
- import { mathTyped as mathTyped4 } from "@danielsimonjr/mathts-core";
2676
+ import { mathTyped as mathTyped4, neumaierCumsum } from "@danielsimonjr/mathts-core";
2673
2677
  import { computePool as computePool3 } from "@danielsimonjr/mathts-parallel";
2674
2678
  function toFloat64Array(arr7) {
2675
2679
  return new Float64Array(arr7);
@@ -3023,24 +3027,16 @@ var parallelStatMAD = mathTyped4("parallelStatMAD", {
3023
3027
  }
3024
3028
  });
3025
3029
  var parallelStatCumsum = mathTyped4("parallelStatCumsum", {
3026
- // Float64Array
3030
+ // Float64Array — Neumaier-compensated prefix scan (exact where np.cumsum drifts O(n)·ε).
3027
3031
  Float64Array: (data) => {
3028
3032
  const result = new Float64Array(data.length);
3029
- let sum3 = 0;
3030
- for (let i = 0; i < data.length; i++) {
3031
- sum3 += data[i];
3032
- result[i] = sum3;
3033
- }
3033
+ neumaierCumsum(data, result);
3034
3034
  return result;
3035
3035
  },
3036
3036
  // Number array
3037
3037
  Array: (arr7) => {
3038
- const result = [];
3039
- let sum3 = 0;
3040
- for (let i = 0; i < arr7.length; i++) {
3041
- sum3 += arr7[i];
3042
- result.push(sum3);
3043
- }
3038
+ const result = new Array(arr7.length);
3039
+ neumaierCumsum(arr7, result);
3044
3040
  return result;
3045
3041
  }
3046
3042
  });
@@ -16247,7 +16243,7 @@ var pinv = mathTyped13("pinv", {
16247
16243
  var cond = mathTyped13("cond", {
16248
16244
  Array: (A) => matrixCond(A)
16249
16245
  });
16250
- var norm2 = mathTyped13("norm2", {
16246
+ var norm22 = mathTyped13("norm2", {
16251
16247
  Array: (A) => matrixNorm2(A)
16252
16248
  });
16253
16249
  var normFro = mathTyped13("normFro", {
@@ -21182,6 +21178,13 @@ var createUnaryPlus = /* @__PURE__ */ factory(
21182
21178
  );
21183
21179
 
21184
21180
  // src/matrix/dot.ts
21181
+ import { pairwiseDot as pairwiseDot2 } from "@danielsimonjr/mathts-core";
21182
+ function _isFlatNumbers(arr7) {
21183
+ for (let i = 0; i < arr7.length; i++) {
21184
+ if (typeof arr7[i] !== "number") return false;
21185
+ }
21186
+ return true;
21187
+ }
21185
21188
  var name72 = "dot";
21186
21189
  var dependencies72 = ["typed", "addScalar", "multiplyScalar", "conj", "size"];
21187
21190
  var createDot = /* @__PURE__ */ factory(
@@ -21234,6 +21237,9 @@ var createDot = /* @__PURE__ */ factory(
21234
21237
  add2 = typed3.find(addScalar2, [dt, dt]);
21235
21238
  mul = typed3.find(multiplyScalar2, [dt, dt]);
21236
21239
  }
21240
+ if (!aIsColumn && !bIsColumn && add2 === addScalar2 && mul === multiplyScalar2 && _isFlatNumbers(adata) && _isFlatNumbers(bdata)) {
21241
+ return pairwiseDot2(adata, bdata);
21242
+ }
21237
21243
  if (!aIsColumn && !bIsColumn) {
21238
21244
  let c = mul(conj3(adata[0]), bdata[0]);
21239
21245
  for (let i = 1; i < N; i++) {
@@ -26235,7 +26241,7 @@ var createZpk2tf = /* @__PURE__ */ factory(
26235
26241
  );
26236
26242
 
26237
26243
  // src/statistics/cumsum.ts
26238
- var WASM_CUMSUM_THRESHOLD = 100;
26244
+ import { neumaierCumsum as neumaierCumsum2 } from "@danielsimonjr/mathts-core";
26239
26245
  function isFlatNumberArray2(arr7) {
26240
26246
  for (let i = 0; i < arr7.length; i++) {
26241
26247
  if (typeof arr7[i] !== "number") {
@@ -26283,24 +26289,10 @@ var createCumSum = /* @__PURE__ */ factory(
26283
26289
  if (array.length === 0) {
26284
26290
  return [];
26285
26291
  }
26286
- if (array.length >= WASM_CUMSUM_THRESHOLD && isFlatNumberArray2(array)) {
26287
- const wasm = wasmLoader.getModule();
26288
- if (wasm) {
26289
- try {
26290
- const alloc = wasmLoader.allocateFloat64Array(array);
26291
- try {
26292
- wasm.statsCumsum(alloc.ptr, array.length);
26293
- const result = new Array(array.length);
26294
- for (let i = 0; i < array.length; i++) {
26295
- result[i] = alloc.array[i];
26296
- }
26297
- return result;
26298
- } finally {
26299
- wasmLoader.free(alloc.ptr);
26300
- }
26301
- } catch {
26302
- }
26303
- }
26292
+ if (isFlatNumberArray2(array)) {
26293
+ const result = new Array(array.length);
26294
+ neumaierCumsum2(array, result);
26295
+ return result;
26304
26296
  }
26305
26297
  const sums = [unaryPlus2(array[0])];
26306
26298
  for (let i = 1; i < array.length; ++i) {
@@ -26348,7 +26340,7 @@ var createCumSum = /* @__PURE__ */ factory(
26348
26340
  );
26349
26341
 
26350
26342
  // src/statistics/sum.ts
26351
- var WASM_SUM_THRESHOLD = 100;
26343
+ import { pairwiseSum as pairwiseSum2 } from "@danielsimonjr/mathts-core";
26352
26344
  function isFlatNumberArray3(arr7) {
26353
26345
  for (let i = 0; i < arr7.length; i++) {
26354
26346
  if (typeof arr7[i] !== "number") {
@@ -26381,21 +26373,8 @@ var createSum = /* @__PURE__ */ factory(
26381
26373
  }
26382
26374
  });
26383
26375
  function _sum(array) {
26384
- if (Array.isArray(array) && array.length >= WASM_SUM_THRESHOLD) {
26385
- if (isFlatNumberArray3(array)) {
26386
- const wasm = wasmLoader.getModule();
26387
- if (wasm) {
26388
- try {
26389
- const alloc = wasmLoader.allocateFloat64Array(array);
26390
- try {
26391
- return wasm.statsSum(alloc.ptr, array.length);
26392
- } finally {
26393
- wasmLoader.free(alloc.ptr);
26394
- }
26395
- } catch {
26396
- }
26397
- }
26398
- }
26376
+ if (Array.isArray(array) && isFlatNumberArray3(array)) {
26377
+ return pairwiseSum2(array);
26399
26378
  }
26400
26379
  let sum3;
26401
26380
  deepForEach2(array, function(value) {
@@ -30384,7 +30363,7 @@ var createHypot = /* @__PURE__ */ factory(
30384
30363
  );
30385
30364
 
30386
30365
  // src/geometry/distance.ts
30387
- var WASM_DISTANCE_THRESHOLD = 4;
30366
+ import { scaledDistance } from "@danielsimonjr/mathts-core";
30388
30367
  var name181 = "distance";
30389
30368
  var dependencies181 = [
30390
30369
  "typed",
@@ -30669,10 +30648,14 @@ var createDistance = /* @__PURE__ */ factory(
30669
30648
  }
30670
30649
  function _euclideanDistance(x, y) {
30671
30650
  const vectorSize = x.length;
30672
- if (vectorSize >= WASM_DISTANCE_THRESHOLD) {
30673
- const wasmResult = _tryWasmDistanceND(x, y, vectorSize);
30674
- if (wasmResult !== null) return wasmResult;
30651
+ let allNumbers = true;
30652
+ for (let i = 0; i < vectorSize; i++) {
30653
+ if (typeof x[i] !== "number" || typeof y[i] !== "number") {
30654
+ allNumbers = false;
30655
+ break;
30656
+ }
30675
30657
  }
30658
+ if (allNumbers) return scaledDistance(x, y);
30676
30659
  let result = 0;
30677
30660
  for (let i = 0; i < vectorSize; i++) {
30678
30661
  const diff2 = subtractScalar2(x[i], y[i]);
@@ -30680,21 +30663,6 @@ var createDistance = /* @__PURE__ */ factory(
30680
30663
  }
30681
30664
  return sqrt2(result);
30682
30665
  }
30683
- function _tryWasmDistanceND(x, y, n) {
30684
- const wasm = wasmLoader.getModule();
30685
- if (!wasm) return null;
30686
- for (let i = 0; i < n; i++) {
30687
- if (typeof x[i] !== "number" || typeof y[i] !== "number") return null;
30688
- }
30689
- const p1Alloc = wasmLoader.allocateFloat64Array(x);
30690
- const p2Alloc = wasmLoader.allocateFloat64Array(y);
30691
- try {
30692
- return wasm.distanceND(p1Alloc.ptr, p2Alloc.ptr, n);
30693
- } finally {
30694
- wasmLoader.free(p1Alloc.ptr);
30695
- wasmLoader.free(p2Alloc.ptr);
30696
- }
30697
- }
30698
30666
  function _distancePairwise(a) {
30699
30667
  const wasmResult = _tryWasmPairwise(a);
30700
30668
  if (wasmResult !== null) return wasmResult;
@@ -39726,6 +39694,7 @@ var createDerivative = /* @__PURE__ */ factory(
39726
39694
  );
39727
39695
 
39728
39696
  // src/arithmetic/norm.ts
39697
+ import { norm2 as norm23 } from "@danielsimonjr/mathts-core";
39729
39698
  var WASM_NORM_THRESHOLD = 100;
39730
39699
  var name245 = "norm";
39731
39700
  var dependencies245 = [
@@ -39922,6 +39891,12 @@ var createNorm = /* @__PURE__ */ factory(
39922
39891
  throw new Error("Unsupported parameter value " + p);
39923
39892
  }
39924
39893
  function _norm(x, p) {
39894
+ if ((p === 2 || p === "fro") && x.size().length === 1) {
39895
+ const v = x.valueOf();
39896
+ if (v.every((e) => typeof e === "number")) {
39897
+ return norm23(v);
39898
+ }
39899
+ }
39925
39900
  const sizeX = x.size();
39926
39901
  if (sizeX.length === 1) {
39927
39902
  return _vectorNorm(x, p);
@@ -44854,7 +44829,7 @@ function levenbergMarquardt(residual, x0, opts = {}) {
44854
44829
  let x = Array.from(x0);
44855
44830
  let lambda = 1e-3;
44856
44831
  const h = 1e-7;
44857
- const norm22 = (v) => v.reduce((s, c) => s + c * c, 0);
44832
+ const norm24 = (v) => v.reduce((s, c) => s + c * c, 0);
44858
44833
  const jacobian2 = (xc, r0) => {
44859
44834
  const m = r0.length;
44860
44835
  const J = Array.from({ length: m }, () => new Array(n).fill(0));
@@ -44867,7 +44842,7 @@ function levenbergMarquardt(residual, x0, opts = {}) {
44867
44842
  return J;
44868
44843
  };
44869
44844
  let r = residual(x);
44870
- let cost = norm22(r);
44845
+ let cost = norm24(r);
44871
44846
  let iter = 0;
44872
44847
  for (; iter < maxIter; iter++) {
44873
44848
  const J = jacobian2(x, r);
@@ -44898,7 +44873,7 @@ function levenbergMarquardt(residual, x0, opts = {}) {
44898
44873
  }
44899
44874
  const xNew = x.map((v, i) => v + delta[i]);
44900
44875
  const rNew = residual(xNew);
44901
- const costNew = norm22(rNew);
44876
+ const costNew = norm24(rNew);
44902
44877
  if (costNew < cost) {
44903
44878
  x = xNew;
44904
44879
  r = rNew;
@@ -45661,6 +45636,7 @@ export {
45661
45636
  fresnelC,
45662
45637
  fresnelS,
45663
45638
  friedmanTest,
45639
+ fsum,
45664
45640
  fullSimplify,
45665
45641
  functionExpand,
45666
45642
  fuseUnaryChain,
@@ -45882,7 +45858,7 @@ export {
45882
45858
  nodeOperations,
45883
45859
  noncentralChi2PDF,
45884
45860
  norm,
45885
- norm2,
45861
+ norm22 as norm2,
45886
45862
  normFro,
45887
45863
  normalCDF,
45888
45864
  normalDist,
@@ -1 +1 @@
1
- {"version":3,"file":"dot.d.ts","sourceRoot":"","sources":["../../src/matrix/dot.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AA8B/D,UAAU,YAAY;IACpB,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;IACzB,cAAc,EAAE,aAAa,CAAC;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;CACrB;AAKD,eAAO,MAAM,SAAS,sEAmMrB,CAAC"}
1
+ {"version":3,"file":"dot.d.ts","sourceRoot":"","sources":["../../src/matrix/dot.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAsC/D,UAAU,YAAY;IACpB,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;IACzB,cAAc,EAAE,aAAa,CAAC;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;CACrB;AAKD,eAAO,MAAM,SAAS,sEAiNrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cumsum.d.ts","sourceRoot":"","sources":["../../src/statistics/cumsum.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAwB/D,UAAU,kBAAkB;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,aAAa,CAAC;IACnB,SAAS,EAAE,aAAa,CAAC;CAC1B;AAKD,eAAO,MAAM,YAAY,4EAgLxB,CAAC"}
1
+ {"version":3,"file":"cumsum.d.ts","sourceRoot":"","sources":["../../src/statistics/cumsum.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAqB/D,UAAU,kBAAkB;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,aAAa,CAAC;IACnB,SAAS,EAAE,aAAa,CAAC;CAC1B;AAKD,eAAO,MAAM,YAAY,4EAiKxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sum.d.ts","sourceRoot":"","sources":["../../src/statistics/sum.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AA2BvD,UAAU,eAAe;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,EAAE,aAAa,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;IACvB,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CACnD;AAKD,eAAO,MAAM,SAAS,yEAmHrB,CAAC"}
1
+ {"version":3,"file":"sum.d.ts","sourceRoot":"","sources":["../../src/statistics/sum.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AA0BvD,UAAU,eAAe;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,EAAE,aAAa,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;IACvB,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CACnD;AAKD,eAAO,MAAM,SAAS,yEAmHrB,CAAC"}
@@ -186,6 +186,20 @@ export declare const max: import("typed-function").TypedFunction;
186
186
  /**
187
187
  * Sum with parallel array support
188
188
  */
189
+ /**
190
+ * Exactly-rounded sum — the equivalent of Python's `math.fsum` / NumPy's `math.fsum` idiom.
191
+ *
192
+ * `sum` uses pairwise summation, which is accurate to ~machine epsilon and free. But pairwise
193
+ * cannot recover a value that has already been annihilated by catastrophic cancellation:
194
+ *
195
+ * sum([1e16, 1, -1e16]) -> 0 (so does np.sum — the 1 is lost the moment it meets 1e16)
196
+ * fsum([1e16, 1, -1e16]) -> 1 (exact)
197
+ *
198
+ * Neumaier compensation tracks the low-order bits each addition discards and folds them back in.
199
+ * ~2-4x slower than `sum`, so it is opt-in. Reach for it when the result is a small difference of
200
+ * large terms: conservation checks, residuals, long-running accumulators.
201
+ */
202
+ export declare const fsum: import("typed-function").TypedFunction;
189
203
  export declare const sum: import("typed-function").TypedFunction;
190
204
  /**
191
205
  * Mean with parallel array support
@@ -1 +1 @@
1
- {"version":3,"file":"arithmetic.d.ts","sourceRoot":"","sources":["../../src/typed/arithmetic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arithmetic.d.ts","sourceRoot":"","sources":["../../src/typed/arithmetic.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"statistics.d.ts","sourceRoot":"","sources":["../../src/typed/statistics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,0CAA0C;AAC1C,KAAK,GAAG,GAAG,MAAM,CAAC;AAElB,4BAA4B;AAC5B,KAAK,GAAG,GAAG,MAAM,CAAC;AAMlB;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC;AAiBtE;;GAEG;AACH,eAAO,MAAM,eAAe,wCAoB1B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,gBAAgB,wCAqB3B,CAAC;AAMH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,wCA2D/B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,eAAe,wCAgC1B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,eAAe,wCAuB1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,wCAuB1B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB,wCAe7B,CAAC;AAMH;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,wCAgC7B,CAAC;AAMH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,wCA2B3B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,gBAAgB,wCA8B3B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,gBAAgB,wCA4D3B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,oBAAoB,wCAiB/B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,gBAAgB,wCAgC3B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,eAAe,wCAsB1B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,kBAAkB,wCAsB7B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,oBAAoB,wCAgC/B,CAAC;AAMH;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,CAGtE;AAMD;;GAEG;AACH,eAAO,MAAM,qBAAqB,wCAsBhC,CAAC;AAMH;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,CAMtD;AA8CD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,CAc/C;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,MAAM,EAAE,CAWzD;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,MAAM,EAAE,CAWzD;AAMD;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;CAuB3B,CAAC;AAEF;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1D;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEzD"}
1
+ {"version":3,"file":"statistics.d.ts","sourceRoot":"","sources":["../../src/typed/statistics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,0CAA0C;AAC1C,KAAK,GAAG,GAAG,MAAM,CAAC;AAElB,4BAA4B;AAC5B,KAAK,GAAG,GAAG,MAAM,CAAC;AAMlB;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC;AAiBtE;;GAEG;AACH,eAAO,MAAM,eAAe,wCAoB1B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,gBAAgB,wCAqB3B,CAAC;AAMH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,wCA2D/B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,eAAe,wCAgC1B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,eAAe,wCAuB1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,wCAuB1B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB,wCAe7B,CAAC;AAMH;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,wCAgC7B,CAAC;AAMH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,wCA2B3B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,gBAAgB,wCA8B3B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,gBAAgB,wCA4D3B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,oBAAoB,wCAiB/B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,gBAAgB,wCAgC3B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,eAAe,wCAsB1B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,kBAAkB,wCAc7B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,oBAAoB,wCAgC/B,CAAC;AAMH;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,CAGtE;AAMD;;GAEG;AACH,eAAO,MAAM,qBAAqB,wCAsBhC,CAAC;AAMH;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,CAMtD;AA8CD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,CAc/C;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,MAAM,EAAE,CAWzD;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,MAAM,EAAE,CAWzD;AAMD;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;CAuB3B,CAAC;AAEF;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1D;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEzD"}
package/package.json CHANGED
@@ -1,76 +1,76 @@
1
- {
2
- "name": "@danielsimonjr/mathts-functions",
3
- "version": "0.21.0",
4
- "description": "Mathematical functions for MathTS - arithmetic, algebra, trigonometry, statistics, and more",
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
- "types",
20
- "README.md"
21
- ],
22
- "scripts": {
23
- "build": "tsup src/index.ts --format esm --clean && tsc -p tsconfig.dts.json && node scripts/copy-wasm.mjs",
24
- "dev": "tsup src/index.ts --format esm --dts --watch",
25
- "test": "vitest run",
26
- "test:diff": "node tests/diff-special.test.mjs && node tests/diff-elementwise.test.mjs && node tests/diff-fusion.test.mjs",
27
- "golden:gen": "python -X utf8 tests/golden/gen_special_goldens.py",
28
- "test:watch": "vitest",
29
- "test:coverage": "vitest run --coverage",
30
- "typecheck": "tsc --noEmit",
31
- "lint": "eslint src --ext .ts",
32
- "lint:fix": "eslint src --ext .ts --fix",
33
- "clean": "rm -rf dist",
34
- "build:prod": "tsup src/index.ts --format esm --clean --minify --treeshake"
35
- },
36
- "dependencies": {
37
- "@danielsimonjr/mathts-core": "^0.6.0",
38
- "@danielsimonjr/mathts-expression": "^0.6.0",
39
- "@danielsimonjr/mathts-gpu": "^0.2.0",
40
- "@danielsimonjr/mathts-matrix": "^0.4.1",
41
- "@danielsimonjr/mathts-parallel": "^0.3.4",
42
- "bignumber.js": "^9.1.2",
43
- "complex.js": "^2.2.5",
44
- "decimal.js": "^10.4.3",
45
- "escape-latex": "^1.2.0",
46
- "fraction.js": "^5.2.1",
47
- "javascript-natural-sort": "^0.7.1",
48
- "seedrandom": "^3.0.5",
49
- "tiny-emitter": "^2.1.0",
50
- "typed-function": "github:danielsimonjr/typed-function"
51
- },
52
- "devDependencies": {
53
- "@types/node": "^25.5.2",
54
- "@webgpu/types": "^0.1.67",
55
- "tsup": "^8.0.0",
56
- "typescript": "^5.3.0",
57
- "vitest": "^4.1.5"
58
- },
59
- "publishConfig": {
60
- "access": "public"
61
- },
62
- "repository": {
63
- "type": "git",
64
- "url": "https://github.com/danielsimonjr/mathts",
65
- "directory": "functions"
66
- },
67
- "keywords": [
68
- "math",
69
- "typescript",
70
- "functions",
71
- "arithmetic",
72
- "algebra",
73
- "trigonometry",
74
- "statistics"
75
- ]
76
- }
1
+ {
2
+ "name": "@danielsimonjr/mathts-functions",
3
+ "version": "0.23.0",
4
+ "description": "Mathematical functions for MathTS - arithmetic, algebra, trigonometry, statistics, and more",
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
+ "types",
20
+ "README.md"
21
+ ],
22
+ "scripts": {
23
+ "build": "tsup src/index.ts --format esm --clean && tsc -p tsconfig.dts.json && node scripts/copy-wasm.mjs",
24
+ "dev": "tsup src/index.ts --format esm --dts --watch",
25
+ "test": "vitest run",
26
+ "test:diff": "node tests/diff-special.test.mjs && node tests/diff-elementwise.test.mjs && node tests/diff-fusion.test.mjs",
27
+ "golden:gen": "python -X utf8 tests/golden/gen_special_goldens.py",
28
+ "test:watch": "vitest",
29
+ "test:coverage": "vitest run --coverage",
30
+ "typecheck": "tsc --noEmit",
31
+ "lint": "eslint src --ext .ts",
32
+ "lint:fix": "eslint src --ext .ts --fix",
33
+ "clean": "rm -rf dist",
34
+ "build:prod": "tsup src/index.ts --format esm --clean --minify --treeshake"
35
+ },
36
+ "dependencies": {
37
+ "@danielsimonjr/mathts-core": "^0.8.0",
38
+ "@danielsimonjr/mathts-expression": "^0.6.2",
39
+ "@danielsimonjr/mathts-gpu": "^0.2.0",
40
+ "@danielsimonjr/mathts-matrix": "^0.4.3",
41
+ "@danielsimonjr/mathts-parallel": "^0.5.0",
42
+ "bignumber.js": "^9.1.2",
43
+ "complex.js": "^2.2.5",
44
+ "decimal.js": "^10.4.3",
45
+ "escape-latex": "^1.2.0",
46
+ "fraction.js": "^5.2.1",
47
+ "javascript-natural-sort": "^0.7.1",
48
+ "seedrandom": "^3.0.5",
49
+ "tiny-emitter": "^2.1.0",
50
+ "typed-function": "github:danielsimonjr/typed-function"
51
+ },
52
+ "devDependencies": {
53
+ "@types/node": "^25.5.2",
54
+ "@webgpu/types": "^0.1.67",
55
+ "tsup": "^8.0.0",
56
+ "typescript": "^5.3.0",
57
+ "vitest": "^4.1.5"
58
+ },
59
+ "publishConfig": {
60
+ "access": "public"
61
+ },
62
+ "repository": {
63
+ "type": "git",
64
+ "url": "https://github.com/danielsimonjr/mathts",
65
+ "directory": "functions"
66
+ },
67
+ "keywords": [
68
+ "math",
69
+ "typescript",
70
+ "functions",
71
+ "arithmetic",
72
+ "algebra",
73
+ "trigonometry",
74
+ "statistics"
75
+ ]
76
+ }