@danielsimonjr/mathts-functions 0.67.0 → 0.68.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/README.md +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +146 -27
- package/dist/scalar-eval.d.ts +37 -0
- package/dist/scalar-eval.d.ts.map +1 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -14,6 +14,7 @@ npm install @danielsimonjr/mathts-functions
|
|
|
14
14
|
|
|
15
15
|
- Hundreds of typed functions (`add`, `sin`, `svd`-aware ops, `parallelFFT`, …).
|
|
16
16
|
- A wired `parse` / `evaluate` against the full activated math scope.
|
|
17
|
+
- `scalar` / `evaluateScalar` — evaluate a typed scalar tree (`+ - * / ^`, `ln` → natural `log`, `log` → `log10`, and the other scalar calls). A formula string is rejected.
|
|
17
18
|
- Per-domain focused entry points are also published: `@danielsimonjr/mathts-{arithmetic,trigonometry,statistics,signal}`.
|
|
18
19
|
|
|
19
20
|
## License
|
package/dist/index.d.ts
CHANGED
|
@@ -16,6 +16,8 @@ export { loadWasm, isWasmLoaded } from './wasm/WasmLoader.js';
|
|
|
16
16
|
export { to, toBest } from './typed/unit.js';
|
|
17
17
|
export { evaluate, compileExpr, parse, parser, physicsScope, reviver, replacer, } from './factories/evaluate.js';
|
|
18
18
|
export type { PhysicsEvaluateOptions } from './factories/evaluate.js';
|
|
19
|
+
export { evaluateScalar, scalar, ScalarEvalError } from './scalar-eval.js';
|
|
20
|
+
export type { ScalarScope } from './scalar-eval.js';
|
|
19
21
|
export { propagateUncertainty, type UncertaintyExpression, type UncertaintyPropagationOptions, type UncertaintyPropagationResult, } from './numeric/propagate-uncertainty.js';
|
|
20
22
|
export { help } from './help.js';
|
|
21
23
|
export { continuedFraction, eulerNumbers, stirlingS1, discreteLog, primitiveRoot, multiplicativeOrder, kroneckerSymbol, permutationsGen, combinationsGen, } from './numbertheory/extra.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,cAAc,kBAAkB,CAAC;AAKjC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAIzC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAO9D,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EACL,QAAQ,EACR,WAAW,EACX,KAAK,EACL,MAAM,EACN,YAAY,EACZ,OAAO,EACP,QAAQ,GACT,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1559,12 +1559,12 @@ var multiply = mathTyped2("multiply", {
|
|
|
1559
1559
|
return result.result;
|
|
1560
1560
|
},
|
|
1561
1561
|
// Parallel scalar multiplication (scale)
|
|
1562
|
-
"Float64Array, number": async (a,
|
|
1563
|
-
const result = await computePool.scale(a,
|
|
1562
|
+
"Float64Array, number": async (a, scalar2) => {
|
|
1563
|
+
const result = await computePool.scale(a, scalar2);
|
|
1564
1564
|
return result.result;
|
|
1565
1565
|
},
|
|
1566
|
-
"number, Float64Array": async (
|
|
1567
|
-
const result = await computePool.scale(a,
|
|
1566
|
+
"number, Float64Array": async (scalar2, a) => {
|
|
1567
|
+
const result = await computePool.scale(a, scalar2);
|
|
1568
1568
|
return result.result;
|
|
1569
1569
|
},
|
|
1570
1570
|
// Scalar × collection = element-wise scaling (mathjs parity). Matrix × matrix
|
|
@@ -5981,13 +5981,13 @@ ${deps.map((d) => d.toString()).join("\n")}
|
|
|
5981
5981
|
return (${body});
|
|
5982
5982
|
})()`;
|
|
5983
5983
|
}
|
|
5984
|
-
async function mapArray(x,
|
|
5984
|
+
async function mapArray(x, scalar2, buildKernel) {
|
|
5985
5985
|
if (computePool6.shouldParallelize(x.length)) {
|
|
5986
5986
|
const r = await computePool6.applyKernel(x, buildKernel());
|
|
5987
5987
|
return r.result;
|
|
5988
5988
|
}
|
|
5989
5989
|
const out = new Float64Array(x.length);
|
|
5990
|
-
for (let i = 0; i < x.length; i++) out[i] =
|
|
5990
|
+
for (let i = 0; i < x.length; i++) out[i] = scalar2(x[i]);
|
|
5991
5991
|
return out;
|
|
5992
5992
|
}
|
|
5993
5993
|
|
|
@@ -7710,7 +7710,7 @@ var WGSL_REDUCE = {
|
|
|
7710
7710
|
min: { identity: "pos_inf()", combine: "min(a, b)" }
|
|
7711
7711
|
};
|
|
7712
7712
|
function wgslForReduce(r) {
|
|
7713
|
-
const { identity: identity2, combine:
|
|
7713
|
+
const { identity: identity2, combine: combine3 } = WGSL_REDUCE[r];
|
|
7714
7714
|
return `
|
|
7715
7715
|
@group(0) @binding(0) var<storage, read> inp: array<f32>;
|
|
7716
7716
|
@group(0) @binding(1) var<storage, read_write> partials: array<f32>;
|
|
@@ -7722,7 +7722,7 @@ function wgslForReduce(r) {
|
|
|
7722
7722
|
var<workgroup> sdata: array<f32, ${WORKGROUP_SIZE2}>;
|
|
7723
7723
|
|
|
7724
7724
|
fn identity() -> f32 { return ${identity2}; }
|
|
7725
|
-
fn combine(a: f32, b: f32) -> f32 { return ${
|
|
7725
|
+
fn combine(a: f32, b: f32) -> f32 { return ${combine3}; }
|
|
7726
7726
|
|
|
7727
7727
|
@compute @workgroup_size(${WORKGROUP_SIZE2})
|
|
7728
7728
|
fn main(@builtin(global_invocation_id) gid: vec3<u32>,
|
|
@@ -20355,9 +20355,9 @@ async function gpuTranspose(a) {
|
|
|
20355
20355
|
await ensureGpu();
|
|
20356
20356
|
return gpuMatrixBackend.transposeAsync(a);
|
|
20357
20357
|
}
|
|
20358
|
-
async function gpuScale(a,
|
|
20358
|
+
async function gpuScale(a, scalar2) {
|
|
20359
20359
|
await ensureGpu();
|
|
20360
|
-
return gpuMatrixBackend.scaleAsync(a,
|
|
20360
|
+
return gpuMatrixBackend.scaleAsync(a, scalar2);
|
|
20361
20361
|
}
|
|
20362
20362
|
|
|
20363
20363
|
// src/typed/index.ts
|
|
@@ -28093,11 +28093,11 @@ var createResize = /* @__PURE__ */ factory(
|
|
|
28093
28093
|
}
|
|
28094
28094
|
const asMatrix = Array.isArray(x) ? false : config2.matrix !== "Array";
|
|
28095
28095
|
if (sz.length === 0) {
|
|
28096
|
-
let
|
|
28097
|
-
while (Array.isArray(
|
|
28098
|
-
|
|
28096
|
+
let scalar2 = x;
|
|
28097
|
+
while (Array.isArray(scalar2)) {
|
|
28098
|
+
scalar2 = scalar2[0];
|
|
28099
28099
|
}
|
|
28100
|
-
return clone(
|
|
28100
|
+
return clone(scalar2);
|
|
28101
28101
|
} else {
|
|
28102
28102
|
let arr10 = !Array.isArray(x) ? [x] : x;
|
|
28103
28103
|
arr10 = clone(arr10);
|
|
@@ -28813,36 +28813,36 @@ var createMatrixAlgorithmSuite = /* @__PURE__ */ factory(
|
|
|
28813
28813
|
);
|
|
28814
28814
|
}
|
|
28815
28815
|
}
|
|
28816
|
-
const
|
|
28816
|
+
const scalar2 = options.scalar || "any";
|
|
28817
28817
|
const Ds = options.Ds || options.Ss;
|
|
28818
28818
|
if (Ds) {
|
|
28819
28819
|
if (elop) {
|
|
28820
|
-
matrixSignatures["DenseMatrix," +
|
|
28821
|
-
matrixSignatures[
|
|
28822
|
-
matrixSignatures["Array," +
|
|
28820
|
+
matrixSignatures["DenseMatrix," + scalar2] = (x, y) => matAlgo14xDs(x, y, elop, false);
|
|
28821
|
+
matrixSignatures[scalar2 + ", DenseMatrix"] = (x, y) => matAlgo14xDs(y, x, elop, true);
|
|
28822
|
+
matrixSignatures["Array," + scalar2] = (x, y) => matAlgo14xDs(
|
|
28823
28823
|
matrix2(x),
|
|
28824
28824
|
y,
|
|
28825
28825
|
elop,
|
|
28826
28826
|
false
|
|
28827
28827
|
).valueOf();
|
|
28828
|
-
matrixSignatures[
|
|
28828
|
+
matrixSignatures[scalar2 + ", Array"] = (x, y) => matAlgo14xDs(
|
|
28829
28829
|
matrix2(y),
|
|
28830
28830
|
x,
|
|
28831
28831
|
elop,
|
|
28832
28832
|
true
|
|
28833
28833
|
).valueOf();
|
|
28834
28834
|
} else {
|
|
28835
|
-
matrixSignatures["DenseMatrix," +
|
|
28835
|
+
matrixSignatures["DenseMatrix," + scalar2] = typed3.referToSelf(
|
|
28836
28836
|
(self) => (x, y) => {
|
|
28837
28837
|
return matAlgo14xDs(x, y, self, false);
|
|
28838
28838
|
}
|
|
28839
28839
|
);
|
|
28840
|
-
matrixSignatures[
|
|
28840
|
+
matrixSignatures[scalar2 + ", DenseMatrix"] = typed3.referToSelf(
|
|
28841
28841
|
(self) => (x, y) => {
|
|
28842
28842
|
return matAlgo14xDs(y, x, self, true);
|
|
28843
28843
|
}
|
|
28844
28844
|
);
|
|
28845
|
-
matrixSignatures["Array," +
|
|
28845
|
+
matrixSignatures["Array," + scalar2] = typed3.referToSelf(
|
|
28846
28846
|
(self) => (x, y) => {
|
|
28847
28847
|
return matAlgo14xDs(
|
|
28848
28848
|
matrix2(x),
|
|
@@ -28852,7 +28852,7 @@ var createMatrixAlgorithmSuite = /* @__PURE__ */ factory(
|
|
|
28852
28852
|
).valueOf();
|
|
28853
28853
|
}
|
|
28854
28854
|
);
|
|
28855
|
-
matrixSignatures[
|
|
28855
|
+
matrixSignatures[scalar2 + ", Array"] = typed3.referToSelf(
|
|
28856
28856
|
(self) => (x, y) => {
|
|
28857
28857
|
return matAlgo14xDs(
|
|
28858
28858
|
matrix2(y),
|
|
@@ -28867,21 +28867,21 @@ var createMatrixAlgorithmSuite = /* @__PURE__ */ factory(
|
|
|
28867
28867
|
const sS = options.sS !== void 0 ? options.sS : options.Ss;
|
|
28868
28868
|
if (elop) {
|
|
28869
28869
|
if (options.Ss) {
|
|
28870
|
-
matrixSignatures["SparseMatrix," +
|
|
28870
|
+
matrixSignatures["SparseMatrix," + scalar2] = (x, y) => options.Ss(x, y, elop, false);
|
|
28871
28871
|
}
|
|
28872
28872
|
if (sS) {
|
|
28873
|
-
matrixSignatures[
|
|
28873
|
+
matrixSignatures[scalar2 + ", SparseMatrix"] = (x, y) => sS(y, x, elop, true);
|
|
28874
28874
|
}
|
|
28875
28875
|
} else {
|
|
28876
28876
|
if (options.Ss) {
|
|
28877
|
-
matrixSignatures["SparseMatrix," +
|
|
28877
|
+
matrixSignatures["SparseMatrix," + scalar2] = typed3.referToSelf(
|
|
28878
28878
|
(self) => (x, y) => {
|
|
28879
28879
|
return options.Ss(x, y, self, false);
|
|
28880
28880
|
}
|
|
28881
28881
|
);
|
|
28882
28882
|
}
|
|
28883
28883
|
if (sS) {
|
|
28884
|
-
matrixSignatures[
|
|
28884
|
+
matrixSignatures[scalar2 + ", SparseMatrix"] = typed3.referToSelf(
|
|
28885
28885
|
(self) => (x, y) => {
|
|
28886
28886
|
return sS(y, x, self, true);
|
|
28887
28887
|
}
|
|
@@ -45459,6 +45459,122 @@ function config(options) {
|
|
|
45459
45459
|
return { ...shared };
|
|
45460
45460
|
}
|
|
45461
45461
|
|
|
45462
|
+
// src/scalar-eval.ts
|
|
45463
|
+
import {
|
|
45464
|
+
ScalarBuildError,
|
|
45465
|
+
createScalarBuilder
|
|
45466
|
+
} from "@danielsimonjr/mathts-expression";
|
|
45467
|
+
var scalar = createScalarBuilder();
|
|
45468
|
+
var ScalarEvalError = class extends Error {
|
|
45469
|
+
constructor(message) {
|
|
45470
|
+
super(message);
|
|
45471
|
+
this.name = "ScalarEvalError";
|
|
45472
|
+
}
|
|
45473
|
+
};
|
|
45474
|
+
var UNARY = {
|
|
45475
|
+
exp,
|
|
45476
|
+
log,
|
|
45477
|
+
log10,
|
|
45478
|
+
log2,
|
|
45479
|
+
sin,
|
|
45480
|
+
cos,
|
|
45481
|
+
tan,
|
|
45482
|
+
sinh,
|
|
45483
|
+
cosh,
|
|
45484
|
+
tanh,
|
|
45485
|
+
abs
|
|
45486
|
+
};
|
|
45487
|
+
var NUMERIC_LITERAL = /^[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?$/;
|
|
45488
|
+
function requireFinite(value, label) {
|
|
45489
|
+
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
45490
|
+
throw new ScalarEvalError(
|
|
45491
|
+
`evaluateScalar: '${label}' produced a non-finite value (${String(value)}).`
|
|
45492
|
+
);
|
|
45493
|
+
}
|
|
45494
|
+
return value;
|
|
45495
|
+
}
|
|
45496
|
+
function resolveSymbol(name254, scope) {
|
|
45497
|
+
if (Object.prototype.hasOwnProperty.call(scope, name254)) {
|
|
45498
|
+
const value = scope[name254];
|
|
45499
|
+
if (typeof value !== "number") {
|
|
45500
|
+
throw new ScalarEvalError(`evaluateScalar: scope['${name254}'] is not a number.`);
|
|
45501
|
+
}
|
|
45502
|
+
return value;
|
|
45503
|
+
}
|
|
45504
|
+
if (NUMERIC_LITERAL.test(name254)) {
|
|
45505
|
+
const literal = Number(name254);
|
|
45506
|
+
if (Number.isFinite(literal)) return literal;
|
|
45507
|
+
}
|
|
45508
|
+
throw new ScalarEvalError(
|
|
45509
|
+
`evaluateScalar: symbol '${name254}' has no value (not in scope, not a numeric literal).`
|
|
45510
|
+
);
|
|
45511
|
+
}
|
|
45512
|
+
function combine2(op, left, right) {
|
|
45513
|
+
switch (op) {
|
|
45514
|
+
case "+":
|
|
45515
|
+
return add(left, right);
|
|
45516
|
+
case "-":
|
|
45517
|
+
return subtract(left, right);
|
|
45518
|
+
case "*":
|
|
45519
|
+
return multiply(left, right);
|
|
45520
|
+
case "/":
|
|
45521
|
+
return divide(left, right);
|
|
45522
|
+
}
|
|
45523
|
+
}
|
|
45524
|
+
function evalOp(op, args, scope) {
|
|
45525
|
+
if (op === "^") {
|
|
45526
|
+
if (args.length !== 2) {
|
|
45527
|
+
throw new ScalarEvalError(`evaluateScalar: '^' needs exactly 2 args, got ${args.length}.`);
|
|
45528
|
+
}
|
|
45529
|
+
const base = evalNode(args[0], scope);
|
|
45530
|
+
const exponent = evalNode(args[1], scope);
|
|
45531
|
+
return requireFinite(pow(base, exponent), "^");
|
|
45532
|
+
}
|
|
45533
|
+
if (args.length === 0) return op === "*" || op === "/" ? 1 : 0;
|
|
45534
|
+
let acc = evalNode(args[0], scope);
|
|
45535
|
+
for (let i = 1; i < args.length; i++) {
|
|
45536
|
+
const right = evalNode(args[i], scope);
|
|
45537
|
+
acc = requireFinite(combine2(op, acc, right), op);
|
|
45538
|
+
}
|
|
45539
|
+
return requireFinite(acc, op);
|
|
45540
|
+
}
|
|
45541
|
+
function evalCall(fn, arg3) {
|
|
45542
|
+
const impl = UNARY[fn];
|
|
45543
|
+
if (impl === void 0) {
|
|
45544
|
+
throw new ScalarEvalError(`evaluateScalar: unknown scalar function '${String(fn)}'.`);
|
|
45545
|
+
}
|
|
45546
|
+
return requireFinite(impl(arg3), fn);
|
|
45547
|
+
}
|
|
45548
|
+
function evalNode(node, scope) {
|
|
45549
|
+
switch (node.kind) {
|
|
45550
|
+
case "number":
|
|
45551
|
+
return node.value;
|
|
45552
|
+
case "symbol":
|
|
45553
|
+
return resolveSymbol(node.name, scope);
|
|
45554
|
+
case "op":
|
|
45555
|
+
return evalOp(node.op, node.args, scope);
|
|
45556
|
+
case "call":
|
|
45557
|
+
return evalCall(node.fn, evalNode(node.arg, scope));
|
|
45558
|
+
}
|
|
45559
|
+
}
|
|
45560
|
+
function normalizeScope(scope) {
|
|
45561
|
+
if (scope === null || typeof scope !== "object" || Array.isArray(scope)) {
|
|
45562
|
+
throw new ScalarEvalError("evaluateScalar: scope must be an object of numbers.");
|
|
45563
|
+
}
|
|
45564
|
+
return scope;
|
|
45565
|
+
}
|
|
45566
|
+
function evaluateScalar(node, scope = {}) {
|
|
45567
|
+
const bound = normalizeScope(scope);
|
|
45568
|
+
let canonical;
|
|
45569
|
+
try {
|
|
45570
|
+
canonical = scalar.from(node);
|
|
45571
|
+
} catch (err) {
|
|
45572
|
+
if (err instanceof ScalarBuildError) throw new ScalarEvalError(err.message);
|
|
45573
|
+
throw err;
|
|
45574
|
+
}
|
|
45575
|
+
return evalNode(canonical, bound);
|
|
45576
|
+
}
|
|
45577
|
+
|
|
45462
45578
|
// src/numeric/propagate-uncertainty.ts
|
|
45463
45579
|
function asFiniteNumber(label, value) {
|
|
45464
45580
|
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
@@ -55740,6 +55856,7 @@ export {
|
|
|
55740
55856
|
GPU_MIN_ELEMENTS2 as GPU_MIN_ELEMENTS,
|
|
55741
55857
|
GPU_REDUCE_OPS,
|
|
55742
55858
|
Interval,
|
|
55859
|
+
ScalarEvalError,
|
|
55743
55860
|
WASM_INTERP_THRESHOLD,
|
|
55744
55861
|
abs,
|
|
55745
55862
|
acf,
|
|
@@ -56025,6 +56142,7 @@ export {
|
|
|
56025
56142
|
eulerNumbers,
|
|
56026
56143
|
eulerPhi,
|
|
56027
56144
|
evaluate,
|
|
56145
|
+
evaluateScalar,
|
|
56028
56146
|
eventDetection,
|
|
56029
56147
|
ewma,
|
|
56030
56148
|
exp,
|
|
@@ -56611,6 +56729,7 @@ export {
|
|
|
56611
56729
|
rydberg,
|
|
56612
56730
|
sackurTetrode,
|
|
56613
56731
|
savgol,
|
|
56732
|
+
scalar,
|
|
56614
56733
|
schur,
|
|
56615
56734
|
sec,
|
|
56616
56735
|
secant,
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Evaluate a scalar node with MathTS numeric functions.
|
|
3
|
+
*
|
|
4
|
+
* {@link scalar} is a {@link createScalarBuilder} instance. {@link evaluateScalar}
|
|
5
|
+
* normalizes a typed tree (builder nodes, or `symbol` / `op` / `transcendental`
|
|
6
|
+
* / `abs`) and evaluates it. A formula string is rejected.
|
|
7
|
+
*
|
|
8
|
+
* Symbol lookup is the caller scope, then a decimal literal spelling of the
|
|
9
|
+
* name (`'2'`, `'-1'`, `'1e-3'`). Names such as `pi`, `e`, `c`, and `6pi` are
|
|
10
|
+
* unresolved unless the scope supplies them.
|
|
11
|
+
*
|
|
12
|
+
* `+ - * /` fold left to right. An empty `*` or `/` is 1; an empty `+` or `-`
|
|
13
|
+
* is 0. A single-argument `+ - * /` returns that argument. `^` requires two
|
|
14
|
+
* arguments and calls MathTS `pow`. One-argument `-` does not negate; a
|
|
15
|
+
* unary minus is `(-1) * x`.
|
|
16
|
+
*
|
|
17
|
+
* A non-finite operator or call result throws {@link ScalarEvalError}. A bare
|
|
18
|
+
* symbol or number is returned as stored, including a non-finite value.
|
|
19
|
+
*
|
|
20
|
+
* @packageDocumentation
|
|
21
|
+
*/
|
|
22
|
+
/** Scope for {@link evaluateScalar}. Caller bindings win over literal names. */
|
|
23
|
+
export type ScalarScope = Readonly<Record<string, number>>;
|
|
24
|
+
/** The shared scalar builder. `ln` lowers to natural `log`; `log` lowers to `log10`. */
|
|
25
|
+
export declare const scalar: import("@danielsimonjr/mathts-expression").ScalarBuilder;
|
|
26
|
+
/** A scalar node could not be evaluated. */
|
|
27
|
+
export declare class ScalarEvalError extends Error {
|
|
28
|
+
constructor(message: string);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Evaluate `node` with MathTS scalar functions.
|
|
32
|
+
*
|
|
33
|
+
* `node` may be a builder node or a typed `symbol` / `op` / `transcendental` /
|
|
34
|
+
* `abs` tree. `scalar.from` normalizes it first.
|
|
35
|
+
*/
|
|
36
|
+
export declare function evaluateScalar(node: unknown, scope?: ScalarScope): number;
|
|
37
|
+
//# sourceMappingURL=scalar-eval.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scalar-eval.d.ts","sourceRoot":"","sources":["../src/scalar-eval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AA0BH,gFAAgF;AAChF,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAE3D,wFAAwF;AACxF,eAAO,MAAM,MAAM,0DAAwB,CAAC;AAE5C,4CAA4C;AAC5C,qBAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAwGD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,GAAE,WAAgB,GAAG,MAAM,CAU7E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@danielsimonjr/mathts-functions",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.68.0",
|
|
4
4
|
"description": "Mathematical functions for MathTS - arithmetic, algebra, trigonometry, statistics, and more",
|
|
5
5
|
"author": "Daniel Simon Jr.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@danielsimonjr/mathts-core": "^0.16.0",
|
|
38
|
-
"@danielsimonjr/mathts-expression": "^0.
|
|
38
|
+
"@danielsimonjr/mathts-expression": "^0.10.0",
|
|
39
39
|
"@danielsimonjr/mathts-gpu": "^0.2.1",
|
|
40
40
|
"@danielsimonjr/mathts-matrix": "^0.7.6",
|
|
41
41
|
"@danielsimonjr/mathts-parallel": "^0.6.8",
|