universal-physics-tensor 1.0.3 → 2.0.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 +118 -73
- package/dist/atlas/benchmark/hybrid-retrieval.d.ts +1 -0
- package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
- package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
- package/dist/atlas/chain-pipeline.d.ts +37 -0
- package/dist/atlas/chain-pipeline.d.ts.map +1 -1
- package/dist/atlas/chain-pipeline.js +95 -79
- package/dist/atlas/chain-pipeline.js.map +1 -1
- package/dist/atlas/composition-table.d.ts +5 -7
- package/dist/atlas/composition-table.d.ts.map +1 -1
- package/dist/atlas/composition-table.js +3 -5
- package/dist/atlas/composition-table.js.map +1 -1
- package/dist/atlas/proof-target.d.ts +28 -2
- package/dist/atlas/proof-target.d.ts.map +1 -1
- package/dist/atlas/proof-target.js +25 -16
- package/dist/atlas/proof-target.js.map +1 -1
- package/dist/atlas/regime.d.ts +2 -2
- package/dist/atlas/regime.d.ts.map +1 -1
- package/dist/atlas/regime.js +1 -1
- package/dist/atlas/regime.js.map +1 -1
- package/dist/atlas/types.d.ts +7 -7
- package/dist/atlas/types.d.ts.map +1 -1
- package/dist/bridges/be53-yang-mills-confrontation.d.ts +1 -1
- package/dist/bridges/be53-yang-mills-confrontation.d.ts.map +1 -1
- package/dist/canonical/normal-form.d.ts +2 -1
- package/dist/canonical/normal-form.d.ts.map +1 -1
- package/dist/canonical/normal-form.js +2 -1
- package/dist/canonical/normal-form.js.map +1 -1
- package/dist/cases/brownian-sphere.d.ts.map +1 -1
- package/dist/cases/brownian-sphere.js +1 -0
- package/dist/cases/brownian-sphere.js.map +1 -1
- package/dist/cli/args.d.ts +7 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/command.d.ts +13 -0
- package/dist/cli/command.d.ts.map +1 -1
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/commands/_atlas-route.d.ts +1 -1
- package/dist/cli/commands/atlas.d.ts.map +1 -1
- package/dist/cli/commands/atlas.js +28 -7
- package/dist/cli/commands/atlas.js.map +1 -1
- package/dist/cli/commands/audit.d.ts.map +1 -1
- package/dist/cli/commands/audit.js +7 -3
- package/dist/cli/commands/audit.js.map +1 -1
- package/dist/cli/commands/axes.d.ts.map +1 -1
- package/dist/cli/commands/axes.js +6 -2
- package/dist/cli/commands/axes.js.map +1 -1
- package/dist/cli/commands/candidates.d.ts.map +1 -1
- package/dist/cli/commands/candidates.js +7 -3
- package/dist/cli/commands/candidates.js.map +1 -1
- package/dist/cli/commands/canonical.d.ts.map +1 -1
- package/dist/cli/commands/canonical.js +11 -3
- package/dist/cli/commands/canonical.js.map +1 -1
- package/dist/cli/commands/chain.d.ts +1 -0
- package/dist/cli/commands/chain.d.ts.map +1 -1
- package/dist/cli/commands/chain.js +12 -1
- package/dist/cli/commands/chain.js.map +1 -1
- package/dist/cli/commands/confront.d.ts.map +1 -1
- package/dist/cli/commands/confront.js +20 -6
- package/dist/cli/commands/confront.js.map +1 -1
- package/dist/cli/commands/connectors.d.ts.map +1 -1
- package/dist/cli/commands/connectors.js +7 -3
- package/dist/cli/commands/connectors.js.map +1 -1
- package/dist/cli/commands/coverage.d.ts.map +1 -1
- package/dist/cli/commands/coverage.js +6 -2
- package/dist/cli/commands/coverage.js.map +1 -1
- package/dist/cli/commands/derive.d.ts.map +1 -1
- package/dist/cli/commands/derive.js +12 -4
- package/dist/cli/commands/derive.js.map +1 -1
- package/dist/cli/commands/discover.d.ts.map +1 -1
- package/dist/cli/commands/discover.js +35 -8
- package/dist/cli/commands/discover.js.map +1 -1
- package/dist/cli/commands/eval.d.ts.map +1 -1
- package/dist/cli/commands/eval.js +26 -19
- package/dist/cli/commands/eval.js.map +1 -1
- package/dist/cli/commands/evaluate.d.ts +7 -3
- package/dist/cli/commands/evaluate.d.ts.map +1 -1
- package/dist/cli/commands/evaluate.js +71 -36
- package/dist/cli/commands/evaluate.js.map +1 -1
- package/dist/cli/commands/explain.d.ts.map +1 -1
- package/dist/cli/commands/explain.js +7 -3
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/frontier.d.ts.map +1 -1
- package/dist/cli/commands/frontier.js +12 -2
- package/dist/cli/commands/frontier.js.map +1 -1
- package/dist/cli/commands/ground.d.ts.map +1 -1
- package/dist/cli/commands/ground.js +20 -5
- package/dist/cli/commands/ground.js.map +1 -1
- package/dist/cli/commands/map.d.ts +1 -1
- package/dist/cli/commands/map.d.ts.map +1 -1
- package/dist/cli/commands/map.js +29 -25
- package/dist/cli/commands/map.js.map +1 -1
- package/dist/cli/commands/metric.d.ts.map +1 -1
- package/dist/cli/commands/metric.js +21 -14
- package/dist/cli/commands/metric.js.map +1 -1
- package/dist/cli/commands/path.d.ts +3 -2
- package/dist/cli/commands/path.d.ts.map +1 -1
- package/dist/cli/commands/path.js +47 -20
- package/dist/cli/commands/path.js.map +1 -1
- package/dist/cli/commands/predict.d.ts.map +1 -1
- package/dist/cli/commands/predict.js +7 -3
- package/dist/cli/commands/predict.js.map +1 -1
- package/dist/cli/commands/priority.d.ts.map +1 -1
- package/dist/cli/commands/priority.js +7 -3
- package/dist/cli/commands/priority.js.map +1 -1
- package/dist/cli/commands/probe.d.ts.map +1 -1
- package/dist/cli/commands/probe.js +32 -16
- package/dist/cli/commands/probe.js.map +1 -1
- package/dist/cli/commands/recover.d.ts.map +1 -1
- package/dist/cli/commands/recover.js +7 -4
- package/dist/cli/commands/recover.js.map +1 -1
- package/dist/cli/commands/regime.d.ts +2 -2
- package/dist/cli/commands/regime.d.ts.map +1 -1
- package/dist/cli/commands/regime.js +36 -12
- package/dist/cli/commands/regime.js.map +1 -1
- package/dist/cli/commands/retrieve.d.ts.map +1 -1
- package/dist/cli/commands/retrieve.js +23 -4
- package/dist/cli/commands/retrieve.js.map +1 -1
- package/dist/cli/commands/search.d.ts.map +1 -1
- package/dist/cli/commands/search.js +12 -2
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/symbolic.d.ts.map +1 -1
- package/dist/cli/commands/symbolic.js +11 -3
- package/dist/cli/commands/symbolic.js.map +1 -1
- package/dist/cli/commands/testplan.d.ts.map +1 -1
- package/dist/cli/commands/testplan.js +12 -2
- package/dist/cli/commands/testplan.js.map +1 -1
- package/dist/cli/eval-numbers.d.ts +2 -2
- package/dist/cli/eval-numbers.js +2 -2
- package/dist/cli/flag-help.d.ts +34 -0
- package/dist/cli/flag-help.d.ts.map +1 -0
- package/dist/cli/flag-help.js +113 -0
- package/dist/cli/flag-help.js.map +1 -0
- package/dist/cli/main.d.ts +0 -8
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +42 -29
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/version.d.ts +6 -2
- package/dist/cli/version.d.ts.map +1 -1
- package/dist/cli/version.js +11 -3
- package/dist/cli/version.js.map +1 -1
- package/dist/cli-api.d.ts +50 -0
- package/dist/cli-api.d.ts.map +1 -1
- package/dist/cli-api.js +42 -0
- package/dist/cli-api.js.map +1 -1
- package/dist/composition/adjudication.d.ts +9 -0
- package/dist/composition/adjudication.d.ts.map +1 -1
- package/dist/composition/adjudication.js +13 -0
- package/dist/composition/adjudication.js.map +1 -1
- package/dist/composition/canonical-compare.d.ts +1 -0
- package/dist/composition/canonical-compare.d.ts.map +1 -1
- package/dist/composition/canonical-compare.js +1 -0
- package/dist/composition/canonical-compare.js.map +1 -1
- package/dist/composition/chain-result.d.ts +55 -0
- package/dist/composition/chain-result.d.ts.map +1 -0
- package/dist/composition/chain-result.js +57 -0
- package/dist/composition/chain-result.js.map +1 -0
- package/dist/composition/compose-symbolic.d.ts.map +1 -1
- package/dist/composition/compose-symbolic.js +4 -39
- package/dist/composition/compose-symbolic.js.map +1 -1
- package/dist/composition/compose.d.ts.map +1 -1
- package/dist/composition/compose.js +11 -4
- package/dist/composition/compose.js.map +1 -1
- package/dist/composition/edges/calibration.d.ts +9 -0
- package/dist/composition/edges/calibration.d.ts.map +1 -1
- package/dist/composition/edges/calibration.js +9 -9
- package/dist/composition/edges/calibration.js.map +1 -1
- package/dist/composition/edges/catalog-condensed-matter.d.ts +10 -0
- package/dist/composition/edges/catalog-condensed-matter.d.ts.map +1 -1
- package/dist/composition/edges/catalog-condensed-matter.js +10 -10
- package/dist/composition/edges/catalog-condensed-matter.js.map +1 -1
- package/dist/composition/edges/catalog-gravitation-cosmology.d.ts +11 -0
- package/dist/composition/edges/catalog-gravitation-cosmology.d.ts.map +1 -1
- package/dist/composition/edges/catalog-gravitation-cosmology.js +11 -11
- package/dist/composition/edges/catalog-gravitation-cosmology.js.map +1 -1
- package/dist/composition/edges/catalog-quantum.d.ts +10 -0
- package/dist/composition/edges/catalog-quantum.d.ts.map +1 -1
- package/dist/composition/edges/catalog-quantum.js +10 -10
- package/dist/composition/edges/catalog-quantum.js.map +1 -1
- package/dist/composition/edges/catalog-tranche.d.ts +11 -0
- package/dist/composition/edges/catalog-tranche.d.ts.map +1 -1
- package/dist/composition/edges/catalog-tranche.js +11 -11
- package/dist/composition/edges/catalog-tranche.js.map +1 -1
- package/dist/composition/enumerate.d.ts +46 -5
- package/dist/composition/enumerate.d.ts.map +1 -1
- package/dist/composition/enumerate.js +37 -8
- package/dist/composition/enumerate.js.map +1 -1
- package/dist/composition/expr-simplify.d.ts.map +1 -1
- package/dist/composition/expr-simplify.js +3 -11
- package/dist/composition/expr-simplify.js.map +1 -1
- package/dist/composition/frontier-account.d.ts +6 -6
- package/dist/composition/frontier-account.d.ts.map +1 -1
- package/dist/composition/mathts-scalar-symbols.d.ts +48 -0
- package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -0
- package/dist/composition/mathts-scalar-symbols.js +150 -0
- package/dist/composition/mathts-scalar-symbols.js.map +1 -0
- package/dist/composition/probe/frontier.d.ts.map +1 -1
- package/dist/composition/probe/frontier.js +17 -4
- package/dist/composition/probe/frontier.js.map +1 -1
- package/dist/composition/probe/study.js +1 -1
- package/dist/composition/probe/study.js.map +1 -1
- package/dist/composition/uncertainty.d.ts +2 -2
- package/dist/composition/uncertainty.d.ts.map +1 -1
- package/dist/composition/uncertainty.js +14 -13
- package/dist/composition/uncertainty.js.map +1 -1
- package/dist/diff/bridge-gradient.d.ts +5 -8
- package/dist/diff/bridge-gradient.d.ts.map +1 -1
- package/dist/diff/bridge-gradient.js +5 -8
- package/dist/diff/bridge-gradient.js.map +1 -1
- package/dist/dimensional/buckingham.d.ts.map +1 -1
- package/dist/dimensional/buckingham.js +19 -91
- package/dist/dimensional/buckingham.js.map +1 -1
- package/dist/dimensional/units.d.ts +13 -0
- package/dist/dimensional/units.d.ts.map +1 -1
- package/dist/dimensional/units.js +78 -1
- package/dist/dimensional/units.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/numerical/binding-value.d.ts +3 -3
- package/dist/numerical/binding-value.d.ts.map +1 -1
- package/dist/numerical/binding-value.js +60 -31
- package/dist/numerical/binding-value.js.map +1 -1
- package/dist/numerical/einstein-equation.js +3 -3
- package/dist/numerical/einstein-equation.js.map +1 -1
- package/dist/numerical/engine-registry.d.ts +12 -27
- package/dist/numerical/engine-registry.d.ts.map +1 -1
- package/dist/numerical/engine-registry.js +10 -65
- package/dist/numerical/engine-registry.js.map +1 -1
- package/dist/numerical/errors.d.ts +1 -2
- package/dist/numerical/errors.d.ts.map +1 -1
- package/dist/numerical/errors.js +1 -2
- package/dist/numerical/errors.js.map +1 -1
- package/dist/numerical/formula-contract.d.ts +60 -0
- package/dist/numerical/formula-contract.d.ts.map +1 -0
- package/dist/numerical/formula-contract.js +107 -0
- package/dist/numerical/formula-contract.js.map +1 -0
- package/dist/numerical/formula-dimension.d.ts +33 -10
- package/dist/numerical/formula-dimension.d.ts.map +1 -1
- package/dist/numerical/formula-dimension.js +48 -35
- package/dist/numerical/formula-dimension.js.map +1 -1
- package/dist/numerical/formula-mathts.d.ts +15 -17
- package/dist/numerical/formula-mathts.d.ts.map +1 -1
- package/dist/numerical/formula-mathts.js +34 -36
- package/dist/numerical/formula-mathts.js.map +1 -1
- package/dist/numerical/formula-registry.d.ts +11 -19
- package/dist/numerical/formula-registry.d.ts.map +1 -1
- package/dist/numerical/formula-registry.js +16 -79
- package/dist/numerical/formula-registry.js.map +1 -1
- package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
- package/dist/numerical/geodesic-integrator.js +19 -31
- package/dist/numerical/geodesic-integrator.js.map +1 -1
- package/dist/numerical/gl4-integrator.d.ts +12 -51
- package/dist/numerical/gl4-integrator.d.ts.map +1 -1
- package/dist/numerical/gl4-integrator.js +103 -565
- package/dist/numerical/gl4-integrator.js.map +1 -1
- package/dist/numerical/index.d.ts +0 -2
- package/dist/numerical/index.d.ts.map +1 -1
- package/dist/numerical/index.js +0 -2
- package/dist/numerical/index.js.map +1 -1
- package/dist/numerical/kretschmann.d.ts +2 -2
- package/dist/numerical/kretschmann.js +2 -2
- package/dist/numerical/mathts-engine.d.ts +7 -8
- package/dist/numerical/mathts-engine.d.ts.map +1 -1
- package/dist/numerical/mathts-engine.js +19 -27
- package/dist/numerical/mathts-engine.js.map +1 -1
- package/dist/numerical/null-ray-integrator.d.ts.map +1 -1
- package/dist/numerical/null-ray-integrator.js +11 -28
- package/dist/numerical/null-ray-integrator.js.map +1 -1
- package/dist/numerical/quadrature.d.ts +2 -17
- package/dist/numerical/quadrature.d.ts.map +1 -1
- package/dist/numerical/quadrature.js +9 -20
- package/dist/numerical/quadrature.js.map +1 -1
- package/dist/numerical/spacetime-metrics.d.ts +1 -0
- package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
- package/dist/numerical/spacetime-metrics.js.map +1 -1
- package/dist/numerical/strides.d.ts +1 -2
- package/dist/numerical/strides.d.ts.map +1 -1
- package/dist/numerical/strides.js +1 -2
- package/dist/numerical/strides.js.map +1 -1
- package/dist/numerical/tensor-engine.d.ts +2 -3
- package/dist/numerical/tensor-engine.d.ts.map +1 -1
- package/dist/numerical/tensor-engine.js +1 -2
- package/dist/numerical/tensor-engine.js.map +1 -1
- package/dist/relations/category.d.ts +8 -2
- package/dist/relations/category.d.ts.map +1 -1
- package/dist/relations/category.js +10 -2
- package/dist/relations/category.js.map +1 -1
- package/dist/relations/composition-table.d.ts +1 -1
- package/dist/relations/composition-table.d.ts.map +1 -1
- package/dist/relations/composition-table.js +1 -1
- package/dist/relations/composition-table.js.map +1 -1
- package/dist/relations/regime-vocabularies.d.ts +40 -0
- package/dist/relations/regime-vocabularies.d.ts.map +1 -0
- package/dist/relations/regime-vocabularies.js +19 -0
- package/dist/relations/regime-vocabularies.js.map +1 -0
- package/package.json +13 -46
- package/dist/numerical/float64-engine.d.ts +0 -55
- package/dist/numerical/float64-engine.d.ts.map +0 -1
- package/dist/numerical/float64-engine.js +0 -675
- package/dist/numerical/float64-engine.js.map +0 -1
- package/dist/numerical/formula.d.ts +0 -106
- package/dist/numerical/formula.d.ts.map +0 -1
- package/dist/numerical/formula.js +0 -348
- package/dist/numerical/formula.js.map +0 -1
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* A binding value: a bare number, a number with a unit, or an expression of
|
|
3
3
|
* registered constants and unit literals (`pi/2`, `0.6*c`, `2*1km`).
|
|
4
4
|
*
|
|
5
|
-
* The
|
|
6
|
-
* A bare `e` is the elementary charge.
|
|
7
|
-
*
|
|
5
|
+
* The MathTS parser produces the node this module evaluates, so a unit
|
|
6
|
+
* literal keeps its dimension. A bare `e` is the elementary charge.
|
|
7
|
+
* Euler's number is `exp(x)`. A bare number, or an expression whose result is
|
|
8
8
|
* dimensionless and contains no unit literal, is already in the caller's
|
|
9
9
|
* unit. Anything else is an SI quantity: the caller converts it into the
|
|
10
10
|
* declared unit when the dimensions agree.
|
|
@@ -22,8 +22,9 @@ import { naturalConstantOverrides } from '../dimensional/natural-units.js';
|
|
|
22
22
|
import { CONSTANTS as SYMBOLIC } from '../dimensional/symbolic-constants.js';
|
|
23
23
|
import { divide, equals, format, multiply, power } from '../dimensional/algebra.js';
|
|
24
24
|
import { DIMENSIONLESS, MASS } from '../dimensional/types.js';
|
|
25
|
-
import { convertValue, parseUnit, unitConventionNotes, UnitError, } from '../dimensional/units.js';
|
|
26
|
-
import { callBuiltinFunction,
|
|
25
|
+
import { convertValue, mathTsAgreedQuantity, parseUnit, unitConventionNotes, UnitError, } from '../dimensional/units.js';
|
|
26
|
+
import { callBuiltinFunction, EULER_NUMBER_ERROR, FormulaError } from './formula-contract.js';
|
|
27
|
+
import { parseFormulaPNode } from './formula-dimension.js';
|
|
27
28
|
const NUMBER = /^[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?$/;
|
|
28
29
|
const NUMBER_UNIT = /^([+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?)\s*(.*?)$/;
|
|
29
30
|
const GLUED_NUMBER = /(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/g;
|
|
@@ -117,8 +118,9 @@ function spliceUnits(src) {
|
|
|
117
118
|
if (parsed.affine !== undefined) {
|
|
118
119
|
throw new UnitError('degC is affine and cannot be part of an expression; give the temperature alone, or use K');
|
|
119
120
|
}
|
|
121
|
+
const agreed = mathTsAgreedQuantity(1, unit, parsed);
|
|
120
122
|
const name = `__u${slots.size}`;
|
|
121
|
-
slots.set(name, { value: parsed.scale, dim: parsed.dim });
|
|
123
|
+
slots.set(name, { value: agreed?.value ?? parsed.scale, dim: agreed?.dim ?? parsed.dim });
|
|
122
124
|
for (const note of unitConventionNotes(unit)) {
|
|
123
125
|
if (!notes.includes(note))
|
|
124
126
|
notes.push(note);
|
|
@@ -135,6 +137,8 @@ function evalAst(node, scope, slots) {
|
|
|
135
137
|
case 'num':
|
|
136
138
|
return { value: node.value, dim: DIMENSIONLESS };
|
|
137
139
|
case 'sym': {
|
|
140
|
+
if (node.name === 'euler')
|
|
141
|
+
throw new FormulaError(EULER_NUMBER_ERROR);
|
|
138
142
|
const slot = slots.get(node.name);
|
|
139
143
|
if (slot !== undefined)
|
|
140
144
|
return slot;
|
|
@@ -143,35 +147,59 @@ function evalAst(node, scope, slots) {
|
|
|
143
147
|
return known;
|
|
144
148
|
throw new UnitError(`unknown name '${node.name}'`);
|
|
145
149
|
}
|
|
146
|
-
case '
|
|
150
|
+
case 'neg': {
|
|
147
151
|
const a = evalAst(node.arg, scope, slots);
|
|
148
|
-
return { value:
|
|
152
|
+
return { value: -a.value, dim: a.dim };
|
|
149
153
|
}
|
|
150
|
-
case '
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
}
|
|
159
|
-
return { value: node.op === '+' ? l.value + r.value : l.value - r.value, dim: l.dim };
|
|
160
|
-
case '*':
|
|
161
|
-
return { value: l.value * r.value, dim: multiply(l.dim, r.dim) };
|
|
162
|
-
case '/':
|
|
163
|
-
return { value: l.value / r.value, dim: divide(l.dim, r.dim) };
|
|
164
|
-
case '^':
|
|
165
|
-
if (!equals(r.dim, DIMENSIONLESS))
|
|
166
|
-
throw new UnitError('an exponent must be dimensionless');
|
|
167
|
-
return { value: Math.pow(l.value, r.value), dim: power(l.dim, r.value) };
|
|
168
|
-
}
|
|
154
|
+
case 'op':
|
|
155
|
+
return evalOp(node.op, node.args.map((a) => evalAst(a, scope, slots)));
|
|
156
|
+
case 'pow': {
|
|
157
|
+
const base = evalAst(node.base, scope, slots);
|
|
158
|
+
const exp = evalAst(node.exp, scope, slots);
|
|
159
|
+
if (!equals(exp.dim, DIMENSIONLESS))
|
|
160
|
+
throw new UnitError('an exponent must be dimensionless');
|
|
161
|
+
return { value: Math.pow(base.value, exp.value), dim: power(base.dim, exp.value) };
|
|
169
162
|
}
|
|
170
|
-
// eslint-disable-next-line no-fallthrough
|
|
171
163
|
case 'call':
|
|
164
|
+
if (node.fn === 'euler')
|
|
165
|
+
throw new FormulaError(EULER_NUMBER_ERROR);
|
|
172
166
|
return evalCall(node.fn, node.args.map((a) => evalAst(a, scope, slots)));
|
|
173
167
|
}
|
|
174
168
|
}
|
|
169
|
+
function evalOp(op, args) {
|
|
170
|
+
if (args.length === 0)
|
|
171
|
+
throw new UnitError(`cannot ${op}`);
|
|
172
|
+
if (op === '+' || op === '-') {
|
|
173
|
+
const first = args[0];
|
|
174
|
+
if (args.length === 1) {
|
|
175
|
+
return op === '-' ? { value: -first.value, dim: first.dim } : first;
|
|
176
|
+
}
|
|
177
|
+
let value = first.value;
|
|
178
|
+
for (const next of args.slice(1)) {
|
|
179
|
+
if (!equals(first.dim, next.dim)) {
|
|
180
|
+
throw new UnitError(`cannot ${op === '+' ? 'add' : 'subtract'} ${format(first.dim)} and ${format(next.dim)}`);
|
|
181
|
+
}
|
|
182
|
+
value = op === '+' ? value + next.value : value - next.value;
|
|
183
|
+
}
|
|
184
|
+
return { value, dim: first.dim };
|
|
185
|
+
}
|
|
186
|
+
if (op === '*') {
|
|
187
|
+
let value = 1;
|
|
188
|
+
let dim = DIMENSIONLESS;
|
|
189
|
+
for (const a of args) {
|
|
190
|
+
value *= a.value;
|
|
191
|
+
dim = multiply(dim, a.dim);
|
|
192
|
+
}
|
|
193
|
+
return { value, dim };
|
|
194
|
+
}
|
|
195
|
+
let value = args[0].value;
|
|
196
|
+
let dim = args[0].dim;
|
|
197
|
+
for (const next of args.slice(1)) {
|
|
198
|
+
value /= next.value;
|
|
199
|
+
dim = divide(dim, next.dim);
|
|
200
|
+
}
|
|
201
|
+
return { value, dim };
|
|
202
|
+
}
|
|
175
203
|
function evalCall(fn, args) {
|
|
176
204
|
if (fn === 'sqrt' || fn === 'cbrt') {
|
|
177
205
|
if (args.length !== 1)
|
|
@@ -231,10 +259,11 @@ function plainUnit(raw, reading) {
|
|
|
231
259
|
}
|
|
232
260
|
const v = finite(raw, Number(m[1]));
|
|
233
261
|
const offset = unit.affine === 'celsius' && reading === 'absolute' ? CELSIUS_OFFSET_K : 0;
|
|
262
|
+
const agreed = offset === 0 ? mathTsAgreedQuantity(v, m[2], unit) : undefined;
|
|
234
263
|
return {
|
|
235
|
-
value: v * unit.scale + offset,
|
|
264
|
+
value: agreed?.value ?? v * unit.scale + offset,
|
|
236
265
|
dimensioned: true,
|
|
237
|
-
dimension: unit.dim,
|
|
266
|
+
dimension: agreed?.dim ?? unit.dim,
|
|
238
267
|
notes: unitConventionNotes(m[2]),
|
|
239
268
|
};
|
|
240
269
|
}
|
|
@@ -278,7 +307,7 @@ export function readBinding(raw, opts) {
|
|
|
278
307
|
const spliced = spliceUnits(trimmed);
|
|
279
308
|
let ast;
|
|
280
309
|
try {
|
|
281
|
-
ast =
|
|
310
|
+
ast = parseFormulaPNode(spliced.expr);
|
|
282
311
|
}
|
|
283
312
|
catch (e) {
|
|
284
313
|
if (e instanceof FormulaError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding-value.js","sourceRoot":"","sources":["../../src/numerical/binding-value.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"binding-value.js","sourceRoot":"","sources":["../../src/numerical/binding-value.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,13 +22,13 @@
|
|
|
22
22
|
* @module numerical/einstein-equation
|
|
23
23
|
*/
|
|
24
24
|
import { lowerNode } from './lowering.js';
|
|
25
|
-
import {
|
|
25
|
+
import { MathTSEngine } from './mathts-engine.js';
|
|
26
26
|
import { metric } from '../dimensional/metric.js';
|
|
27
27
|
import { tsym } from '../dimensional/tensor.js';
|
|
28
28
|
import { LENGTH, DIMENSIONLESS } from '../dimensional/types.js';
|
|
29
29
|
import { C_SI, G_SI } from '../core/constants.js';
|
|
30
|
-
/** Shared engine instance (stateless
|
|
31
|
-
const _engine = new
|
|
30
|
+
/** Shared engine instance (stateless MathTSEngine, safe to reuse). */
|
|
31
|
+
const _engine = new MathTSEngine();
|
|
32
32
|
/**
|
|
33
33
|
* Build the EinsteinTensorNode AST that the lowering layer understands.
|
|
34
34
|
* The inner RiemannTensorNode and outer EinsteinTensorNode both reference
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"einstein-equation.js","sourceRoot":"","sources":["../../src/numerical/einstein-equation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"einstein-equation.js","sourceRoot":"","sources":["../../src/numerical/einstein-equation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,48 +1,33 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Engine registry —
|
|
3
|
-
* @danielsimonjr/mathts-tensor AND @danielsimonjr/mathts-autograd are
|
|
4
|
-
* installed, getActiveEngine() returns MathTSEngine. Falls back to
|
|
5
|
-
* Float64ReferenceEngine (the zero-dep default) with a one-time
|
|
6
|
-
* console.warn (suppressible via UPT_QUIET_FALLBACK=1) when either dep
|
|
7
|
-
* is absent.
|
|
2
|
+
* Engine registry — the active TensorEngine is `MathTSEngine`.
|
|
8
3
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* NOT a performance win. MathTSEngine becomes the default because that
|
|
12
|
-
* is where the autograd capability (AD) lives.
|
|
4
|
+
* The MathTS packages are required dependencies. There is no absent-peer
|
|
5
|
+
* branch.
|
|
13
6
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* I5 fix (browser guard): `process` is undefined in browser bundlers.
|
|
19
|
-
* All access is guarded by `typeof process !== 'undefined'`.
|
|
7
|
+
* The Promise itself is cached, so concurrent first-time callers share one
|
|
8
|
+
* resolution. `setActiveEngine` replaces that promise, including one that
|
|
9
|
+
* has not been awaited yet.
|
|
20
10
|
*
|
|
21
11
|
* @module numerical/engine-registry
|
|
22
12
|
*/
|
|
23
13
|
import type { TensorEngine } from './tensor-engine.js';
|
|
24
14
|
/**
|
|
25
|
-
* The TensorEngine
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* v0.4.0: returns MathTSEngine when both @danielsimonjr/mathts-tensor AND
|
|
29
|
-
* @danielsimonjr/mathts-autograd are installed; otherwise Float64ReferenceEngine.
|
|
30
|
-
*
|
|
31
|
-
* I4: returns a cached Promise — concurrent first-time callers share the
|
|
32
|
-
* same in-flight resolution, so at most one MathTSEngine is ever constructed.
|
|
15
|
+
* The TensorEngine used by the `evaluateNumerical*` entry points when no
|
|
16
|
+
* per-call `EvaluateOptions.engine` is supplied. Always a `MathTSEngine`
|
|
17
|
+
* unless {@link setActiveEngine} replaced it.
|
|
33
18
|
*
|
|
34
19
|
* @public
|
|
35
20
|
*/
|
|
36
21
|
export declare function getActiveEngine(): Promise<TensorEngine>;
|
|
37
22
|
/**
|
|
38
|
-
* Set the process-wide active TensorEngine
|
|
23
|
+
* Set the process-wide active TensorEngine.
|
|
39
24
|
* Wraps the engine in a resolved Promise to match the async getActiveEngine
|
|
40
|
-
* contract
|
|
25
|
+
* contract.
|
|
41
26
|
* @public
|
|
42
27
|
*/
|
|
43
28
|
export declare function setActiveEngine(engine: TensorEngine): void;
|
|
44
29
|
/**
|
|
45
|
-
* Reset the Promise-cache
|
|
30
|
+
* Reset the Promise-cache for testing purposes only.
|
|
46
31
|
* Not part of the public API surface; NOT exported from the root barrel.
|
|
47
32
|
* @internal
|
|
48
33
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-registry.d.ts","sourceRoot":"","sources":["../../src/numerical/engine-registry.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"engine-registry.d.ts","sourceRoot":"","sources":["../../src/numerical/engine-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAYvD;;;;;;GAMG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAG7D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAG1D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C"}
|
|
@@ -1,79 +1,25 @@
|
|
|
1
|
-
import {
|
|
2
|
-
// Module-level cache. Stores a Promise so that concurrent first-time calls
|
|
3
|
-
// to getActiveEngine() both await the same in-flight detection, never racing
|
|
4
|
-
// to construct two separate engine instances (I4 fix).
|
|
1
|
+
import { MathTSEngine } from './mathts-engine.js';
|
|
5
2
|
let _activeEngineP;
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
let _resolvedDefault;
|
|
9
|
-
// Synchronous record of an explicit setActiveEngine override. An in-flight
|
|
10
|
-
// detection (started by an earlier getActiveEngine) reads this AFTER its async
|
|
11
|
-
// import resolves, so a setActiveEngine that lands mid-detection wins for the
|
|
12
|
-
// in-flight awaiter too — not just for later callers. Without it, the in-flight
|
|
13
|
-
// promise resolves to the stale auto-detected engine.
|
|
3
|
+
// An explicit setActiveEngine override. Read when the cached promise is
|
|
4
|
+
// created, so a set that lands first wins for the first awaiter.
|
|
14
5
|
let _override;
|
|
15
|
-
/**
|
|
16
|
-
* Attempt to import both optional peer deps. Returns 'mathts' when both are
|
|
17
|
-
* present; 'float64' otherwise. Emits a one-time console.warn on fallback
|
|
18
|
-
* (suppressible via UPT_QUIET_FALLBACK=1).
|
|
19
|
-
*/
|
|
20
|
-
async function detectDefault() {
|
|
21
|
-
if (_resolvedDefault !== undefined)
|
|
22
|
-
return _resolvedDefault;
|
|
23
|
-
try {
|
|
24
|
-
await import('@danielsimonjr/mathts-tensor');
|
|
25
|
-
// v0.5.1 TS-4: the prior `@ts-ignore` is replaced by the ambient module
|
|
26
|
-
// declaration at the top of this file; the try-catch still handles the
|
|
27
|
-
// runtime-absent case (Promise rejection from the bundler/loader).
|
|
28
|
-
await import('@danielsimonjr/mathts-autograd');
|
|
29
|
-
_resolvedDefault = 'mathts';
|
|
30
|
-
}
|
|
31
|
-
catch {
|
|
32
|
-
// I5 fix: `process` is undefined in browser bundlers; guard before reading.
|
|
33
|
-
const quiet = typeof process !== 'undefined' && process.env?.UPT_QUIET_FALLBACK === '1';
|
|
34
|
-
if (!quiet) {
|
|
35
|
-
console.warn('[universal-physics-tensor] @danielsimonjr/mathts-tensor and/or '
|
|
36
|
-
+ '@danielsimonjr/mathts-autograd not installed. '
|
|
37
|
-
+ 'Falling back to Float64ReferenceEngine. '
|
|
38
|
-
+ 'Install both peers for MathTS-default + autograd (AD) support. '
|
|
39
|
-
+ '(Suppress this warning with UPT_QUIET_FALLBACK=1.)');
|
|
40
|
-
}
|
|
41
|
-
_resolvedDefault = 'float64';
|
|
42
|
-
}
|
|
43
|
-
return _resolvedDefault;
|
|
44
|
-
}
|
|
45
6
|
// @public: getActiveEngine/setActiveEngine are part of the consumer-facing
|
|
46
7
|
// engine-switching contract (re-exported from the root barrel).
|
|
47
8
|
/**
|
|
48
|
-
* The TensorEngine
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
* v0.4.0: returns MathTSEngine when both @danielsimonjr/mathts-tensor AND
|
|
52
|
-
* @danielsimonjr/mathts-autograd are installed; otherwise Float64ReferenceEngine.
|
|
53
|
-
*
|
|
54
|
-
* I4: returns a cached Promise — concurrent first-time callers share the
|
|
55
|
-
* same in-flight resolution, so at most one MathTSEngine is ever constructed.
|
|
9
|
+
* The TensorEngine used by the `evaluateNumerical*` entry points when no
|
|
10
|
+
* per-call `EvaluateOptions.engine` is supplied. Always a `MathTSEngine`
|
|
11
|
+
* unless {@link setActiveEngine} replaced it.
|
|
56
12
|
*
|
|
57
13
|
* @public
|
|
58
14
|
*/
|
|
59
15
|
export async function getActiveEngine() {
|
|
60
|
-
_activeEngineP ??= (
|
|
61
|
-
const choice = await detectDefault();
|
|
62
|
-
// A setActiveEngine that landed while detection was in flight wins.
|
|
63
|
-
if (_override !== undefined)
|
|
64
|
-
return _override;
|
|
65
|
-
if (choice === 'mathts') {
|
|
66
|
-
const { MathTSEngine } = await import('./mathts-engine.js');
|
|
67
|
-
return new MathTSEngine();
|
|
68
|
-
}
|
|
69
|
-
return new Float64ReferenceEngine();
|
|
70
|
-
})();
|
|
16
|
+
_activeEngineP ??= Promise.resolve(_override ?? new MathTSEngine());
|
|
71
17
|
return _activeEngineP;
|
|
72
18
|
}
|
|
73
19
|
/**
|
|
74
|
-
* Set the process-wide active TensorEngine
|
|
20
|
+
* Set the process-wide active TensorEngine.
|
|
75
21
|
* Wraps the engine in a resolved Promise to match the async getActiveEngine
|
|
76
|
-
* contract
|
|
22
|
+
* contract.
|
|
77
23
|
* @public
|
|
78
24
|
*/
|
|
79
25
|
export function setActiveEngine(engine) {
|
|
@@ -81,13 +27,12 @@ export function setActiveEngine(engine) {
|
|
|
81
27
|
_activeEngineP = Promise.resolve(engine);
|
|
82
28
|
}
|
|
83
29
|
/**
|
|
84
|
-
* Reset the Promise-cache
|
|
30
|
+
* Reset the Promise-cache for testing purposes only.
|
|
85
31
|
* Not part of the public API surface; NOT exported from the root barrel.
|
|
86
32
|
* @internal
|
|
87
33
|
*/
|
|
88
34
|
export function resetEngineForTesting() {
|
|
89
35
|
_activeEngineP = undefined;
|
|
90
|
-
_resolvedDefault = undefined;
|
|
91
36
|
_override = undefined;
|
|
92
37
|
}
|
|
93
38
|
//# sourceMappingURL=engine-registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-registry.js","sourceRoot":"","sources":["../../src/numerical/engine-registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"engine-registry.js","sourceRoot":"","sources":["../../src/numerical/engine-registry.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,IAAI,cAAiD,CAAC;AAEtD,wEAAwE;AACxE,iEAAiE;AACjE,IAAI,SAAmC,CAAC;AAExC,2EAA2E;AAC3E,gEAAgE;AAEhE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,YAAY,EAAE,CAAC,CAAC;IACpE,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,SAAS,GAAG,MAAM,CAAC;IACnB,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,cAAc,GAAG,SAAS,CAAC;IAC3B,SAAS,GAAG,SAAS,CAAC;AACxB,CAAC"}
|
|
@@ -15,8 +15,7 @@ export declare class NumericalBackendError extends UPTError {
|
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
17
|
* Thrown when a TensorEngine method required for an operation is not
|
|
18
|
-
* implemented by the active engine (
|
|
19
|
-
* Float64ReferenceEngine). Call `hasAutogradSupport(engine)` before
|
|
18
|
+
* implemented by the active engine. Call `hasAutogradSupport(engine)` before
|
|
20
19
|
* invoking AD methods to avoid this error.
|
|
21
20
|
* @public
|
|
22
21
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/numerical/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,QAAQ;IACjD,YAAY,OAAO,EAAE,MAAM,EAI1B;CACF;AAED
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/numerical/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,QAAQ;IACjD,YAAY,OAAO,EAAE,MAAM,EAI1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,qBAAqB;aAE5C,UAAU,EAAE,MAAM;aAClB,aAAa,EAAE,MAAM;IAFvC,YACkB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EAQtC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,mBAAoB,SAAQ,qBAAqB;IAC5D,YAAY,OAAO,EAAE,MAAM,EAI1B;CACF"}
|
package/dist/numerical/errors.js
CHANGED
|
@@ -19,8 +19,7 @@ export class NumericalBackendError extends UPTError {
|
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
21
|
* Thrown when a TensorEngine method required for an operation is not
|
|
22
|
-
* implemented by the active engine (
|
|
23
|
-
* Float64ReferenceEngine). Call `hasAutogradSupport(engine)` before
|
|
22
|
+
* implemented by the active engine. Call `hasAutogradSupport(engine)` before
|
|
24
23
|
* invoking AD methods to avoid this error.
|
|
25
24
|
* @public
|
|
26
25
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/numerical/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD;;;;GAIG;AACH,MAAM,OAAO,qBAAsB,SAAQ,QAAQ;IACjD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC;CACF;AAED
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/numerical/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD;;;;GAIG;AACH,MAAM,OAAO,qBAAsB,SAAQ,QAAQ;IACjD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,qBAAsB,SAAQ,qBAAqB;IAE5C,UAAU;IACV,aAAa;IAF/B,YACkB,UAAkB,EAClB,aAAqB;QAErC,KAAK,CACH,WAAW,UAAU,yBAAyB,aAAa,KAAK;YAChE,wEAAwE,CACzE,CAAC;0BANc,UAAU;6BACV,aAAa;QAM7B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,mBAAoB,SAAQ,qBAAqB;IAC5D,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;CACF"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scalar-formula contract shared by the MathTS parser.
|
|
3
|
+
*
|
|
4
|
+
* Path B, the recursive-descent parser that used to live in `formula.ts`, is
|
|
5
|
+
* gone. These types and the documented function table stay: the MathTS
|
|
6
|
+
* adapter still returns a `number`, still refuses `euler`, and still supplies
|
|
7
|
+
* `ln` when MathTS does not define it.
|
|
8
|
+
*
|
|
9
|
+
* @module numerical/formula-contract
|
|
10
|
+
*/
|
|
11
|
+
/** A parse or evaluation failure (bad syntax, unknown symbol, arity). */
|
|
12
|
+
export declare class FormulaError extends Error {
|
|
13
|
+
constructor(message: string);
|
|
14
|
+
}
|
|
15
|
+
/** A parsed formula: its free variables and a safe evaluator. @internal */
|
|
16
|
+
export interface CompiledFormula {
|
|
17
|
+
/** The original source string. */
|
|
18
|
+
readonly source: string;
|
|
19
|
+
/** Free variable names (excludes built-in constants and functions). */
|
|
20
|
+
readonly variables: readonly string[];
|
|
21
|
+
/** Evaluate against a `name → value` scope. Throws on a missing var. */
|
|
22
|
+
evaluate(scope: Record<string, number>): number;
|
|
23
|
+
}
|
|
24
|
+
/** The MathTS-backed parser implements this. @internal */
|
|
25
|
+
export interface FormulaParser {
|
|
26
|
+
parse(expr: string): CompiledFormula;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The name `euler` is not Euler's number. Write `exp(x)`, for example `exp(1)`.
|
|
30
|
+
* A bare `e` is the elementary charge. `E` is energy.
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
export declare const EULER_NUMBER_ERROR = "euler is not Euler's number. Write it as exp(x), for example exp(1). A bare e is the elementary charge. E is energy.";
|
|
34
|
+
/** Names of the built-in functions this parser documents. @internal */
|
|
35
|
+
export declare const BUILTIN_FUNCTION_NAMES: readonly string[];
|
|
36
|
+
/**
|
|
37
|
+
* Function names from other conventions, each with the documented function that computes the same
|
|
38
|
+
* value (audit I4). An unknown name still fails: the equivalent is only named in the message, so a
|
|
39
|
+
* formula never means something its author did not write. Every `use` is in
|
|
40
|
+
* {@link BUILTIN_FUNCTION_NAMES}.
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
export declare const FUNCTION_EQUIVALENTS: Readonly<Record<string, {
|
|
44
|
+
readonly use: string;
|
|
45
|
+
readonly meaning: string;
|
|
46
|
+
}>>;
|
|
47
|
+
/** The documented functions as help and diagnostics list them, with the base of `log` stated. @internal */
|
|
48
|
+
export declare const BUILTIN_FUNCTION_LIST: string;
|
|
49
|
+
/**
|
|
50
|
+
* The diagnostic for a function this parser does not document: the documented equivalent when the
|
|
51
|
+
* name is a known alias or differs only in case, then the documented list. @internal
|
|
52
|
+
*/
|
|
53
|
+
export declare function unknownFunctionMessage(name: string): string;
|
|
54
|
+
/**
|
|
55
|
+
* Call a documented function by name, with this parser's arity checks. Supplies
|
|
56
|
+
* a function MathTS does not define (`ln`).
|
|
57
|
+
* @internal
|
|
58
|
+
*/
|
|
59
|
+
export declare function callBuiltinFunction(name: string, args: number[]): number;
|
|
60
|
+
//# sourceMappingURL=formula-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formula-contract.d.ts","sourceRoot":"","sources":["../../src/numerical/formula-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,yEAAyE;AACzE,qBAAa,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,2EAA2E;AAC3E,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;CACjD;AAED,0DAA0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC;CACtC;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,yHACyF,CAAC;AAmCzH,uEAAuE;AACvE,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAA2B,CAAC;AAEhF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAY7G,CAAC;AAEF,2GAA2G;AAC3G,eAAO,MAAM,qBAAqB,EAAE,MAExB,CAAC;AAEb;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAW3D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAIxE"}
|