@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.
- package/dist/arithmetic/norm.d.ts.map +1 -1
- package/dist/geometry/distance.d.ts.map +1 -1
- package/dist/index.js +75 -99
- package/dist/matrix/dot.d.ts.map +1 -1
- package/dist/statistics/cumsum.d.ts.map +1 -1
- package/dist/statistics/sum.d.ts.map +1 -1
- package/dist/typed/arithmetic.d.ts +14 -0
- package/dist/typed/arithmetic.d.ts.map +1 -1
- package/dist/typed/statistics.d.ts.map +1 -1
- package/package.json +76 -76
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"norm.d.ts","sourceRoot":"","sources":["../../src/arithmetic/norm.ts"],"names":[],"mappings":"
|
|
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":"
|
|
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: () =>
|
|
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
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
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
|
-
|
|
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
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
|
|
2225
|
-
|
|
2226
|
-
//
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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 (
|
|
26287
|
-
const
|
|
26288
|
-
|
|
26289
|
-
|
|
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
|
-
|
|
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
|
|
26385
|
-
|
|
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
|
-
|
|
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
|
-
|
|
30673
|
-
|
|
30674
|
-
if (
|
|
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
|
|
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 =
|
|
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 =
|
|
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,
|
package/dist/matrix/dot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dot.d.ts","sourceRoot":"","sources":["../../src/matrix/dot.ts"],"names":[],"mappings":"
|
|
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;
|
|
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;
|
|
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":"AAAA;;;;;;;;;;;;GAYG;
|
|
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,
|
|
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.
|
|
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.
|
|
38
|
-
"@danielsimonjr/mathts-expression": "^0.6.
|
|
39
|
-
"@danielsimonjr/mathts-gpu": "^0.2.0",
|
|
40
|
-
"@danielsimonjr/mathts-matrix": "^0.4.
|
|
41
|
-
"@danielsimonjr/mathts-parallel": "^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
|
-
}
|
|
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
|
+
}
|