universal-physics-tensor 8.0.0 → 9.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 +8 -6
- package/data/atlas/atlas.json +21 -21
- package/data/atlas/atlas.jsonld +1 -1
- package/data/atlas/diffusion.json +5 -5
- package/data/atlas/oscillators.json +7 -7
- package/data/atlas/waves.json +11 -11
- package/data/bridge-catalog.json +490 -338
- package/data/bridge-catalog.schema.json +566 -40
- package/data/quantities.json +230 -218
- package/data/quantities.schema.json +52 -0
- package/data/units.json +1149 -0
- package/data/units.schema.json +124 -0
- package/dist/atlas/association.d.ts +1 -1
- package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
- package/dist/atlas/benchmark/hybrid-retrieval.js +2 -5
- package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
- package/dist/atlas/physjs-entries.generated.d.ts +1601 -220
- package/dist/atlas/physjs-entries.generated.d.ts.map +1 -1
- package/dist/atlas/physjs-entries.generated.js +1854 -345
- package/dist/atlas/physjs-entries.generated.js.map +1 -1
- package/dist/atlas/physjs-ref.d.ts +89 -89
- package/dist/atlas/physjs-ref.d.ts.map +1 -1
- package/dist/atlas/physjs-ref.js +128 -176
- package/dist/atlas/physjs-ref.js.map +1 -1
- package/dist/atlas/proof-target.d.ts +16 -8
- package/dist/atlas/proof-target.d.ts.map +1 -1
- package/dist/atlas/proof-target.js +34 -31
- package/dist/atlas/proof-target.js.map +1 -1
- package/dist/bridges/catalog-adapter.d.ts.map +1 -1
- package/dist/bridges/catalog-adapter.js +5 -5
- package/dist/bridges/catalog-adapter.js.map +1 -1
- package/dist/bridges/catalog-load.d.ts +7 -0
- package/dist/bridges/catalog-load.d.ts.map +1 -1
- package/dist/bridges/catalog-load.js +69 -13
- package/dist/bridges/catalog-load.js.map +1 -1
- package/dist/bridges/catalog-types.d.ts +51 -6
- package/dist/bridges/catalog-types.d.ts.map +1 -1
- package/dist/bridges/evaluation-errors.d.ts +76 -0
- package/dist/bridges/evaluation-errors.d.ts.map +1 -0
- package/dist/bridges/evaluation-errors.js +118 -0
- package/dist/bridges/evaluation-errors.js.map +1 -0
- package/dist/bridges/evaluator-inputs.d.ts +5 -3
- package/dist/bridges/evaluator-inputs.d.ts.map +1 -1
- package/dist/bridges/evaluator-inputs.js +24 -24
- package/dist/bridges/evaluator-inputs.js.map +1 -1
- package/dist/bridges/evaluators.d.ts +32 -7
- package/dist/bridges/evaluators.d.ts.map +1 -1
- package/dist/bridges/evaluators.js +131 -29
- package/dist/bridges/evaluators.js.map +1 -1
- package/dist/bridges/expr-parse.d.ts +11 -3
- package/dist/bridges/expr-parse.d.ts.map +1 -1
- package/dist/bridges/expr-parse.js +46 -153
- package/dist/bridges/expr-parse.js.map +1 -1
- package/dist/bridges/holds.d.ts +11 -7
- package/dist/bridges/holds.d.ts.map +1 -1
- package/dist/bridges/holds.js +113 -234
- package/dist/bridges/holds.js.map +1 -1
- package/dist/bridges/input-contract.d.ts +65 -0
- package/dist/bridges/input-contract.d.ts.map +1 -0
- package/dist/bridges/input-contract.js +97 -0
- package/dist/bridges/input-contract.js.map +1 -0
- package/dist/bridges/notices.d.ts +11 -0
- package/dist/bridges/notices.d.ts.map +1 -0
- package/dist/bridges/notices.js +22 -0
- package/dist/bridges/notices.js.map +1 -0
- package/dist/canonical/canonical-equation.d.ts +31 -0
- package/dist/canonical/canonical-equation.d.ts.map +1 -1
- package/dist/canonical/entries/atomic.d.ts.map +1 -1
- package/dist/canonical/entries/atomic.js +11 -1
- package/dist/canonical/entries/atomic.js.map +1 -1
- package/dist/canonical/entries/condensed-matter.d.ts.map +1 -1
- package/dist/canonical/entries/condensed-matter.js +3 -0
- package/dist/canonical/entries/condensed-matter.js.map +1 -1
- package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -1
- package/dist/canonical/entries/dimensional-classics.js +48 -0
- package/dist/canonical/entries/dimensional-classics.js.map +1 -1
- package/dist/canonical/entries/electromagnetism.d.ts.map +1 -1
- package/dist/canonical/entries/electromagnetism.js +30 -0
- package/dist/canonical/entries/electromagnetism.js.map +1 -1
- package/dist/canonical/entries/fluids-waves.d.ts.map +1 -1
- package/dist/canonical/entries/fluids-waves.js +34 -0
- package/dist/canonical/entries/fluids-waves.js.map +1 -1
- package/dist/canonical/entries/mechanics.d.ts.map +1 -1
- package/dist/canonical/entries/mechanics.js +24 -0
- package/dist/canonical/entries/mechanics.js.map +1 -1
- package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
- package/dist/canonical/entries/nonmonomial.js +15 -4
- package/dist/canonical/entries/nonmonomial.js.map +1 -1
- package/dist/canonical/entries/relativity.d.ts.map +1 -1
- package/dist/canonical/entries/relativity.js +6 -0
- package/dist/canonical/entries/relativity.js.map +1 -1
- package/dist/canonical/entries/statistical-mechanics.d.ts.map +1 -1
- package/dist/canonical/entries/statistical-mechanics.js +19 -0
- package/dist/canonical/entries/statistical-mechanics.js.map +1 -1
- package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
- package/dist/canonical/entries/thermo-nuclear-cosmo.js +15 -0
- package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
- package/dist/cases/index.d.ts +9 -2
- package/dist/cases/index.d.ts.map +1 -1
- package/dist/cases/index.js +26 -7
- package/dist/cases/index.js.map +1 -1
- package/dist/cases/kepler-rv.js +6 -6
- package/dist/cases/kepler-rv.js.map +1 -1
- package/dist/cli/commands/_discovery-opts.d.ts +2 -1
- package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
- package/dist/cli/commands/_discovery-opts.js +7 -12
- package/dist/cli/commands/_discovery-opts.js.map +1 -1
- package/dist/cli/commands/atlas.d.ts.map +1 -1
- package/dist/cli/commands/atlas.js +6 -9
- 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 +1 -2
- package/dist/cli/commands/audit.js.map +1 -1
- package/dist/cli/commands/connectors.d.ts.map +1 -1
- package/dist/cli/commands/connectors.js +8 -9
- package/dist/cli/commands/connectors.js.map +1 -1
- package/dist/cli/commands/derive.js +9 -10
- 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 +3 -4
- 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 +17 -17
- package/dist/cli/commands/eval.js.map +1 -1
- package/dist/cli/commands/evaluate.d.ts +1 -35
- package/dist/cli/commands/evaluate.d.ts.map +1 -1
- package/dist/cli/commands/evaluate.js +56 -187
- 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 +43 -38
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/ground.js +1 -1
- package/dist/cli/commands/ground.js.map +1 -1
- package/dist/cli/commands/map.js +3 -4
- 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 +3 -0
- package/dist/cli/commands/metric.js.map +1 -1
- package/dist/cli/commands/regime.js +1 -1
- package/dist/cli/commands/regime.js.map +1 -1
- package/dist/cli/commands/symbolic.d.ts.map +1 -1
- package/dist/cli/commands/symbolic.js +5 -2
- package/dist/cli/commands/symbolic.js.map +1 -1
- package/dist/cli/commands/testplan.js +3 -3
- package/dist/cli/commands/testplan.js.map +1 -1
- package/dist/cli/conventions.d.ts +6 -7
- package/dist/cli/conventions.d.ts.map +1 -1
- package/dist/cli/conventions.js +19 -28
- package/dist/cli/conventions.js.map +1 -1
- package/dist/cli/euler-guard.d.ts +13 -2
- package/dist/cli/euler-guard.d.ts.map +1 -1
- package/dist/cli/euler-guard.js +17 -3
- package/dist/cli/euler-guard.js.map +1 -1
- package/dist/cli/eval-numbers.d.ts +4 -9
- package/dist/cli/eval-numbers.d.ts.map +1 -1
- package/dist/cli/eval-numbers.js +11 -41
- package/dist/cli/eval-numbers.js.map +1 -1
- package/dist/cli/published-url.d.ts +2 -0
- package/dist/cli/published-url.d.ts.map +1 -1
- package/dist/cli/published-url.js +5 -0
- package/dist/cli/published-url.js.map +1 -1
- package/dist/cli/record-tables.d.ts +2 -1
- package/dist/cli/record-tables.d.ts.map +1 -1
- package/dist/cli/record-tables.js +8 -3
- package/dist/cli/record-tables.js.map +1 -1
- package/dist/cli-api.d.ts +45 -12
- package/dist/cli-api.d.ts.map +1 -1
- package/dist/cli-api.js +38 -11
- package/dist/cli-api.js.map +1 -1
- package/dist/composition/adjudication.d.ts +8 -30
- package/dist/composition/adjudication.d.ts.map +1 -1
- package/dist/composition/adjudication.js +15 -67
- package/dist/composition/adjudication.js.map +1 -1
- package/dist/composition/aliases.d.ts +1 -1
- package/dist/composition/aliases.d.ts.map +1 -1
- package/dist/composition/aliases.js +10 -20
- package/dist/composition/aliases.js.map +1 -1
- package/dist/composition/bridge-analysis.d.ts +4 -0
- package/dist/composition/bridge-analysis.d.ts.map +1 -1
- package/dist/composition/bridge-analysis.js +13 -14
- package/dist/composition/bridge-analysis.js.map +1 -1
- package/dist/composition/canonical-graph.d.ts +7 -9
- package/dist/composition/canonical-graph.d.ts.map +1 -1
- package/dist/composition/canonical-graph.js +35 -19
- package/dist/composition/canonical-graph.js.map +1 -1
- package/dist/composition/canonical-prefactors.d.ts +10 -29
- package/dist/composition/canonical-prefactors.d.ts.map +1 -1
- package/dist/composition/canonical-prefactors.js +15 -202
- package/dist/composition/canonical-prefactors.js.map +1 -1
- package/dist/composition/compose.js +2 -1
- package/dist/composition/compose.js.map +1 -1
- package/dist/composition/discovery.d.ts +50 -0
- package/dist/composition/discovery.d.ts.map +1 -1
- package/dist/composition/discovery.js +2 -2
- package/dist/composition/discovery.js.map +1 -1
- package/dist/composition/edge.d.ts +0 -14
- package/dist/composition/edge.d.ts.map +1 -1
- package/dist/composition/edge.js +1 -17
- package/dist/composition/edge.js.map +1 -1
- package/dist/composition/evaluate-relation.d.ts +29 -5
- package/dist/composition/evaluate-relation.d.ts.map +1 -1
- package/dist/composition/evaluate-relation.js +100 -72
- package/dist/composition/evaluate-relation.js.map +1 -1
- package/dist/composition/explain.d.ts +5 -0
- package/dist/composition/explain.d.ts.map +1 -1
- package/dist/composition/explain.js +9 -8
- package/dist/composition/explain.js.map +1 -1
- package/dist/composition/expr-eval.d.ts.map +1 -1
- package/dist/composition/expr-eval.js +2 -1
- package/dist/composition/expr-eval.js.map +1 -1
- package/dist/composition/index.d.ts +3 -1
- package/dist/composition/index.d.ts.map +1 -1
- package/dist/composition/index.js +3 -1
- package/dist/composition/index.js.map +1 -1
- package/dist/composition/proposed-bridges.d.ts.map +1 -1
- package/dist/composition/proposed-bridges.js +3 -2
- package/dist/composition/proposed-bridges.js.map +1 -1
- package/dist/composition/retrodiction.d.ts +8 -0
- package/dist/composition/retrodiction.d.ts.map +1 -1
- package/dist/composition/retrodiction.js +5 -0
- package/dist/composition/retrodiction.js.map +1 -1
- package/dist/composition/user-equation.d.ts +11 -7
- package/dist/composition/user-equation.d.ts.map +1 -1
- package/dist/composition/user-equation.js +24 -26
- package/dist/composition/user-equation.js.map +1 -1
- package/dist/core/constants.d.ts +27 -4
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +38 -5
- package/dist/core/constants.js.map +1 -1
- package/dist/core/data-file.d.ts +27 -0
- package/dist/core/data-file.d.ts.map +1 -0
- package/dist/core/data-file.js +48 -0
- package/dist/core/data-file.js.map +1 -0
- package/dist/core/json-schema.d.ts +27 -0
- package/dist/core/json-schema.d.ts.map +1 -0
- package/dist/core/json-schema.js +153 -0
- package/dist/core/json-schema.js.map +1 -0
- package/dist/core/types.d.ts +3 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +16 -14
- package/dist/core/types.js.map +1 -1
- package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
- package/dist/diff/bridge-ast-gradient.js +6 -17
- package/dist/diff/bridge-ast-gradient.js.map +1 -1
- package/dist/diff/bridge-specs.d.ts +2 -1
- package/dist/diff/bridge-specs.d.ts.map +1 -1
- package/dist/diff/bridge-specs.js +1 -1
- package/dist/diff/bridge-specs.js.map +1 -1
- package/dist/dimensional/bridge-check.d.ts.map +1 -1
- package/dist/dimensional/bridge-check.js +3 -5
- package/dist/dimensional/bridge-check.js.map +1 -1
- package/dist/dimensional/constant-rows.d.ts +54 -0
- package/dist/dimensional/constant-rows.d.ts.map +1 -0
- package/dist/dimensional/constant-rows.js +111 -0
- package/dist/dimensional/constant-rows.js.map +1 -0
- package/dist/dimensional/constants.d.ts +4 -13
- package/dist/dimensional/constants.d.ts.map +1 -1
- package/dist/dimensional/constants.js +11 -19
- package/dist/dimensional/constants.js.map +1 -1
- package/dist/dimensional/dimension-spec.d.ts +12 -3
- package/dist/dimensional/dimension-spec.d.ts.map +1 -1
- package/dist/dimensional/dimension-spec.js +114 -150
- package/dist/dimensional/dimension-spec.js.map +1 -1
- package/dist/dimensional/exact-scale.d.ts +79 -0
- package/dist/dimensional/exact-scale.d.ts.map +1 -0
- package/dist/dimensional/exact-scale.js +222 -0
- package/dist/dimensional/exact-scale.js.map +1 -0
- package/dist/dimensional/formula-names.d.ts +13 -12
- package/dist/dimensional/formula-names.d.ts.map +1 -1
- package/dist/dimensional/formula-names.js +28 -51
- package/dist/dimensional/formula-names.js.map +1 -1
- package/dist/dimensional/quantity-registry.d.ts +10 -1
- package/dist/dimensional/quantity-registry.d.ts.map +1 -1
- package/dist/dimensional/quantity-registry.js +45 -16
- package/dist/dimensional/quantity-registry.js.map +1 -1
- package/dist/dimensional/symbolic-constants.d.ts +63 -19
- package/dist/dimensional/symbolic-constants.d.ts.map +1 -1
- package/dist/dimensional/symbolic-constants.js +109 -92
- package/dist/dimensional/symbolic-constants.js.map +1 -1
- package/dist/dimensional/unit-data.d.ts +70 -0
- package/dist/dimensional/unit-data.d.ts.map +1 -0
- package/dist/dimensional/unit-data.js +135 -0
- package/dist/dimensional/unit-data.js.map +1 -0
- package/dist/dimensional/units.d.ts +87 -24
- package/dist/dimensional/units.d.ts.map +1 -1
- package/dist/dimensional/units.js +253 -276
- package/dist/dimensional/units.js.map +1 -1
- package/dist/index.d.ts +15 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/numerical/binding-value.d.ts +21 -1
- package/dist/numerical/binding-value.d.ts.map +1 -1
- package/dist/numerical/binding-value.js +123 -118
- package/dist/numerical/binding-value.js.map +1 -1
- package/dist/numerical/evaluator-uncertainty.d.ts +34 -0
- package/dist/numerical/evaluator-uncertainty.d.ts.map +1 -0
- package/dist/numerical/evaluator-uncertainty.js +117 -0
- package/dist/numerical/evaluator-uncertainty.js.map +1 -0
- package/dist/numerical/formula-contract.d.ts +4 -0
- package/dist/numerical/formula-contract.d.ts.map +1 -1
- package/dist/numerical/formula-contract.js +7 -0
- package/dist/numerical/formula-contract.js.map +1 -1
- package/dist/numerical/formula-dimension.d.ts +9 -0
- package/dist/numerical/formula-dimension.d.ts.map +1 -1
- package/dist/numerical/formula-dimension.js +64 -10
- package/dist/numerical/formula-dimension.js.map +1 -1
- package/dist/numerical/formula-mathts.d.ts.map +1 -1
- package/dist/numerical/formula-mathts.js +6 -2
- package/dist/numerical/formula-mathts.js.map +1 -1
- package/dist/numerical/gl4-integrator.d.ts.map +1 -1
- package/dist/numerical/gl4-integrator.js +3 -3
- package/dist/numerical/gl4-integrator.js.map +1 -1
- package/dist/numerical/spacetime-metrics.d.ts +4 -0
- package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
- package/dist/numerical/spacetime-metrics.js +34 -4
- package/dist/numerical/spacetime-metrics.js.map +1 -1
- package/dist/relations/types.d.ts +8 -1
- package/dist/relations/types.d.ts.map +1 -1
- package/dist/relations/types.js +10 -0
- package/dist/relations/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,19 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `upt evaluate <be-NN | case-id> key=value …` — numerically evaluate a closed-form /
|
|
3
|
-
* spacetime bridge (the registered evaluators) via its registered evaluator. Closes the gap
|
|
4
|
-
* where `upt explain <be-NN>` redirected to a "evaluated directly" capability that
|
|
5
|
-
* did not exist. With no bridge id, lists the evaluable bridges + their inputs.
|
|
6
|
-
* `upt evaluate case-<id> …` runs an applied case (`src/cases/`).
|
|
7
|
-
*/
|
|
8
|
-
import { propagateUncertainty as propagateScalarUncertainty } from '@danielsimonjr/mathts-functions';
|
|
9
1
|
import { registerCommand } from '../command.js';
|
|
10
2
|
import { commandHelp, JSON_FLAG } from '../flag-help.js';
|
|
11
3
|
import { emitJson } from '../output.js';
|
|
4
|
+
import { siUnitOf } from '../expr-print.js';
|
|
12
5
|
import { UsageError } from '../errors.js';
|
|
13
6
|
import { CliError } from '../errors.js';
|
|
14
|
-
import { JEANS_FORMULA_NOTE } from '../conventions.js';
|
|
15
7
|
import { closedFormRangeLabel } from '../closed-form-range.js';
|
|
16
|
-
import { HBAR_TRUNCATION_NOTE } from '../eval-numbers.js';
|
|
17
8
|
const FLAGS = [
|
|
18
9
|
{
|
|
19
10
|
name: '--sigma',
|
|
@@ -49,7 +40,8 @@ const HELP = `upt evaluate <be-NN | case-id> key=value[unit] ...
|
|
|
49
40
|
alternate (major_axis_m for a_m) is converted exactly and said so.
|
|
50
41
|
e.g. upt evaluate be-63 mu_e=2 → Chandrasekhar mass ≈ 1.456 M_⊙
|
|
51
42
|
(ideal degenerate gas, with m_u and M_⊙ = 1.989e30 kg)
|
|
52
|
-
upt evaluate be-55 C=1 → quantum Hall R_H =
|
|
43
|
+
upt evaluate be-55 C=1 → quantum Hall σ_xy = e²/h in siemens (R_H = 1/σ_xy = h/e²,
|
|
44
|
+
the von Klitzing constant)
|
|
53
45
|
With no bridge id, lists the evaluable bridges and their declared inputs.
|
|
54
46
|
--sigma key=u (repeatable) gives an input's standard uncertainty;
|
|
55
47
|
--corr a,b=rho its correlation. Propagated to first order (GUM law,
|
|
@@ -58,10 +50,18 @@ const HELP = `upt evaluate <be-NN | case-id> key=value[unit] ...
|
|
|
58
50
|
--sigma is treated as exact. Not included: the evaluator's numerical
|
|
59
51
|
error and model discrepancy (whether the bridge applies).
|
|
60
52
|
e.g. upt evaluate be-58 T_K=300 R_ohm=1000 --sigma T_K=3 --sigma R_ohm=10
|
|
61
|
-
|
|
62
|
-
the
|
|
63
|
-
|
|
64
|
-
|
|
53
|
+
An input outside a relation's validity domain is refused and the message
|
|
54
|
+
names the condition (a weak-field formula inside 10 Schwarzschild radii,
|
|
55
|
+
a negative temperature). A relation's recorded caveat, and the note of a
|
|
56
|
+
registered constant it names, print beside the value.`;
|
|
57
|
+
/**
|
|
58
|
+
* An input-contract error (absent, unknown, non-number, non-finite or twice-given
|
|
59
|
+
* input) as the CLI reports it: a bad value (exit 1) under the one `upt evaluate:`
|
|
60
|
+
* prefix. Its message already names the id.
|
|
61
|
+
*/
|
|
62
|
+
function inputErrorOrSelf(api, e) {
|
|
63
|
+
return api.isInputContractError(e) ? new CliError(`upt evaluate: ${e.message}`) : e;
|
|
64
|
+
}
|
|
65
65
|
/** Unit and geometry trouble is a bad value (exit 1); a missing `=` is a usage error (exit 2). */
|
|
66
66
|
function resolveInputs(api, label, parameters, args) {
|
|
67
67
|
for (const a of args) {
|
|
@@ -69,13 +69,13 @@ function resolveInputs(api, label, parameters, args) {
|
|
|
69
69
|
throw new UsageError(`upt evaluate: '${a}' must be key=value (e.g. mu_e=2). See \`upt help\`.`);
|
|
70
70
|
}
|
|
71
71
|
try {
|
|
72
|
-
return api.resolveEvaluatorInputs(parameters, args);
|
|
72
|
+
return api.resolveEvaluatorInputs(parameters, args, label);
|
|
73
73
|
}
|
|
74
74
|
catch (e) {
|
|
75
75
|
if (e instanceof api.UnitError || e instanceof api.SynonymDisagreementError) {
|
|
76
76
|
throw new CliError(`upt evaluate: ${label}: ${e.message}`);
|
|
77
77
|
}
|
|
78
|
-
throw e;
|
|
78
|
+
throw inputErrorOrSelf(api, e);
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
/** `d_m [m] plate separation d (geometry: separation) — the gap …` */
|
|
@@ -89,155 +89,6 @@ function describeParameter(p) {
|
|
|
89
89
|
return (`${p.key} [${p.unit || 'dimensionless'}] ${p.quantity} ${p.symbol}${extras.length > 0 ? ` (${extras.join('; ')})` : ''} — ${p.meaning}` +
|
|
90
90
|
(alts.length > 0 ? `; ${alts.join('; ')}` : ''));
|
|
91
91
|
}
|
|
92
|
-
/** A curvature term above this fraction of the linear term marks the linearization unreliable. */
|
|
93
|
-
const NONLINEAR_FRACTION = 0.1;
|
|
94
|
-
/**
|
|
95
|
-
* be-51's graph domain already refuses `b < 10 r_s`. `upt evaluate` calls the
|
|
96
|
-
* closed form anyway (`b > 0` is the only throw). This note names that cut
|
|
97
|
-
* when the impact parameter, or a periapsis `a(1−e)`, is inside it. The
|
|
98
|
-
* number is unchanged. Solar-limb deflection and Mercury sit far outside it.
|
|
99
|
-
* @internal
|
|
100
|
-
*/
|
|
101
|
-
export function weakFieldDomainNote(api, bridgeId, inputs) {
|
|
102
|
-
const mass = inputs.M_kg;
|
|
103
|
-
if (!(mass > 0) || !Number.isFinite(mass))
|
|
104
|
-
return undefined;
|
|
105
|
-
const rs = (2 * api.G_SI * mass) / (api.C_SI * api.C_SI);
|
|
106
|
-
if (!(rs > 0) || !Number.isFinite(rs))
|
|
107
|
-
return undefined;
|
|
108
|
-
const notice = api.primaryRelation(bridgeId)?.notice;
|
|
109
|
-
if (notice === 'weak-field-impact') {
|
|
110
|
-
const b = inputs.b_m;
|
|
111
|
-
if (b > 0 && b <= 10 * rs) {
|
|
112
|
-
return (`WARNING: weak-field formula α = 4GM/(b c²) assumes b ≫ r_s = 2GM/c² ` +
|
|
113
|
-
`(the graph domain requires b ≥ 10 r_s). Here b = ${b} m and r_s = ${rs} m ` +
|
|
114
|
-
`(b/r_s = ${b / rs}). The number above is that formula anyway; it is not the strong-field deflection.`);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
if (notice === 'weak-field-periapsis') {
|
|
118
|
-
const a = inputs.a_m;
|
|
119
|
-
const e = inputs.e;
|
|
120
|
-
if (a > 0 && e >= 0 && e < 1) {
|
|
121
|
-
const peri = a * (1 - e);
|
|
122
|
-
if (peri <= 10 * rs) {
|
|
123
|
-
return (`WARNING: weak-field formula for the perihelion advance assumes periapsis a(1−e) ≫ r_s = 2GM/c² ` +
|
|
124
|
-
`(the same 10 r_s cut). Here a(1−e) = ${peri} m and r_s = ${rs} m ` +
|
|
125
|
-
`(a(1−e)/r_s = ${peri / rs}). The number above is that formula anyway.`);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
return undefined;
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* First-order propagation of input uncertainties through `f`, GUM's law of
|
|
133
|
-
* propagation: u² = Σᵢⱼ cᵢ cⱼ ρᵢⱼ uᵢ uⱼ, with cᵢ by central difference. Each
|
|
134
|
-
* input is also stepped by ±uᵢ, so a curvature term comparable to the linear
|
|
135
|
-
* term is reported rather than hidden in a small-looking σ.
|
|
136
|
-
*
|
|
137
|
-
* This is not the public graph-layer `propagateUncertainty`. That function
|
|
138
|
-
* takes a bridge edge and does not fold correlations or a curvature ratio.
|
|
139
|
-
*
|
|
140
|
-
* @internal
|
|
141
|
-
*/
|
|
142
|
-
export function propagateEvaluatorUncertainty(f, inputs, sigma, corr) {
|
|
143
|
-
const base = f({ ...inputs });
|
|
144
|
-
const keys = Object.keys(sigma);
|
|
145
|
-
const out = {};
|
|
146
|
-
for (const [name, v] of Object.entries(base)) {
|
|
147
|
-
if (typeof v !== 'number' || name in inputs)
|
|
148
|
-
continue;
|
|
149
|
-
const contributions = {};
|
|
150
|
-
const c = {};
|
|
151
|
-
const unreliable = [];
|
|
152
|
-
for (const k of keys) {
|
|
153
|
-
const u = sigma[k];
|
|
154
|
-
const x = inputs[k];
|
|
155
|
-
// The CLI step is per input (`u·10⁻³`, or a relative step when u is 0).
|
|
156
|
-
// MathTS differentiates every key of `values` with one `relativeStep`, so
|
|
157
|
-
// this call's values object is only `k`. The callback puts the other
|
|
158
|
-
// inputs back. Passing them as values would step an exact input (f_lo = 0
|
|
159
|
-
// goes negative) and discard this partial. The correlation sum stays here.
|
|
160
|
-
const h = u > 0 ? u * 1e-3 : Math.abs(x) * 1e-6 || 1e-6;
|
|
161
|
-
const relativeStep = h / Math.max(Math.abs(x), 1e-30);
|
|
162
|
-
let probed;
|
|
163
|
-
try {
|
|
164
|
-
probed = propagateScalarUncertainty((vals) => {
|
|
165
|
-
const out = f({ ...inputs, ...vals })[name];
|
|
166
|
-
if (typeof out !== 'number' || !Number.isFinite(out))
|
|
167
|
-
throw new Error('non-numeric');
|
|
168
|
-
return out;
|
|
169
|
-
}, { [k]: x }, { [k]: u }, u > 0
|
|
170
|
-
? { relativeStep, curvatureOffsets: { [k]: u } }
|
|
171
|
-
: { relativeStep });
|
|
172
|
-
}
|
|
173
|
-
catch {
|
|
174
|
-
probed = undefined;
|
|
175
|
-
}
|
|
176
|
-
const ck = probed?.partials[k];
|
|
177
|
-
if (probed === undefined || typeof ck !== 'number' || !Number.isFinite(ck)) {
|
|
178
|
-
c[k] = null;
|
|
179
|
-
contributions[k] = { sensitivity: null, contribution: null, curvatureRatio: null, note: 'the evaluator is undefined next to this input' };
|
|
180
|
-
unreliable.push(k);
|
|
181
|
-
continue;
|
|
182
|
-
}
|
|
183
|
-
c[k] = ck;
|
|
184
|
-
let curvatureRatio = null;
|
|
185
|
-
let note;
|
|
186
|
-
if (u > 0 && ck * u !== 0) {
|
|
187
|
-
const reported = probed.curvature?.[k];
|
|
188
|
-
if (reported === undefined || reported === null || !Number.isFinite(reported)) {
|
|
189
|
-
note = '±u reaches outside the evaluator\'s domain';
|
|
190
|
-
unreliable.push(k);
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
curvatureRatio = reported;
|
|
194
|
-
if (curvatureRatio > NONLINEAR_FRACTION)
|
|
195
|
-
unreliable.push(k);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
contributions[k] = { sensitivity: ck, contribution: ck * u, curvatureRatio, ...(note === undefined ? {} : { note }) };
|
|
199
|
-
}
|
|
200
|
-
let variance = 0;
|
|
201
|
-
for (const i of keys) {
|
|
202
|
-
for (const j of keys) {
|
|
203
|
-
const rho = i === j ? 1 : (corr.get(`${i},${j}`) ?? corr.get(`${j},${i}`) ?? 0);
|
|
204
|
-
if (rho === 0)
|
|
205
|
-
continue;
|
|
206
|
-
if (c[i] === null || c[j] === null)
|
|
207
|
-
variance = null;
|
|
208
|
-
if (variance !== null)
|
|
209
|
-
variance += c[i] * c[j] * rho * sigma[i] * sigma[j];
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
const u = variance === null ? null : Math.sqrt(Math.max(variance, 0));
|
|
213
|
-
out[name] = { value: v, u, relative: u === null || v === 0 ? null : u / Math.abs(v), contributions, unreliable };
|
|
214
|
-
}
|
|
215
|
-
return out;
|
|
216
|
-
}
|
|
217
|
-
/** A correlation matrix that is not positive semidefinite describes no joint distribution. */
|
|
218
|
-
function isPositiveSemidefinite(keys, corr) {
|
|
219
|
-
const n = keys.length;
|
|
220
|
-
const a = keys.map((ki) => keys.map((kj) => (ki === kj ? 1 : (corr.get(`${ki},${kj}`) ?? corr.get(`${kj},${ki}`) ?? 0))));
|
|
221
|
-
const l = a.map(() => new Array(n).fill(0));
|
|
222
|
-
for (let i = 0; i < n; i++) {
|
|
223
|
-
for (let j = 0; j <= i; j++) {
|
|
224
|
-
let sum = a[i][j];
|
|
225
|
-
for (let k = 0; k < j; k++)
|
|
226
|
-
sum -= l[i][k] * l[j][k];
|
|
227
|
-
if (i === j) {
|
|
228
|
-
if (sum < -1e-12)
|
|
229
|
-
return false;
|
|
230
|
-
l[i][i] = Math.sqrt(Math.max(sum, 0));
|
|
231
|
-
}
|
|
232
|
-
else {
|
|
233
|
-
l[i][j] = l[j][j] === 0 ? 0 : sum / l[j][j];
|
|
234
|
-
if (l[j][j] === 0 && Math.abs(sum) > 1e-12)
|
|
235
|
-
return false;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
return true;
|
|
240
|
-
}
|
|
241
92
|
function parseUncertainty(api, spec, sigmaArgs, corrArgs, inputs) {
|
|
242
93
|
const sigma = {};
|
|
243
94
|
for (const a of sigmaArgs) {
|
|
@@ -258,7 +109,7 @@ function parseUncertainty(api, spec, sigmaArgs, corrArgs, inputs) {
|
|
|
258
109
|
catch (e) {
|
|
259
110
|
if (!(e instanceof api.UnitError))
|
|
260
111
|
throw e;
|
|
261
|
-
if (
|
|
112
|
+
if (!(e instanceof api.BindingNumberError))
|
|
262
113
|
throw new CliError(`upt evaluate: --sigma '${a}': ${e.message}`);
|
|
263
114
|
}
|
|
264
115
|
}
|
|
@@ -282,7 +133,7 @@ function parseUncertainty(api, spec, sigmaArgs, corrArgs, inputs) {
|
|
|
282
133
|
}
|
|
283
134
|
corr.set(`${x},${y}`, rho);
|
|
284
135
|
}
|
|
285
|
-
if (!
|
|
136
|
+
if (!api.correlationIsPositiveSemidefinite(Object.keys(sigma), corr)) {
|
|
286
137
|
throw new CliError('upt evaluate: the --corr values are not a valid correlation matrix (not positive semidefinite)');
|
|
287
138
|
}
|
|
288
139
|
return { sigma, corr };
|
|
@@ -297,7 +148,7 @@ function uncertaintyOf(ctx, spec, inputs, f, notIncluded) {
|
|
|
297
148
|
if (sigmaArgs.length === 0)
|
|
298
149
|
return null;
|
|
299
150
|
const { sigma, corr } = parseUncertainty(ctx.api, spec, sigmaArgs, corrArgs, inputs);
|
|
300
|
-
const propagated = propagateEvaluatorUncertainty(f, inputs, sigma, corr);
|
|
151
|
+
const propagated = ctx.api.propagateEvaluatorUncertainty(f, inputs, sigma, corr);
|
|
301
152
|
const exactInputs = Object.keys(inputs).filter((k) => !(k in sigma));
|
|
302
153
|
return {
|
|
303
154
|
block: {
|
|
@@ -353,7 +204,8 @@ async function runCase(ctx, c, rest) {
|
|
|
353
204
|
result = api.runAppliedCase(c.id, inputs);
|
|
354
205
|
}
|
|
355
206
|
catch (e) {
|
|
356
|
-
|
|
207
|
+
// An input error carries the one `upt evaluate:` prefix; a domain refusal is a bad value too (exit 1).
|
|
208
|
+
throw api.isInputContractError(e) ? inputErrorOrSelf(api, e) : new CliError(e.message);
|
|
357
209
|
}
|
|
358
210
|
const u = uncertaintyOf(ctx, c, inputs, (i) => ({ ...api.runAppliedCase(c.id, i).outputs }), CASE_NOT_INCLUDED);
|
|
359
211
|
const failed = result.checks.filter((k) => !k.holds).map((k) => k.id);
|
|
@@ -490,19 +342,25 @@ async function run(ctx) {
|
|
|
490
342
|
}
|
|
491
343
|
const spec = found.evaluator;
|
|
492
344
|
const { inputs, resolved } = resolveInputs(api, `be-${spec.bridgeId}`, spec.parameters, rest);
|
|
345
|
+
// The one evaluation: `run` checks the inputs (missing, unknown, type) before the domain.
|
|
493
346
|
let result;
|
|
494
347
|
try {
|
|
495
348
|
result = spec.run(inputs);
|
|
496
349
|
}
|
|
497
350
|
catch (e) {
|
|
498
|
-
//
|
|
499
|
-
|
|
351
|
+
// An input error, a domain failure or a carrier-sign failure is a bad value: exit 1 (documented contract).
|
|
352
|
+
// Input errors carry the one `upt evaluate:` prefix.
|
|
353
|
+
throw api.isInputContractError(e) ? inputErrorOrSelf(api, e) : new CliError(e.message);
|
|
500
354
|
}
|
|
501
355
|
const u = uncertaintyOf(ctx, spec, inputs, (i) => spec.run(i), NOT_INCLUDED);
|
|
502
|
-
const
|
|
503
|
-
const
|
|
504
|
-
const
|
|
505
|
-
const
|
|
356
|
+
const relation = api.primaryRelation(id);
|
|
357
|
+
const notices = relation === undefined ? [] : api.relationNotices(relation);
|
|
358
|
+
const outputDescriptor = api.evaluatorOutput(spec);
|
|
359
|
+
const outputLabel = {
|
|
360
|
+
name: outputDescriptor.name,
|
|
361
|
+
...(outputDescriptor.dimension === undefined ? {} : { unit: siUnitOf(outputDescriptor.dimension) }),
|
|
362
|
+
};
|
|
363
|
+
const unused = api.unusedInputKeys(spec);
|
|
506
364
|
if (args.flags.has('json')) {
|
|
507
365
|
emitJson({
|
|
508
366
|
command: 'evaluate',
|
|
@@ -511,10 +369,14 @@ async function run(ctx) {
|
|
|
511
369
|
inputs,
|
|
512
370
|
parameters: spec.parameters,
|
|
513
371
|
conversions: conversionsOf(resolved),
|
|
514
|
-
output:
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
372
|
+
output: {
|
|
373
|
+
...result,
|
|
374
|
+
name: outputLabel.name,
|
|
375
|
+
...(outputLabel.unit === undefined ? {} : { unit: outputLabel.unit, dimension: outputDescriptor.dimension }),
|
|
376
|
+
},
|
|
377
|
+
...(spec.outputs.length === 0 ? {} : { extraOutputs: spec.outputs.map(({ name, unit, meaning }) => ({ name, unit, meaning })) }),
|
|
378
|
+
...(unused.length === 0 ? {} : { unusedInputs: unused }),
|
|
379
|
+
...(notices.length === 0 ? {} : { notices }),
|
|
518
380
|
...(u === null ? {} : { uncertainty: u.block }),
|
|
519
381
|
},
|
|
520
382
|
}, ctx.write);
|
|
@@ -523,14 +385,21 @@ async function run(ctx) {
|
|
|
523
385
|
out(`\n● be-${id} ${spec.name}`);
|
|
524
386
|
printInputs(out, spec.parameters, inputs, resolved);
|
|
525
387
|
for (const [k, v] of Object.entries(result)) {
|
|
526
|
-
|
|
388
|
+
const extra = spec.outputs.find((o) => o.name === k);
|
|
389
|
+
const label = k === 'value'
|
|
390
|
+
? outputLabel.unit === undefined
|
|
391
|
+
? outputLabel.name
|
|
392
|
+
: `${outputLabel.name} [${outputLabel.unit}]`
|
|
393
|
+
: extra === undefined
|
|
394
|
+
? k
|
|
395
|
+
: `${k} [${extra.unit}] (${extra.meaning})`;
|
|
396
|
+
out(` ${label} = ${typeof v === 'number' ? v : JSON.stringify(v)}`);
|
|
397
|
+
}
|
|
398
|
+
for (const key of unused) {
|
|
399
|
+
out(` note: ${key} is required and does not enter the value; the closed form does not use it, so changing it changes nothing`);
|
|
527
400
|
}
|
|
528
|
-
|
|
529
|
-
out(` ${
|
|
530
|
-
if (formulaNote !== undefined)
|
|
531
|
-
out(` ${formulaNote}`);
|
|
532
|
-
if (hbarNote !== undefined)
|
|
533
|
-
out(` ${hbarNote}`);
|
|
401
|
+
for (const notice of notices)
|
|
402
|
+
out(` ${notice}`);
|
|
534
403
|
if (u !== null)
|
|
535
404
|
printUncertainty(out, u);
|
|
536
405
|
return 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../../src/cli/commands/evaluate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../../src/cli/commands/evaluate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explain.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/explain.ts"],"names":[],"mappings":"AAeA,OAAO,EAAmB,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"explain.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/explain.ts"],"names":[],"mappings":"AAeA,OAAO,EAAmB,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAC;AA8V/E,eAAO,MAAM,OAAO,EAAE,OASrB,CAAC"}
|
|
@@ -2,15 +2,8 @@ import { registerCommand } from '../command.js';
|
|
|
2
2
|
import { commandHelp, JSON_FLAG, sourceFlag } from '../flag-help.js';
|
|
3
3
|
import { resolveGraph } from '../graphs.js';
|
|
4
4
|
import { emitJson } from '../output.js';
|
|
5
|
-
import { CarrierSignError } from '../../bridges/carrier-sign.js';
|
|
6
5
|
import { UsageError, CliError } from '../errors.js';
|
|
7
6
|
import { searchNameWords } from '../search-index.js';
|
|
8
|
-
import { readNamedBinding } from '../../numerical/binding-value.js';
|
|
9
|
-
import { UnitError } from '../../dimensional/units.js';
|
|
10
|
-
import { aliasesForTarget, nearQuantityNames, shareSynonyms, } from '../../composition/aliases.js';
|
|
11
|
-
import { assertSynonymAgreement, resolveQuantityName, SynonymDisagreementError, } from '../../dimensional/formula-names.js';
|
|
12
|
-
import { CANONICAL_GROUP_PREFACTORS } from '../../composition/canonical-prefactors.js';
|
|
13
|
-
import { formatQuantity } from '../../composition/explain.js';
|
|
14
7
|
/** How many `upt search` hits a NOT COVERED answer lists before "… and N more". */
|
|
15
8
|
const SEARCH_HITS_SHOWN = 5;
|
|
16
9
|
const FLAGS = [
|
|
@@ -49,7 +42,7 @@ const HELP = `upt explain <quantity> [name=value | name] ...
|
|
|
49
42
|
* `mass=1e500`→∞, and a bare name alongside a valued one were all silent
|
|
50
43
|
* wrong-physics footguns.
|
|
51
44
|
*/
|
|
52
|
-
function parseKnown(args) {
|
|
45
|
+
function parseKnown(api, args) {
|
|
53
46
|
const valued = args.filter((a) => a.includes('='));
|
|
54
47
|
if (valued.length === 0)
|
|
55
48
|
return { known: [...args], notes: [] }; // names mode
|
|
@@ -69,12 +62,12 @@ function parseKnown(args) {
|
|
|
69
62
|
for (const a of assignments) {
|
|
70
63
|
let read;
|
|
71
64
|
try {
|
|
72
|
-
read = readNamedBinding(a.name, a.raw, { siblings });
|
|
65
|
+
read = api.readNamedBinding(a.name, a.raw, { siblings });
|
|
73
66
|
}
|
|
74
67
|
catch (e) {
|
|
75
|
-
if (e instanceof SynonymDisagreementError)
|
|
68
|
+
if (e instanceof api.SynonymDisagreementError)
|
|
76
69
|
throw new CliError(`upt explain: ${e.message}`);
|
|
77
|
-
if (e instanceof
|
|
70
|
+
if (e instanceof api.TemperatureBindingError) {
|
|
78
71
|
throw new CliError(`upt explain: '${a.assignment}' is not a temperature. ${e.message}`);
|
|
79
72
|
}
|
|
80
73
|
throw new UsageError(`upt: '${a.assignment}' is not a finite number. Expected ${a.name}=<number>. See \`upt help\`.`);
|
|
@@ -84,12 +77,10 @@ function parseKnown(args) {
|
|
|
84
77
|
}
|
|
85
78
|
values[a.name] = read.value;
|
|
86
79
|
// Unit-convention notes were already on the binding and explain did not
|
|
87
|
-
// print them. The temperature reading adds a note;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
notes.push(note);
|
|
92
|
-
}
|
|
80
|
+
// print them. The temperature reading adds a note; the reader returns that
|
|
81
|
+
// one on its own field.
|
|
82
|
+
if (read.temperatureNote !== undefined && !notes.includes(read.temperatureNote))
|
|
83
|
+
notes.push(read.temperatureNote);
|
|
93
84
|
}
|
|
94
85
|
return { known: values, notes };
|
|
95
86
|
}
|
|
@@ -102,10 +93,9 @@ function parseKnown(args) {
|
|
|
102
93
|
* to the normal graph explain).
|
|
103
94
|
*/
|
|
104
95
|
function bridgeRedirect(api, target) {
|
|
105
|
-
const
|
|
106
|
-
if (
|
|
96
|
+
const id = api.catalogIdNumber(target);
|
|
97
|
+
if (id === undefined)
|
|
107
98
|
return null;
|
|
108
|
-
const id = Number(m[1]);
|
|
109
99
|
const b = api.auditCoverage().bridges.find((x) => x.id === id);
|
|
110
100
|
if (!b)
|
|
111
101
|
return null;
|
|
@@ -148,13 +138,13 @@ function restatementPartner(api, target) {
|
|
|
148
138
|
}
|
|
149
139
|
return null;
|
|
150
140
|
}
|
|
151
|
-
function printExplanation(out, target, label, x) {
|
|
141
|
+
function printExplanation(api, out, target, label, x) {
|
|
152
142
|
out(`\n● ${target} [source: ${label}]`);
|
|
153
143
|
out(` ${x.summary}`);
|
|
154
144
|
if (x.derivations.length) {
|
|
155
145
|
out(' derivations:');
|
|
156
146
|
for (const d of x.derivations) {
|
|
157
|
-
const val = d.value !== undefined ? ` = ${formatQuantity(d.value)}` : '';
|
|
147
|
+
const val = d.value !== undefined ? ` = ${api.formatQuantity(d.value)}` : '';
|
|
158
148
|
const chain = d.leafInputs.join(',') !== d.sources.join(',') ? ` [from leaves: ${d.leafInputs.join(', ')}]` : '';
|
|
159
149
|
out(` - ${d.edge} (${d.label})${val}${chain}`);
|
|
160
150
|
if (d.dimensionalForm)
|
|
@@ -174,9 +164,9 @@ function valuesAgree(a, b) {
|
|
|
174
164
|
return a === b;
|
|
175
165
|
return Math.abs(a - b) / scale <= 1e-6;
|
|
176
166
|
}
|
|
177
|
-
function rebind(known, aliases, graphNames) {
|
|
167
|
+
function rebind(api, known, aliases, graphNames) {
|
|
178
168
|
const rewrite = (key) => {
|
|
179
|
-
const hit = resolveQuantityName(key, graphNames, aliases);
|
|
169
|
+
const hit = api.resolveQuantityName(key, graphNames, aliases);
|
|
180
170
|
if (hit === null) {
|
|
181
171
|
throw new CliError(`upt explain: '${key}' did not resolve to a quantity. ` +
|
|
182
172
|
'A failed lookup is not a derivation, and this command does not exit 0.');
|
|
@@ -187,6 +177,21 @@ function rebind(known, aliases, graphNames) {
|
|
|
187
177
|
return known.map(rewrite);
|
|
188
178
|
const out = {};
|
|
189
179
|
for (const [key, value] of Object.entries(known)) {
|
|
180
|
+
if (api.resolveQuantityName(key, graphNames, aliases) === null) {
|
|
181
|
+
// A constant is not a graph quantity: the equation already uses the
|
|
182
|
+
// registered value, so a stated value is checked, never bound.
|
|
183
|
+
let constant;
|
|
184
|
+
try {
|
|
185
|
+
constant = api.constantAgreement(key, value);
|
|
186
|
+
}
|
|
187
|
+
catch (e) {
|
|
188
|
+
if (e instanceof api.ConstantDisagreementError)
|
|
189
|
+
throw new CliError(`upt explain: ${e.message}`);
|
|
190
|
+
throw e;
|
|
191
|
+
}
|
|
192
|
+
if (constant !== null)
|
|
193
|
+
continue;
|
|
194
|
+
}
|
|
190
195
|
const name = rewrite(key);
|
|
191
196
|
if (Object.hasOwn(out, name) && out[name] !== value) {
|
|
192
197
|
throw new CliError(`upt explain: '${name}' is given twice.`);
|
|
@@ -222,13 +227,13 @@ async function run(ctx) {
|
|
|
222
227
|
// optional input, not a graph node. It resolves as a binding and not as a target.
|
|
223
228
|
const inputNames = new Set(names);
|
|
224
229
|
const edgeIds = new Set(graph.map((e) => e.id));
|
|
225
|
-
for (const group of CANONICAL_GROUP_PREFACTORS) {
|
|
230
|
+
for (const group of api.CANONICAL_GROUP_PREFACTORS) {
|
|
226
231
|
if (edgeIds.has(group.id))
|
|
227
232
|
inputNames.add(group.group);
|
|
228
233
|
}
|
|
229
|
-
let resolvedTarget = resolveQuantityName(target, names);
|
|
234
|
+
let resolvedTarget = api.resolveQuantityName(target, names);
|
|
230
235
|
if (resolvedTarget === null) {
|
|
231
|
-
const near = nearQuantityNames(target, names);
|
|
236
|
+
const near = api.nearQuantityNames(target, names);
|
|
232
237
|
// A single token one edit from exactly one quantity is that quantity.
|
|
233
238
|
// A hyphenated miss stays a suggestion: `hawkng-temperature` exits 1.
|
|
234
239
|
if (!/[-_\s]/.test(target) && near.length === 1) {
|
|
@@ -236,7 +241,7 @@ async function run(ctx) {
|
|
|
236
241
|
}
|
|
237
242
|
}
|
|
238
243
|
if (resolvedTarget === null) {
|
|
239
|
-
const near = nearQuantityNames(target, names);
|
|
244
|
+
const near = api.nearQuantityNames(target, names);
|
|
240
245
|
// Audit I5: a law or model name (`schrodinger-equation`) is not a quantity; name what
|
|
241
246
|
// `upt search` finds for its words. A shared token is not a near name.
|
|
242
247
|
const found = searchNameWords(api, target);
|
|
@@ -252,28 +257,28 @@ async function run(ctx) {
|
|
|
252
257
|
: ' `upt canonical` and `upt map` list the vocabulary.') +
|
|
253
258
|
searchLine);
|
|
254
259
|
}
|
|
255
|
-
const aliases = aliasesForTarget(graph, resolvedTarget);
|
|
256
|
-
const parsed = parseKnown(rest);
|
|
260
|
+
const aliases = api.aliasesForTarget(graph, resolvedTarget);
|
|
261
|
+
const parsed = parseKnown(api, rest);
|
|
257
262
|
for (const note of parsed.notes)
|
|
258
263
|
ctx.err(note);
|
|
259
264
|
if (!Array.isArray(parsed.known)) {
|
|
260
265
|
try {
|
|
261
|
-
assertSynonymAgreement(parsed.known);
|
|
266
|
+
api.assertSynonymAgreement(parsed.known);
|
|
262
267
|
}
|
|
263
268
|
catch (e) {
|
|
264
|
-
if (e instanceof SynonymDisagreementError)
|
|
269
|
+
if (e instanceof api.SynonymDisagreementError)
|
|
265
270
|
throw new CliError(`upt explain: ${e.message}`);
|
|
266
271
|
throw e;
|
|
267
272
|
}
|
|
268
273
|
}
|
|
269
|
-
const rebound = rebind(parsed.known, aliases, inputNames);
|
|
270
|
-
const known = shareSynonyms(rebound, names);
|
|
274
|
+
const rebound = rebind(api, parsed.known, aliases, inputNames);
|
|
275
|
+
const known = api.shareSynonyms(rebound, names);
|
|
271
276
|
let x;
|
|
272
277
|
try {
|
|
273
278
|
x = api.explainQuantity(graph, resolvedTarget, known);
|
|
274
279
|
}
|
|
275
280
|
catch (e) {
|
|
276
|
-
if (e instanceof CarrierSignError || e instanceof SynonymDisagreementError) {
|
|
281
|
+
if (e instanceof api.CarrierSignError || e instanceof api.SynonymDisagreementError) {
|
|
277
282
|
throw new CliError(`upt explain: ${e.message}`);
|
|
278
283
|
}
|
|
279
284
|
throw e;
|
|
@@ -301,9 +306,9 @@ async function run(ctx) {
|
|
|
301
306
|
}, ctx.write);
|
|
302
307
|
return 0;
|
|
303
308
|
}
|
|
304
|
-
printExplanation(out, target, label, x);
|
|
309
|
+
printExplanation(api, out, target, label, x);
|
|
305
310
|
if (partner !== null && partnerExplanation !== undefined) {
|
|
306
|
-
printExplanation(out, partner.name, label, partnerExplanation);
|
|
311
|
+
printExplanation(api, out, partner.name, label, partnerExplanation);
|
|
307
312
|
const who = `${partner.canonicalId} restates be-${partner.bridgeId}`;
|
|
308
313
|
if (agree === true) {
|
|
309
314
|
out(` ${resolvedTarget} and ${partner.name} are one restatement (${who}). Values agree.`);
|
|
@@ -311,7 +316,7 @@ async function run(ctx) {
|
|
|
311
316
|
else if (agree === false) {
|
|
312
317
|
const ratio = x.recoveredValue / partnerExplanation.recoveredValue;
|
|
313
318
|
out(` ${resolvedTarget} and ${partner.name} are one restatement (${who}). ` +
|
|
314
|
-
`Values DISAGREE: ${resolvedTarget} / ${partner.name} = ${formatQuantity(ratio)}.`);
|
|
319
|
+
`Values DISAGREE: ${resolvedTarget} / ${partner.name} = ${api.formatQuantity(ratio)}.`);
|
|
315
320
|
}
|
|
316
321
|
else {
|
|
317
322
|
out(` ${resolvedTarget} and ${partner.name} are one restatement (${who}).`);
|