universal-physics-tensor 1.0.4 → 2.0.1
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 +11 -13
- package/dist/atlas/catalog-formal-ref.js +1 -1
- package/dist/atlas/catalog-formal-ref.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/derive-evidence.d.ts +6 -4
- package/dist/atlas/derive-evidence.d.ts.map +1 -1
- package/dist/atlas/derive-evidence.js +12 -4
- package/dist/atlas/derive-evidence.js.map +1 -1
- package/dist/atlas/physjs-ref.d.ts +2 -2
- package/dist/atlas/physjs-ref.d.ts.map +1 -1
- package/dist/atlas/physjs-ref.js +33 -3
- package/dist/atlas/physjs-ref.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/bridges/be64-eddington-luminosity.d.ts.map +1 -1
- package/dist/bridges/be64-eddington-luminosity.js +1 -3
- package/dist/bridges/be64-eddington-luminosity.js.map +1 -1
- package/dist/bridges/be66-radiation-pressure.d.ts +30 -0
- package/dist/bridges/be66-radiation-pressure.d.ts.map +1 -0
- package/dist/bridges/be66-radiation-pressure.js +37 -0
- package/dist/bridges/be66-radiation-pressure.js.map +1 -0
- package/dist/bridges/be67-alfven-speed.d.ts +54 -0
- package/dist/bridges/be67-alfven-speed.d.ts.map +1 -0
- package/dist/bridges/be67-alfven-speed.js +49 -0
- package/dist/bridges/be67-alfven-speed.js.map +1 -0
- package/dist/bridges/be68-tolman-ehrenfest.d.ts +49 -0
- package/dist/bridges/be68-tolman-ehrenfest.d.ts.map +1 -0
- package/dist/bridges/be68-tolman-ehrenfest.js +46 -0
- package/dist/bridges/be68-tolman-ehrenfest.js.map +1 -0
- package/dist/bridges/bridge-equations.d.ts +6 -0
- package/dist/bridges/bridge-equations.d.ts.map +1 -1
- package/dist/bridges/bridge-equations.js +6 -0
- package/dist/bridges/bridge-equations.js.map +1 -1
- package/dist/bridges/evaluators.d.ts +3 -3
- package/dist/bridges/evaluators.d.ts.map +1 -1
- package/dist/bridges/evaluators.js +25 -4
- package/dist/bridges/evaluators.js.map +1 -1
- package/dist/bridges/index.d.ts +10 -4
- package/dist/bridges/index.d.ts.map +1 -1
- package/dist/bridges/index.js +74 -4
- package/dist/bridges/index.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 +6 -2
- package/dist/cli/commands/atlas.js.map +1 -1
- package/dist/cli/commands/chain.d.ts.map +1 -1
- package/dist/cli/commands/chain.js +8 -3
- package/dist/cli/commands/chain.js.map +1 -1
- package/dist/cli/commands/derive.js +1 -1
- package/dist/cli/commands/eval.d.ts.map +1 -1
- package/dist/cli/commands/eval.js +31 -15
- 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 +53 -32
- 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 +119 -15
- package/dist/cli/commands/explain.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.map +1 -1
- package/dist/cli/commands/metric.d.ts.map +1 -1
- package/dist/cli/commands/metric.js +10 -11
- package/dist/cli/commands/metric.js.map +1 -1
- package/dist/cli/commands/path.d.ts +2 -2
- package/dist/cli/commands/path.d.ts.map +1 -1
- package/dist/cli/commands/path.js +10 -11
- package/dist/cli/commands/path.js.map +1 -1
- package/dist/cli/commands/recover.d.ts.map +1 -1
- package/dist/cli/commands/recover.js +1 -2
- 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 +3 -4
- package/dist/cli/commands/regime.js.map +1 -1
- package/dist/cli/commands/search.d.ts.map +1 -1
- package/dist/cli/commands/search.js +8 -3
- 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 +5 -0
- package/dist/cli/commands/symbolic.js.map +1 -1
- package/dist/cli/eval-numbers.d.ts +6 -4
- package/dist/cli/eval-numbers.d.ts.map +1 -1
- package/dist/cli/eval-numbers.js +11 -5
- package/dist/cli/eval-numbers.js.map +1 -1
- package/dist/cli/map-evidence.d.ts +2 -1
- package/dist/cli/map-evidence.d.ts.map +1 -1
- package/dist/cli/map-evidence.js +2 -1
- package/dist/cli/map-evidence.js.map +1 -1
- package/dist/cli/search-index.d.ts +8 -0
- package/dist/cli/search-index.d.ts.map +1 -1
- package/dist/cli/search-index.js +18 -1
- package/dist/cli/search-index.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 +52 -0
- package/dist/cli-api.d.ts.map +1 -1
- package/dist/cli-api.js +44 -0
- package/dist/cli-api.js.map +1 -1
- package/dist/composition/bridge-analysis.d.ts.map +1 -1
- package/dist/composition/bridge-analysis.js +18 -1
- package/dist/composition/bridge-analysis.js.map +1 -1
- package/dist/composition/canonical-graph.d.ts +9 -4
- package/dist/composition/canonical-graph.d.ts.map +1 -1
- package/dist/composition/canonical-graph.js +113 -8
- package/dist/composition/canonical-graph.js.map +1 -1
- package/dist/composition/catalog-graph.d.ts +5 -4
- package/dist/composition/catalog-graph.d.ts.map +1 -1
- package/dist/composition/catalog-graph.js +7 -4
- package/dist/composition/catalog-graph.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/applied-physicist.d.ts +43 -0
- package/dist/composition/edges/applied-physicist.d.ts.map +1 -0
- package/dist/composition/edges/applied-physicist.js +128 -0
- package/dist/composition/edges/applied-physicist.js.map +1 -0
- 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/index.d.ts +2 -0
- package/dist/composition/index.d.ts.map +1 -1
- package/dist/composition/index.js +2 -0
- package/dist/composition/index.js.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/study.js +1 -1
- package/dist/composition/probe/study.js.map +1 -1
- package/dist/composition/quantities/applied-physicist.d.ts +34 -0
- package/dist/composition/quantities/applied-physicist.d.ts.map +1 -0
- package/dist/composition/quantities/applied-physicist.js +82 -0
- package/dist/composition/quantities/applied-physicist.js.map +1 -0
- package/dist/composition/quantities.d.ts +1 -0
- package/dist/composition/quantities.d.ts.map +1 -1
- package/dist/composition/quantities.js +1 -0
- package/dist/composition/quantities.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/core/constants.d.ts +16 -0
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +16 -0
- package/dist/core/constants.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/bridge-check.d.ts +1 -1
- package/dist/dimensional/bridge-check.d.ts.map +1 -1
- package/dist/dimensional/bridge-check.js +5 -2
- package/dist/dimensional/bridge-check.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/dimension-spec.d.ts.map +1 -1
- package/dist/dimensional/dimension-spec.js +1 -0
- package/dist/dimensional/dimension-spec.js.map +1 -1
- package/dist/dimensional/formula-names.d.ts.map +1 -1
- package/dist/dimensional/formula-names.js +9 -1
- package/dist/dimensional/formula-names.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 +81 -3
- package/dist/dimensional/units.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -4
- package/dist/index.js.map +1 -1
- package/dist/numerical/binding-value.d.ts +21 -3
- package/dist/numerical/binding-value.d.ts.map +1 -1
- package/dist/numerical/binding-value.js +106 -33
- 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/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/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 +12 -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
|
@@ -0,0 +1,107 @@
|
|
|
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 class FormulaError extends Error {
|
|
13
|
+
constructor(message) {
|
|
14
|
+
super(message);
|
|
15
|
+
this.name = 'FormulaError';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The name `euler` is not Euler's number. Write `exp(x)`, for example `exp(1)`.
|
|
20
|
+
* A bare `e` is the elementary charge. `E` is energy.
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export 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.";
|
|
24
|
+
const arity1 = (f) => (a) => {
|
|
25
|
+
if (a.length !== 1)
|
|
26
|
+
throw new FormulaError('expected 1 argument');
|
|
27
|
+
return f(a[0]);
|
|
28
|
+
};
|
|
29
|
+
const FUNCTIONS = {
|
|
30
|
+
sqrt: arity1(Math.sqrt),
|
|
31
|
+
cbrt: arity1(Math.cbrt),
|
|
32
|
+
exp: arity1(Math.exp),
|
|
33
|
+
ln: arity1(Math.log),
|
|
34
|
+
log: arity1(Math.log), // natural log (physics convention)
|
|
35
|
+
log10: arity1(Math.log10),
|
|
36
|
+
log2: arity1(Math.log2),
|
|
37
|
+
abs: arity1(Math.abs),
|
|
38
|
+
sin: arity1(Math.sin),
|
|
39
|
+
cos: arity1(Math.cos),
|
|
40
|
+
tan: arity1(Math.tan),
|
|
41
|
+
asin: arity1(Math.asin),
|
|
42
|
+
acos: arity1(Math.acos),
|
|
43
|
+
atan: arity1(Math.atan),
|
|
44
|
+
sinh: arity1(Math.sinh),
|
|
45
|
+
cosh: arity1(Math.cosh),
|
|
46
|
+
tanh: arity1(Math.tanh),
|
|
47
|
+
pow: (a) => {
|
|
48
|
+
if (a.length !== 2)
|
|
49
|
+
throw new FormulaError('pow expects 2 arguments');
|
|
50
|
+
return Math.pow(a[0], a[1]);
|
|
51
|
+
},
|
|
52
|
+
atan2: (a) => {
|
|
53
|
+
if (a.length !== 2)
|
|
54
|
+
throw new FormulaError('atan2 expects 2 arguments');
|
|
55
|
+
return Math.atan2(a[0], a[1]);
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
/** Names of the built-in functions this parser documents. @internal */
|
|
59
|
+
export const BUILTIN_FUNCTION_NAMES = Object.keys(FUNCTIONS);
|
|
60
|
+
/**
|
|
61
|
+
* Function names from other conventions, each with the documented function that computes the same
|
|
62
|
+
* value (audit I4). An unknown name still fails: the equivalent is only named in the message, so a
|
|
63
|
+
* formula never means something its author did not write. Every `use` is in
|
|
64
|
+
* {@link BUILTIN_FUNCTION_NAMES}.
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
67
|
+
export const FUNCTION_EQUIVALENTS = {
|
|
68
|
+
lg: { use: 'log10', meaning: 'the base-10 logarithm' },
|
|
69
|
+
lb: { use: 'log2', meaning: 'the base-2 logarithm' },
|
|
70
|
+
ld: { use: 'log2', meaning: 'the base-2 logarithm' },
|
|
71
|
+
arcsin: { use: 'asin', meaning: 'the inverse sine' },
|
|
72
|
+
arccos: { use: 'acos', meaning: 'the inverse cosine' },
|
|
73
|
+
arctan: { use: 'atan', meaning: 'the inverse tangent' },
|
|
74
|
+
arctg: { use: 'atan', meaning: 'the inverse tangent' },
|
|
75
|
+
tg: { use: 'tan', meaning: 'the tangent' },
|
|
76
|
+
fabs: { use: 'abs', meaning: 'the absolute value' },
|
|
77
|
+
power: { use: 'pow', meaning: 'a power' },
|
|
78
|
+
arctan2: { use: 'atan2', meaning: 'the two-argument inverse tangent' },
|
|
79
|
+
};
|
|
80
|
+
/** The documented functions as help and diagnostics list them, with the base of `log` stated. @internal */
|
|
81
|
+
export const BUILTIN_FUNCTION_LIST = BUILTIN_FUNCTION_NAMES.map((n) => n === 'log' ? 'log (natural, = ln)' : n).join(', ');
|
|
82
|
+
/**
|
|
83
|
+
* The diagnostic for a function this parser does not document: the documented equivalent when the
|
|
84
|
+
* name is a known alias or differs only in case, then the documented list. @internal
|
|
85
|
+
*/
|
|
86
|
+
export function unknownFunctionMessage(name) {
|
|
87
|
+
const alias = FUNCTION_EQUIVALENTS[name];
|
|
88
|
+
const lower = name.toLowerCase();
|
|
89
|
+
const use = alias?.use ?? (lower !== name && BUILTIN_FUNCTION_NAMES.includes(lower) ? lower : FUNCTION_EQUIVALENTS[lower]?.use);
|
|
90
|
+
const meaning = alias?.meaning ?? FUNCTION_EQUIVALENTS[lower]?.meaning;
|
|
91
|
+
const hint = use === undefined
|
|
92
|
+
? ''
|
|
93
|
+
: ` For ${meaning ?? `the function ${use}`} use ${use}(…), which the formula parser evaluates.`;
|
|
94
|
+
return `unknown function '${name}'.${hint} Documented functions: ${BUILTIN_FUNCTION_LIST}.`;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Call a documented function by name, with this parser's arity checks. Supplies
|
|
98
|
+
* a function MathTS does not define (`ln`).
|
|
99
|
+
* @internal
|
|
100
|
+
*/
|
|
101
|
+
export function callBuiltinFunction(name, args) {
|
|
102
|
+
const fn = FUNCTIONS[name];
|
|
103
|
+
if (fn === undefined)
|
|
104
|
+
throw new FormulaError(unknownFunctionMessage(name));
|
|
105
|
+
return fn(args);
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=formula-contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formula-contract.js","sourceRoot":"","sources":["../../src/numerical/formula-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,8 @@
|
|
|
7
7
|
* dimensionally HOMOGENEOUS and what dimension it has — unifying string→AST
|
|
8
8
|
* with AST→dimension.
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* (`createFormulaDimensionChecker` + the dimensional helpers), so the check
|
|
13
|
-
* is available WITHOUT the MathTS peer (`builtinFormulaDimensionChecker`).
|
|
10
|
+
* The MathTS AST is the only front-end. It adapts to a normalized `PNode`,
|
|
11
|
+
* and the dimensional transpilation lives on that node.
|
|
14
12
|
*
|
|
15
13
|
* @module numerical/formula-dimension
|
|
16
14
|
*/
|
|
@@ -36,6 +34,31 @@ export declare function formulaSymbolDimension(name: string): Dimension | undefi
|
|
|
36
34
|
* @internal
|
|
37
35
|
*/
|
|
38
36
|
export declare const ELEMENTARY_CHARGE_MIX_MESSAGE = "e is the elementary charge and is not dimensionless here. Declare it or bind a value (e=<number>) if you mean a different quantity, or write Euler's number as exp(x). The catalog writes the eccentricity factor as one_minus_e_sq.";
|
|
37
|
+
/** Normalized parse node — the shape the MathTS AST adapts to. @internal */
|
|
38
|
+
type PNode = {
|
|
39
|
+
kind: 'num';
|
|
40
|
+
value: number;
|
|
41
|
+
} | {
|
|
42
|
+
kind: 'sym';
|
|
43
|
+
name: string;
|
|
44
|
+
} | {
|
|
45
|
+
kind: 'neg';
|
|
46
|
+
arg: PNode;
|
|
47
|
+
} | {
|
|
48
|
+
kind: 'op';
|
|
49
|
+
op: '+' | '-' | '*' | '/';
|
|
50
|
+
args: PNode[];
|
|
51
|
+
} | {
|
|
52
|
+
kind: 'pow';
|
|
53
|
+
base: PNode;
|
|
54
|
+
exp: PNode;
|
|
55
|
+
} | {
|
|
56
|
+
kind: 'call';
|
|
57
|
+
fn: string;
|
|
58
|
+
args: PNode[];
|
|
59
|
+
};
|
|
60
|
+
/** The normalized node {@link parseFormulaPNode} returns. @internal */
|
|
61
|
+
export type FormulaPNode = PNode;
|
|
39
62
|
/** The result of a formula dimensional check. */
|
|
40
63
|
interface FormulaDimensionResult {
|
|
41
64
|
/** True iff the formula is dimensionally homogeneous and well-formed. */
|
|
@@ -57,13 +80,13 @@ export interface FormulaDimensionChecker {
|
|
|
57
80
|
* @throws {FormulaDimensionError} on a parse error or non-homogeneity. */
|
|
58
81
|
parse(expr: string, dims: Readonly<Record<string, Dimension>>): ParsedPhysics;
|
|
59
82
|
}
|
|
60
|
-
/** The built-in (Path B) dimensional checker — always available, no peer. */
|
|
61
|
-
export declare function builtinFormulaDimensionChecker(): FormulaDimensionChecker;
|
|
62
83
|
/**
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
84
|
+
* Parse a formula to the normalized node the binding reader evaluates.
|
|
85
|
+
* `euler` is refused here so a binding never becomes Math.E.
|
|
86
|
+
* @internal
|
|
66
87
|
*/
|
|
67
|
-
export declare function
|
|
88
|
+
export declare function parseFormulaPNode(expr: string): PNode;
|
|
89
|
+
/** The dimensional checker over the MathTS AST. The historical name stays. */
|
|
90
|
+
export declare function builtinFormulaDimensionChecker(): FormulaDimensionChecker;
|
|
68
91
|
export {};
|
|
69
92
|
//# sourceMappingURL=formula-dimension.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formula-dimension.d.ts","sourceRoot":"","sources":["../../src/numerical/formula-dimension.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"formula-dimension.d.ts","sourceRoot":"","sources":["../../src/numerical/formula-dimension.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGzD,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,6BAA6B,CAAC;AAK9E;;cAEc;AACd,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAMD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAM1E;AAyDD;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,yOAC+L,CAAC;AA2C1O,4EAA4E;AAC5E,KAAK,KAAK,GACN;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,KAAK,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAAC,IAAI,EAAE,KAAK,EAAE,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,KAAK,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,KAAK,EAAE,CAAA;CAAE,CAAC;AAEhD,uEAAuE;AACvE,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC;AAmFjC,iDAAiD;AACjD,UAAU,sBAAsB;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,wCAAwC;IACxC,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC;IACzB,wCAAwC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,oFAAoF;AACpF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CAC/B;AAED,kFAAkF;AAClF,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,GAAG,sBAAsB,CAAC;IACvF;+EAC2E;IAC3E,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,GAAG,aAAa,CAAC;CAC/E;AA8CD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAIrD;AA0BD,8EAA8E;AAC9E,wBAAgB,8BAA8B,IAAI,uBAAuB,CAExE"}
|
|
@@ -7,18 +7,17 @@
|
|
|
7
7
|
* dimensionally HOMOGENEOUS and what dimension it has — unifying string→AST
|
|
8
8
|
* with AST→dimension.
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* (`createFormulaDimensionChecker` + the dimensional helpers), so the check
|
|
13
|
-
* is available WITHOUT the MathTS peer (`builtinFormulaDimensionChecker`).
|
|
10
|
+
* The MathTS AST is the only front-end. It adapts to a normalized `PNode`,
|
|
11
|
+
* and the dimensional transpilation lives on that node.
|
|
14
12
|
*
|
|
15
13
|
* @module numerical/formula-dimension
|
|
16
14
|
*/
|
|
15
|
+
import { parse as parseMathTs } from '@danielsimonjr/mathts-functions';
|
|
17
16
|
import { CHARGE, DIMENSIONLESS, ENERGY } from '../dimensional/types.js';
|
|
18
17
|
import { equals, format, multiply } from '../dimensional/algebra.js';
|
|
19
18
|
import { validate } from '../dimensional/validator.js';
|
|
20
19
|
import { sym } from '../dimensional/ast-builders.js';
|
|
21
|
-
import { EULER_NUMBER_ERROR,
|
|
20
|
+
import { EULER_NUMBER_ERROR, FormulaError } from './formula-contract.js';
|
|
22
21
|
/** A formula cannot be dimensionally analyzed (undeclared symbol, variable
|
|
23
22
|
* exponent, transcendental of a dimensional argument, unsupported node).
|
|
24
23
|
* @public */
|
|
@@ -148,25 +147,6 @@ function mathtsToPNode(node) {
|
|
|
148
147
|
throw new FormulaDimensionError(`unsupported node '${node.type}'`);
|
|
149
148
|
}
|
|
150
149
|
}
|
|
151
|
-
/** Adapt a built-in `FormulaAstNode` to a `PNode` (pure shape map). */
|
|
152
|
-
function pathBToPNode(node) {
|
|
153
|
-
switch (node.kind) {
|
|
154
|
-
case 'num':
|
|
155
|
-
return { kind: 'num', value: node.value };
|
|
156
|
-
case 'sym':
|
|
157
|
-
return { kind: 'sym', name: node.name };
|
|
158
|
-
case 'unary':
|
|
159
|
-
return node.op === '-'
|
|
160
|
-
? { kind: 'neg', arg: pathBToPNode(node.arg) }
|
|
161
|
-
: pathBToPNode(node.arg); // unary '+' is identity
|
|
162
|
-
case 'bin':
|
|
163
|
-
return node.op === '^'
|
|
164
|
-
? { kind: 'pow', base: pathBToPNode(node.left), exp: pathBToPNode(node.right) }
|
|
165
|
-
: { kind: 'op', op: node.op, args: [pathBToPNode(node.left), pathBToPNode(node.right)] };
|
|
166
|
-
case 'call':
|
|
167
|
-
return { kind: 'call', fn: node.fn, args: node.args.map(pathBToPNode) };
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
150
|
/** Fold a (presumed constant) `PNode` to a finite number, else throw. */
|
|
171
151
|
function pnodeConstant(node) {
|
|
172
152
|
const v = evalConstPNode(node);
|
|
@@ -259,20 +239,53 @@ function createFormulaDimensionChecker(toExprNode) {
|
|
|
259
239
|
},
|
|
260
240
|
};
|
|
261
241
|
}
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
242
|
+
function parsedMathNode(expr) {
|
|
243
|
+
try {
|
|
244
|
+
return parseMathTs(expr);
|
|
245
|
+
}
|
|
246
|
+
catch (e) {
|
|
247
|
+
throw new FormulaError(`parse error: ${e instanceof Error ? e.message : String(e)}`);
|
|
248
|
+
}
|
|
265
249
|
}
|
|
266
250
|
/**
|
|
267
|
-
*
|
|
268
|
-
*
|
|
269
|
-
*
|
|
251
|
+
* Parse a formula to the normalized node the binding reader evaluates.
|
|
252
|
+
* `euler` is refused here so a binding never becomes Math.E.
|
|
253
|
+
* @internal
|
|
270
254
|
*/
|
|
271
|
-
export
|
|
272
|
-
const
|
|
273
|
-
|
|
274
|
-
|
|
255
|
+
export function parseFormulaPNode(expr) {
|
|
256
|
+
const node = mathtsToPNode(parsedMathNode(expr));
|
|
257
|
+
refuseEuler(node);
|
|
258
|
+
return node;
|
|
259
|
+
}
|
|
260
|
+
function refuseEuler(node) {
|
|
261
|
+
switch (node.kind) {
|
|
262
|
+
case 'sym':
|
|
263
|
+
if (node.name === 'euler')
|
|
264
|
+
throw new FormulaError(EULER_NUMBER_ERROR);
|
|
265
|
+
return;
|
|
266
|
+
case 'neg':
|
|
267
|
+
refuseEuler(node.arg);
|
|
268
|
+
return;
|
|
269
|
+
case 'op':
|
|
270
|
+
for (const a of node.args)
|
|
271
|
+
refuseEuler(a);
|
|
272
|
+
return;
|
|
273
|
+
case 'pow':
|
|
274
|
+
refuseEuler(node.base);
|
|
275
|
+
refuseEuler(node.exp);
|
|
276
|
+
return;
|
|
277
|
+
case 'call':
|
|
278
|
+
if (node.fn === 'euler')
|
|
279
|
+
throw new FormulaError(EULER_NUMBER_ERROR);
|
|
280
|
+
for (const a of node.args)
|
|
281
|
+
refuseEuler(a);
|
|
282
|
+
return;
|
|
283
|
+
case 'num':
|
|
284
|
+
return;
|
|
275
285
|
}
|
|
276
|
-
|
|
286
|
+
}
|
|
287
|
+
/** The dimensional checker over the MathTS AST. The historical name stays. */
|
|
288
|
+
export function builtinFormulaDimensionChecker() {
|
|
289
|
+
return createFormulaDimensionChecker((expr, dims) => normToExpr(mathtsToPNode(parsedMathNode(expr)), dims));
|
|
277
290
|
}
|
|
278
291
|
//# sourceMappingURL=formula-dimension.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formula-dimension.js","sourceRoot":"","sources":["../../src/numerical/formula-dimension.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"formula-dimension.js","sourceRoot":"","sources":["../../src/numerical/formula-dimension.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEzE;;cAEc;AACd,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED;qFACqF;AACrF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AAExE;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,MAAM,CAAC;IAChC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,MAAM,CAAC;IAChC,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,aAAa,CAAC;IACnD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;iFACiF;AACjF,MAAM,iBAAiB,GAA+C;IACpE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM;IAC7D,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAC7E,CAAC;AAEF;8DAC8D;AAC9D,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAEnF,MAAM,EAAE,GAAG,CAAC,CAA8B,EAAE,IAAgB,EAAY,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACzG,MAAM,OAAO,GAAG,CAAC,IAAc,EAAE,GAAW,EAAY,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;AAC5G,MAAM,cAAc,GAAG,CAAC,EAAoB,EAAE,GAAa,EAAY,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AAChH,MAAM,OAAO,GAAG,CAAC,GAAa,EAAY,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AAEpE,qFAAqF;AACrF,SAAS,iBAAiB,CAAC,EAAU,EAAE,OAAiB;IACtD,IAAI,EAAE,KAAK,KAAK;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,EAAE,IAAI,iBAAiB;QAAE,OAAO,cAAc,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IACnF,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,OAAO,kBAAkB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACxE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;mDACmD;AACnD,SAAS,aAAa,CAAC,IAAY,EAAE,IAAyC;IAC5E,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;QAAE,MAAM,IAAI,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;IAC7F,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjD,MAAM,IAAI,qBAAqB,CAC7B,sBAAsB,IAAI,sFAAsF,CACjH,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEhD,6EAA6E;AAC7E,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAAC,IAAyC;IACpE,OAAO,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAc;IACvC,OAAO,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GACxC,uOAAuO,CAAC;AAE1O,wEAAwE;AACxE,SAAS,WAAW,CAAC,IAAc;IACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzB,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;QAC1C,MAAM,IAAI,qBAAqB,CAC7B,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,4CAA4C,CACtE,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC,iBAAiB,CAAC;AAC7B,CAAC;AAED;0EAC0E;AAC1E,SAAS,kBAAkB,CAAC,EAAU,EAAE,WAAqB;IAC3D,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,qBAAqB,CAC7B,GAAG,EAAE,6CAA6C,MAAM,CAAC,MAAM,CAAC,EAAE,CACnE,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;AAC1C,CAAC;AAgCD,4EAA4E;AAC5E,SAAS,aAAa,CAAC,IAAc;IACnC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,cAAc;YACjB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,KAAK,YAAY;YACf,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAK,EAAE,CAAC;QAC3C,KAAK,iBAAiB;YACpB,OAAO,aAAa,CAAC,IAAI,CAAC,OAAQ,CAAC,CAAC;QACtC,KAAK,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAClD,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG;gBAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC;gBAC7E,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;YAC3C,CAAC;YACD,MAAM,IAAI,qBAAqB,CAAC,yBAAyB,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACvE,CAAC;QACD,KAAK,cAAc;YACjB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5G;YACE,MAAM,IAAI,qBAAqB,CAAC,qBAAqB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,SAAS,aAAa,CAAC,IAAW;IAChC,MAAM,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,qBAAqB,CAAC,4CAA4C,CAAC,CAAC;IACvG,OAAO,CAAC,CAAC;AACX,CAAC;AACD,SAAS,cAAc,CAAC,IAAW;IACjC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,KAAK,KAAK;YACR,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnC,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACvE,KAAK,IAAI,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACxC,QAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;gBAChB,KAAK,GAAG,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9C,KAAK,GAAG,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpE,KAAK,GAAG,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9C,KAAK,GAAG,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QACD,6DAA6D;QAC7D;YACE,MAAM,IAAI,qBAAqB,CAAC,qCAAqC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,SAAS,UAAU,CAAC,IAAW,EAAE,IAAyC;IACxE,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,KAAK;YACR,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC;QAChD,KAAK,KAAK;YACR,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,KAAK,KAAK;YACR,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,4BAA4B;QACjE,KAAK,IAAI;YACP,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAChE,KAAK,KAAK;YACR,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACvE,KAAK,MAAM,EAAE,CAAC;YACZ,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACnB,IAAI,EAAE,KAAK,MAAM;gBAAE,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACvE,IAAI,EAAE,KAAK,MAAM;gBAAE,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACzE,IAAI,EAAE,KAAK,KAAK;gBAAE,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9F,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YACrE,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;YAC1B,MAAM,IAAI,qBAAqB,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;AACH,CAAC;AA4BD;4EAC4E;AAC5E,SAAS,6BAA6B,CACpC,UAAiF;IAEjF,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,IAAyC,EAAiB,EAAE;QACvF,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,qBAAqB;gBAAE,MAAM,CAAC,CAAC;YAChD,MAAM,IAAI,qBAAqB,CAAC,gBAAgB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,+BAA+B,CAAC;YACtE,MAAM,WAAW,GACf,eAAe,CAAC,IAAI,CAAC;gBACrB,mBAAmB,CAAC,IAAI,CAAC;gBACzB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACzF,MAAM,IAAI,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,6BAA6B,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnG,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAC5D,CAAC,CAAC;IACF,OAAO;QACL,KAAK;QACL,KAAK,CAAC,IAAI,EAAE,IAAI;YACd,IAAI,CAAC;gBACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YACxD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,IAAI,CAAwB,CAAC;IAClD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,YAAY,CAAC,gBAAgB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,IAAI,GAAG,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,WAAW,CAAC,IAAI,CAAC,CAAC;IAClB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,IAAW;IAC9B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,KAAK;YACR,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;gBAAE,MAAM,IAAI,YAAY,CAAC,kBAAkB,CAAC,CAAC;YACtE,OAAO;QACT,KAAK,KAAK;YACR,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO;QACT,KAAK,IAAI;YACP,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI;gBAAE,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1C,OAAO;QACT,KAAK,KAAK;YACR,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO;QACT,KAAK,MAAM;YACT,IAAI,IAAI,CAAC,EAAE,KAAK,OAAO;gBAAE,MAAM,IAAI,YAAY,CAAC,kBAAkB,CAAC,CAAC;YACpE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI;gBAAE,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1C,OAAO;QACT,KAAK,KAAK;YACR,OAAO;IACX,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,8BAA8B;IAC5C,OAAO,6BAA6B,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9G,CAAC"}
|
|
@@ -1,27 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* MathTS-backed scalar-formula parser
|
|
3
|
-
* docs/planning/MathTS-Formula-Integration-Design-Note.md).
|
|
2
|
+
* MathTS-backed scalar-formula parser.
|
|
4
3
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* assembled mathjs-style engine (`parse(expr) → Node`, `node.evaluate(scope)`).
|
|
8
|
-
* The optional peer is loaded dynamically (it is NOT present at tsc time —
|
|
9
|
-
* the ambient declaration in `mathts-functions.ambient.d.ts` covers it), so
|
|
10
|
-
* the package still builds and runs without it; the registry
|
|
11
|
-
* (`formula-registry.ts`) falls back to Path B when it is absent.
|
|
4
|
+
* Backed by `@danielsimonjr/mathts-functions` (`parse(expr) → Node`,
|
|
5
|
+
* `node.evaluate(scope)`). The package is a required dependency.
|
|
12
6
|
*
|
|
13
7
|
* SCALAR-ONLY guard: the CLI/inference contract returns a `number`. If a
|
|
14
8
|
* formula evaluates to a non-number (matrix, complex, unit, function), this
|
|
15
9
|
* throws a {@link FormulaError} rather than leaking MathTS types through the
|
|
16
|
-
* seam
|
|
10
|
+
* seam.
|
|
11
|
+
*
|
|
12
|
+
* Bare `e` is the elementary charge. MathTS `{ physics: true, charge: 'scalar' }`
|
|
13
|
+
* binds that symbol to the SI magnitude `1.602176634e-19`, so `1-e^2` is
|
|
14
|
+
* ordinary arithmetic. `{ physics: true }` without `charge: 'scalar'` is a
|
|
15
|
+
* Unit, and subtract does not accept it. Euler's number is `exp(x)`. The name
|
|
16
|
+
* `euler` is refused. `E` stays unbound.
|
|
17
17
|
*
|
|
18
18
|
* @module numerical/formula-mathts
|
|
19
19
|
*/
|
|
20
|
-
import type { FormulaParser } from './formula.js';
|
|
21
|
-
/**
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
*/
|
|
26
|
-
export declare function loadMathtsFormulaParser(): Promise<FormulaParser>;
|
|
20
|
+
import type { CompiledFormula, FormulaParser } from './formula-contract.js';
|
|
21
|
+
/** The MathTS formula parser. @internal */
|
|
22
|
+
export declare const mathtsFormulaParser: FormulaParser;
|
|
23
|
+
/** Parse a scalar formula. @internal */
|
|
24
|
+
export declare function parseFormula(expr: string): CompiledFormula;
|
|
27
25
|
//# sourceMappingURL=formula-mathts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formula-mathts.d.ts","sourceRoot":"","sources":["../../src/numerical/formula-mathts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"formula-mathts.d.ts","sourceRoot":"","sources":["../../src/numerical/formula-mathts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAmK5E,2CAA2C;AAC3C,eAAO,MAAM,mBAAmB,EAAE,aAAuD,CAAC;AAE1F,wCAAwC;AACxC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAE1D"}
|
|
@@ -1,32 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* MathTS-backed scalar-formula parser
|
|
3
|
-
* docs/planning/MathTS-Formula-Integration-Design-Note.md).
|
|
2
|
+
* MathTS-backed scalar-formula parser.
|
|
4
3
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* assembled mathjs-style engine (`parse(expr) → Node`, `node.evaluate(scope)`).
|
|
8
|
-
* The optional peer is loaded dynamically (it is NOT present at tsc time —
|
|
9
|
-
* the ambient declaration in `mathts-functions.ambient.d.ts` covers it), so
|
|
10
|
-
* the package still builds and runs without it; the registry
|
|
11
|
-
* (`formula-registry.ts`) falls back to Path B when it is absent.
|
|
4
|
+
* Backed by `@danielsimonjr/mathts-functions` (`parse(expr) → Node`,
|
|
5
|
+
* `node.evaluate(scope)`). The package is a required dependency.
|
|
12
6
|
*
|
|
13
7
|
* SCALAR-ONLY guard: the CLI/inference contract returns a `number`. If a
|
|
14
8
|
* formula evaluates to a non-number (matrix, complex, unit, function), this
|
|
15
9
|
* throws a {@link FormulaError} rather than leaking MathTS types through the
|
|
16
|
-
* seam
|
|
10
|
+
* seam.
|
|
11
|
+
*
|
|
12
|
+
* Bare `e` is the elementary charge. MathTS `{ physics: true, charge: 'scalar' }`
|
|
13
|
+
* binds that symbol to the SI magnitude `1.602176634e-19`, so `1-e^2` is
|
|
14
|
+
* ordinary arithmetic. `{ physics: true }` without `charge: 'scalar'` is a
|
|
15
|
+
* Unit, and subtract does not accept it. Euler's number is `exp(x)`. The name
|
|
16
|
+
* `euler` is refused. `E` stays unbound.
|
|
17
17
|
*
|
|
18
18
|
* @module numerical/formula-mathts
|
|
19
19
|
*/
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
/**
|
|
23
|
-
|
|
24
|
-
* number; the physics reading is the elementary charge, and a scope entry
|
|
25
|
-
* replaces it. The name `euler` is refused: Euler's number is `exp(x)`.
|
|
26
|
-
*/
|
|
27
|
-
const PHYSICS_VALUES = { e: E_SI };
|
|
28
|
-
/** Names that are constants here even when MathTS does not know them. */
|
|
29
|
-
const PHYSICS_CONSTANT_NAMES = new Set(['e']);
|
|
20
|
+
import { compileExpr, parse as parseMathTs } from '@danielsimonjr/mathts-functions';
|
|
21
|
+
import { BUILTIN_FUNCTION_NAMES, callBuiltinFunction, EULER_NUMBER_ERROR, FormulaError, unknownFunctionMessage } from './formula-contract.js';
|
|
22
|
+
/** Bare `e` is the SI magnitude, not the coulomb Unit. */
|
|
23
|
+
const PHYSICS_SCALAR = { physics: true, charge: 'scalar' };
|
|
30
24
|
/**
|
|
31
25
|
* Build a {@link FormulaParser} bound to an already-loaded mathts-functions
|
|
32
26
|
* module. Pure (no I/O) — the dynamic import lives in the registry.
|
|
@@ -54,8 +48,9 @@ function createMathtsFormulaParser(mod) {
|
|
|
54
48
|
// treating it as a built-in dropped it from the free-variable list, so
|
|
55
49
|
// `sqrt(gamma*pressure/density)` died as "undeclared symbol 'gamma'".
|
|
56
50
|
// Only a name that evaluates to a number is a MathTS constant (`pi`, `tau`).
|
|
57
|
-
// Bare `e` is one of those
|
|
58
|
-
//
|
|
51
|
+
// Bare `e` is one of those under MathTS's default (Euler's number). Evaluation
|
|
52
|
+
// below reads it as the elementary charge through `{ physics: true, charge: 'scalar' }`.
|
|
53
|
+
// An explicit scope `e` still wins. The name `euler` is refused below.
|
|
59
54
|
// A call such as `gamma(5)` is still a callee, decided separately.
|
|
60
55
|
const valueConstantCache = new Map();
|
|
61
56
|
const isValueConstant = (name) => {
|
|
@@ -113,8 +108,11 @@ function createMathtsFormulaParser(mod) {
|
|
|
113
108
|
.filter((n) => n.isSymbolNode === true)
|
|
114
109
|
.map((n) => n.name)
|
|
115
110
|
.filter((n) => typeof n === 'string')
|
|
116
|
-
.filter((n) => !callees.has(n) && !isValueConstant(n)
|
|
111
|
+
.filter((n) => !callees.has(n) && !isValueConstant(n))),
|
|
117
112
|
].sort();
|
|
113
|
+
// `compileExpr` applies `{ physics: true, charge: 'scalar' }` on each
|
|
114
|
+
// evaluation, so bare `e` is the SI magnitude and a scope entry for `e` wins.
|
|
115
|
+
const compiled = compileExpr(expr, PHYSICS_SCALAR);
|
|
118
116
|
return {
|
|
119
117
|
source: expr,
|
|
120
118
|
variables,
|
|
@@ -123,10 +121,13 @@ function createMathtsFormulaParser(mod) {
|
|
|
123
121
|
throw new FormulaError(unknownFunctionMessage(unknownCallee));
|
|
124
122
|
let result;
|
|
125
123
|
try {
|
|
126
|
-
result =
|
|
124
|
+
result = compiled.evaluate({ ...shims, ...scope });
|
|
127
125
|
}
|
|
128
126
|
catch (err) {
|
|
129
|
-
|
|
127
|
+
// `compileExpr` quotes the name (`Undefined symbol "process"`).
|
|
128
|
+
// The interpreter path reports `Undefined symbol process`.
|
|
129
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
130
|
+
throw new FormulaError(message.replace(/^Undefined symbol "([^"]+)"$/, 'Undefined symbol $1'));
|
|
130
131
|
}
|
|
131
132
|
if (typeof result !== 'number' || !Number.isFinite(result)) {
|
|
132
133
|
// typeof Infinity and NaN is "number", which reads as a type error.
|
|
@@ -152,16 +153,13 @@ function describeNonFinite(result) {
|
|
|
152
153
|
}
|
|
153
154
|
return typeof result;
|
|
154
155
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
throw new FormulaError('mathts-functions: no parse() export');
|
|
164
|
-
}
|
|
165
|
-
return createMathtsFormulaParser(mod);
|
|
156
|
+
const mathTsModule = {
|
|
157
|
+
parse: (expr) => parseMathTs(expr),
|
|
158
|
+
};
|
|
159
|
+
/** The MathTS formula parser. @internal */
|
|
160
|
+
export const mathtsFormulaParser = createMathtsFormulaParser(mathTsModule);
|
|
161
|
+
/** Parse a scalar formula. @internal */
|
|
162
|
+
export function parseFormula(expr) {
|
|
163
|
+
return mathtsFormulaParser.parse(expr);
|
|
166
164
|
}
|
|
167
165
|
//# sourceMappingURL=formula-mathts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formula-mathts.js","sourceRoot":"","sources":["../../src/numerical/formula-mathts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"formula-mathts.js","sourceRoot":"","sources":["../../src/numerical/formula-mathts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Formula-parser registry
|
|
2
|
+
* Formula-parser registry.
|
|
3
3
|
*
|
|
4
|
-
* `getFormulaParser()` returns the MathTS-backed parser
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* and cached. A broken or absent MathTS never breaks the caller — it falls
|
|
8
|
-
* back silently to Path B.
|
|
9
|
-
*
|
|
10
|
-
* The CLI and any inference code depend only on the {@link FormulaParser}
|
|
11
|
-
* interface, so swapping Path B ↔ Path A is transparent.
|
|
4
|
+
* `getFormulaParser()` returns the MathTS-backed parser. The MathTS packages
|
|
5
|
+
* are required dependencies, so there is no absent-peer branch and no Path B
|
|
6
|
+
* parser.
|
|
12
7
|
*
|
|
13
8
|
* @module numerical/formula-registry
|
|
14
9
|
*/
|
|
15
|
-
import type { FormulaParser } from './formula.js';
|
|
10
|
+
import type { FormulaParser } from './formula-contract.js';
|
|
16
11
|
import type { Dimension } from '../dimensional/types.js';
|
|
17
12
|
import type { FormulaDimensionChecker, ParsedPhysics } from './formula-dimension.js';
|
|
18
13
|
type FormulaParserKind = 'mathts' | 'builtin';
|
|
19
|
-
/** Resolve the active formula parser
|
|
14
|
+
/** Resolve the active formula parser. It is the MathTS parser. @internal */
|
|
20
15
|
export declare function getFormulaParser(): Promise<FormulaParser>;
|
|
21
|
-
/** Which parser is active
|
|
16
|
+
/** Which parser is active. Always `mathts`. @internal */
|
|
22
17
|
export declare function getFormulaParserKind(): Promise<FormulaParserKind>;
|
|
23
18
|
/**
|
|
24
|
-
* The dimensional checker for user formulas
|
|
25
|
-
*
|
|
26
|
-
* smoke-tests clean, else the self-contained Path B AST — both transpile to
|
|
27
|
-
* the same `ExprNode`, so the dimensional verdict is identical. @internal
|
|
19
|
+
* The dimensional checker for user formulas. It transpiles the MathTS AST.
|
|
20
|
+
* @internal
|
|
28
21
|
*/
|
|
29
22
|
export declare function getFormulaDimensionChecker(): Promise<FormulaDimensionChecker>;
|
|
30
23
|
/**
|
|
31
|
-
* Parse physics text to a dimensional `ExprNode` + its inferred dimension
|
|
32
|
-
*
|
|
33
|
-
* built-in parser). The single public string→`ExprNode` entry point.
|
|
24
|
+
* Parse physics text to a dimensional `ExprNode` + its inferred dimension.
|
|
25
|
+
* The single public string→`ExprNode` entry point.
|
|
34
26
|
*
|
|
35
27
|
* @throws {FormulaDimensionError} on a parse error or non-homogeneity.
|
|
36
28
|
* @public
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formula-registry.d.ts","sourceRoot":"","sources":["../../src/numerical/formula-registry.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"formula-registry.d.ts","sourceRoot":"","sources":["../../src/numerical/formula-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGrF,KAAK,iBAAiB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9C,4EAA4E;AAC5E,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CAE/D;AAED,yDAAyD;AACzD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAEvE;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAEnF;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,GACxC,OAAO,CAAC,aAAa,CAAC,CAExB"}
|