universal-physics-tensor 0.47.1 → 1.0.2
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/LICENSE +21 -21
- package/README.md +405 -383
- package/bin/upt.mjs +7 -1
- package/dist/atlas/benchmark/hybrid-retrieval.d.ts +108 -0
- package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -0
- package/dist/atlas/benchmark/hybrid-retrieval.js +241 -0
- package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -0
- package/dist/atlas/catalog-formal-ref.d.ts +24 -0
- package/dist/atlas/catalog-formal-ref.d.ts.map +1 -0
- package/dist/atlas/catalog-formal-ref.js +36 -0
- package/dist/atlas/catalog-formal-ref.js.map +1 -0
- package/dist/atlas/chain-pipeline.d.ts +52 -0
- package/dist/atlas/chain-pipeline.d.ts.map +1 -0
- package/dist/atlas/chain-pipeline.js +176 -0
- package/dist/atlas/chain-pipeline.js.map +1 -0
- package/dist/atlas/composition-table.d.ts +11 -46
- package/dist/atlas/composition-table.d.ts.map +1 -1
- package/dist/atlas/composition-table.js +7 -124
- package/dist/atlas/composition-table.js.map +1 -1
- package/dist/atlas/conventions.d.ts +4 -58
- package/dist/atlas/conventions.d.ts.map +1 -1
- package/dist/atlas/conventions.js +3 -88
- package/dist/atlas/conventions.js.map +1 -1
- package/dist/atlas/derive-evidence.d.ts +50 -3
- package/dist/atlas/derive-evidence.d.ts.map +1 -1
- package/dist/atlas/derive-evidence.js +73 -4
- package/dist/atlas/derive-evidence.js.map +1 -1
- package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
- package/dist/atlas/diffusion/bridges-closure.js +5 -1
- package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
- package/dist/atlas/index.d.ts +9 -7
- package/dist/atlas/index.d.ts.map +1 -1
- package/dist/atlas/index.js +6 -5
- package/dist/atlas/index.js.map +1 -1
- package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
- package/dist/atlas/oscillators/bridges-exact.js +6 -0
- package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
- package/dist/atlas/oscillators/bridges-limits.d.ts +2 -0
- package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
- package/dist/atlas/oscillators/bridges-limits.js +11 -19
- package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
- package/dist/atlas/oscillators/limit-witnesses.d.ts +93 -0
- package/dist/atlas/oscillators/limit-witnesses.d.ts.map +1 -0
- package/dist/atlas/oscillators/limit-witnesses.js +152 -0
- package/dist/atlas/oscillators/limit-witnesses.js.map +1 -0
- package/dist/atlas/oscillators/models.d.ts +2 -1
- package/dist/atlas/oscillators/models.d.ts.map +1 -1
- package/dist/atlas/oscillators/models.js +4 -3
- package/dist/atlas/oscillators/models.js.map +1 -1
- package/dist/atlas/oscillators/norm-transport-witness.d.ts +37 -0
- package/dist/atlas/oscillators/norm-transport-witness.d.ts.map +1 -0
- package/dist/atlas/oscillators/norm-transport-witness.js +58 -0
- package/dist/atlas/oscillators/norm-transport-witness.js.map +1 -0
- package/dist/atlas/oscillators/norm-transport.d.ts +44 -0
- package/dist/atlas/oscillators/norm-transport.d.ts.map +1 -0
- package/dist/atlas/oscillators/norm-transport.js +66 -0
- package/dist/atlas/oscillators/norm-transport.js.map +1 -0
- package/dist/atlas/oscillators/norms.d.ts +11 -0
- package/dist/atlas/oscillators/norms.d.ts.map +1 -0
- package/dist/atlas/oscillators/norms.js +11 -0
- package/dist/atlas/oscillators/norms.js.map +1 -0
- package/dist/atlas/oscillators/pendulum-motion.d.ts +38 -0
- package/dist/atlas/oscillators/pendulum-motion.d.ts.map +1 -0
- package/dist/atlas/oscillators/pendulum-motion.js +122 -0
- package/dist/atlas/oscillators/pendulum-motion.js.map +1 -0
- package/dist/atlas/oscillators/phase-carriage.d.ts +38 -0
- package/dist/atlas/oscillators/phase-carriage.d.ts.map +1 -0
- package/dist/atlas/oscillators/phase-carriage.js +96 -0
- package/dist/atlas/oscillators/phase-carriage.js.map +1 -0
- package/dist/atlas/oscillators/phase-translation.d.ts +46 -0
- package/dist/atlas/oscillators/phase-translation.d.ts.map +1 -0
- package/dist/atlas/oscillators/phase-translation.js +178 -0
- package/dist/atlas/oscillators/phase-translation.js.map +1 -0
- package/dist/atlas/oscillators/position-translation.d.ts +59 -0
- package/dist/atlas/oscillators/position-translation.d.ts.map +1 -0
- package/dist/atlas/oscillators/position-translation.js +254 -0
- package/dist/atlas/oscillators/position-translation.js.map +1 -0
- package/dist/atlas/path-bound.d.ts +126 -9
- package/dist/atlas/path-bound.d.ts.map +1 -1
- package/dist/atlas/path-bound.js +372 -23
- package/dist/atlas/path-bound.js.map +1 -1
- package/dist/atlas/physjs-ref.d.ts +141 -0
- package/dist/atlas/physjs-ref.d.ts.map +1 -0
- package/dist/atlas/physjs-ref.js +878 -0
- package/dist/atlas/physjs-ref.js.map +1 -0
- package/dist/atlas/proof-target.d.ts +32 -0
- package/dist/atlas/proof-target.d.ts.map +1 -0
- package/dist/atlas/proof-target.js +140 -0
- package/dist/atlas/proof-target.js.map +1 -0
- package/dist/atlas/regime.d.ts +12 -136
- package/dist/atlas/regime.d.ts.map +1 -1
- package/dist/atlas/regime.js +8 -254
- package/dist/atlas/regime.js.map +1 -1
- package/dist/atlas/serialize.d.ts.map +1 -1
- package/dist/atlas/serialize.js +25 -0
- package/dist/atlas/serialize.js.map +1 -1
- package/dist/atlas/translation-registry.d.ts +22 -0
- package/dist/atlas/translation-registry.d.ts.map +1 -0
- package/dist/atlas/translation-registry.js +31 -0
- package/dist/atlas/translation-registry.js.map +1 -0
- package/dist/atlas/translation.d.ts +116 -0
- package/dist/atlas/translation.d.ts.map +1 -0
- package/dist/atlas/translation.js +34 -0
- package/dist/atlas/translation.js.map +1 -0
- package/dist/atlas/types.d.ts +74 -240
- package/dist/atlas/types.d.ts.map +1 -1
- package/dist/atlas/types.js +5 -37
- package/dist/atlas/types.js.map +1 -1
- package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
- package/dist/atlas/waves/bridges-closure.js +4 -0
- package/dist/atlas/waves/bridges-closure.js.map +1 -1
- package/dist/atlas/waves/bridges.d.ts.map +1 -1
- package/dist/atlas/waves/bridges.js +3 -0
- package/dist/atlas/waves/bridges.js.map +1 -1
- package/dist/atlas/waves/models.js +1 -1
- package/dist/atlas/waves/models.js.map +1 -1
- package/dist/atlas/witness-dominance.d.ts +50 -0
- package/dist/atlas/witness-dominance.d.ts.map +1 -0
- package/dist/atlas/witness-dominance.js +86 -0
- package/dist/atlas/witness-dominance.js.map +1 -0
- package/dist/atlas/witness-specs.d.ts +30 -0
- package/dist/atlas/witness-specs.d.ts.map +1 -1
- package/dist/atlas/witness-specs.js +107 -0
- package/dist/atlas/witness-specs.js.map +1 -1
- package/dist/bridges/be53-yang-mills-confrontation.d.ts +81 -0
- package/dist/bridges/be53-yang-mills-confrontation.d.ts.map +1 -0
- package/dist/bridges/be53-yang-mills-confrontation.js +110 -0
- package/dist/bridges/be53-yang-mills-confrontation.js.map +1 -0
- package/dist/bridges/be63-chandrasekhar-mass.d.ts.map +1 -1
- package/dist/bridges/be63-chandrasekhar-mass.js +1 -3
- package/dist/bridges/be63-chandrasekhar-mass.js.map +1 -1
- package/dist/bridges/confrontation-coverage.d.ts +5 -61
- package/dist/bridges/confrontation-coverage.d.ts.map +1 -1
- package/dist/bridges/confrontation-coverage.js +5 -70
- package/dist/bridges/confrontation-coverage.js.map +1 -1
- package/dist/bridges/confrontations.d.ts +1 -1
- package/dist/bridges/confrontations.d.ts.map +1 -1
- package/dist/bridges/confrontations.js +291 -3
- package/dist/bridges/confrontations.js.map +1 -1
- package/dist/bridges/equations/be-13-einstein-trace.d.ts +2 -3
- package/dist/bridges/equations/be-13-einstein-trace.d.ts.map +1 -1
- package/dist/bridges/equations/be-13-einstein-trace.js +2 -3
- package/dist/bridges/equations/be-13-einstein-trace.js.map +1 -1
- package/dist/bridges/equations/be-38-mond.d.ts +7 -5
- package/dist/bridges/equations/be-38-mond.d.ts.map +1 -1
- package/dist/bridges/equations/be-38-mond.js +7 -5
- package/dist/bridges/equations/be-38-mond.js.map +1 -1
- package/dist/bridges/equations/be-42-hawking-temperature.d.ts +3 -0
- package/dist/bridges/equations/be-42-hawking-temperature.d.ts.map +1 -1
- package/dist/bridges/equations/be-42-hawking-temperature.js +8 -1
- package/dist/bridges/equations/be-42-hawking-temperature.js.map +1 -1
- package/dist/bridges/equations/be-53-yang-mills-beta.d.ts +21 -0
- package/dist/bridges/equations/be-53-yang-mills-beta.d.ts.map +1 -1
- package/dist/bridges/equations/be-53-yang-mills-beta.js +12 -0
- package/dist/bridges/equations/be-53-yang-mills-beta.js.map +1 -1
- package/dist/bridges/evaluator-inputs.d.ts +21 -0
- package/dist/bridges/evaluator-inputs.d.ts.map +1 -0
- package/dist/bridges/evaluator-inputs.js +75 -0
- package/dist/bridges/evaluator-inputs.js.map +1 -0
- package/dist/bridges/evaluators.d.ts +46 -0
- package/dist/bridges/evaluators.d.ts.map +1 -1
- package/dist/bridges/evaluators.js +57 -16
- package/dist/bridges/evaluators.js.map +1 -1
- package/dist/bridges/gravitational-lensing.d.ts +1 -1
- package/dist/bridges/gravitational-lensing.js +1 -1
- package/dist/bridges/index.d.ts +3 -2
- package/dist/bridges/index.d.ts.map +1 -1
- package/dist/bridges/index.js +15 -14
- package/dist/bridges/index.js.map +1 -1
- package/dist/bridges/observations/types.d.ts +110 -2
- package/dist/bridges/observations/types.d.ts.map +1 -1
- package/dist/bridges/observations/types.js +29 -0
- package/dist/bridges/observations/types.js.map +1 -1
- package/dist/bridges/perihelion-precession.d.ts +1 -1
- package/dist/bridges/perihelion-precession.js +1 -1
- package/dist/bridges/tensor-index.d.ts +39 -0
- package/dist/bridges/tensor-index.d.ts.map +1 -0
- package/dist/bridges/tensor-index.js +66 -0
- package/dist/bridges/tensor-index.js.map +1 -0
- package/dist/canonical/canonical-equation.d.ts +1 -1
- 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 +32 -10
- package/dist/canonical/entries/atomic.js.map +1 -1
- package/dist/canonical/entries/dimensional-classics.js +2 -2
- package/dist/canonical/entries/dimensional-classics.js.map +1 -1
- package/dist/canonical/entries/mechanics.d.ts.map +1 -1
- package/dist/canonical/entries/mechanics.js +10 -6
- package/dist/canonical/entries/mechanics.js.map +1 -1
- package/dist/canonical/entries/relativity.d.ts.map +1 -1
- package/dist/canonical/entries/relativity.js +41 -8
- package/dist/canonical/entries/relativity.js.map +1 -1
- package/dist/canonical/entries/thermo-nuclear-cosmo.js +5 -5
- package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
- package/dist/canonical/linkage.d.ts.map +1 -1
- package/dist/canonical/linkage.js +31 -28
- package/dist/canonical/linkage.js.map +1 -1
- package/dist/canonical/normal-form.d.ts +17 -0
- package/dist/canonical/normal-form.d.ts.map +1 -1
- package/dist/canonical/normal-form.js +21 -4
- package/dist/canonical/normal-form.js.map +1 -1
- package/dist/canonical/structural.d.ts +84 -0
- package/dist/canonical/structural.d.ts.map +1 -0
- package/dist/canonical/structural.js +107 -0
- package/dist/canonical/structural.js.map +1 -0
- package/dist/cases/brownian-sphere.d.ts +68 -0
- package/dist/cases/brownian-sphere.d.ts.map +1 -0
- package/dist/cases/brownian-sphere.js +353 -0
- package/dist/cases/brownian-sphere.js.map +1 -0
- package/dist/cases/damped-resonator.d.ts +23 -0
- package/dist/cases/damped-resonator.d.ts.map +1 -0
- package/dist/cases/damped-resonator.js +224 -0
- package/dist/cases/damped-resonator.js.map +1 -0
- package/dist/cases/index.d.ts +11 -0
- package/dist/cases/index.d.ts.map +1 -0
- package/dist/cases/index.js +29 -0
- package/dist/cases/index.js.map +1 -0
- package/dist/cases/kepler-rv.d.ts +13 -0
- package/dist/cases/kepler-rv.d.ts.map +1 -0
- package/dist/cases/kepler-rv.js +168 -0
- package/dist/cases/kepler-rv.js.map +1 -0
- package/dist/cases/lumped-cooling.d.ts +46 -0
- package/dist/cases/lumped-cooling.d.ts.map +1 -0
- package/dist/cases/lumped-cooling.js +261 -0
- package/dist/cases/lumped-cooling.js.map +1 -0
- package/dist/cases/quadrature.d.ts +14 -0
- package/dist/cases/quadrature.d.ts.map +1 -0
- package/dist/cases/quadrature.js +41 -0
- package/dist/cases/quadrature.js.map +1 -0
- package/dist/cases/resistor-noise.d.ts +14 -0
- package/dist/cases/resistor-noise.d.ts.map +1 -0
- package/dist/cases/resistor-noise.js +210 -0
- package/dist/cases/resistor-noise.js.map +1 -0
- package/dist/cases/skin-depth.d.ts +21 -0
- package/dist/cases/skin-depth.d.ts.map +1 -0
- package/dist/cases/skin-depth.js +174 -0
- package/dist/cases/skin-depth.js.map +1 -0
- package/dist/cases/types.d.ts +115 -0
- package/dist/cases/types.d.ts.map +1 -0
- package/dist/cases/types.js +20 -0
- package/dist/cases/types.js.map +1 -0
- package/dist/cli/commands/_atlas-map.d.ts +409 -0
- package/dist/cli/commands/_atlas-map.d.ts.map +1 -0
- package/dist/cli/commands/_atlas-map.js +1014 -0
- package/dist/cli/commands/_atlas-map.js.map +1 -0
- package/dist/cli/commands/_atlas-route.d.ts +111 -0
- package/dist/cli/commands/_atlas-route.d.ts.map +1 -0
- package/dist/cli/commands/_atlas-route.js +140 -0
- package/dist/cli/commands/_atlas-route.js.map +1 -0
- package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
- package/dist/cli/commands/_discovery-opts.js +10 -1
- package/dist/cli/commands/_discovery-opts.js.map +1 -1
- package/dist/cli/commands/atlas.d.ts +20 -0
- package/dist/cli/commands/atlas.d.ts.map +1 -1
- package/dist/cli/commands/atlas.js +333 -19
- 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 +12 -3
- package/dist/cli/commands/audit.js.map +1 -1
- package/dist/cli/commands/axes.js +4 -4
- package/dist/cli/commands/candidates.d.ts.map +1 -1
- package/dist/cli/commands/candidates.js +3 -2
- package/dist/cli/commands/candidates.js.map +1 -1
- package/dist/cli/commands/canonical.d.ts.map +1 -1
- package/dist/cli/commands/canonical.js +39 -10
- package/dist/cli/commands/canonical.js.map +1 -1
- package/dist/cli/commands/confront.d.ts.map +1 -1
- package/dist/cli/commands/confront.js +210 -28
- package/dist/cli/commands/confront.js.map +1 -1
- package/dist/cli/commands/connectors.d.ts.map +1 -1
- package/dist/cli/commands/connectors.js +5 -4
- package/dist/cli/commands/connectors.js.map +1 -1
- package/dist/cli/commands/coverage.js +3 -3
- package/dist/cli/commands/derive.d.ts.map +1 -1
- package/dist/cli/commands/derive.js +22 -9
- 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 +149 -32
- 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 +87 -17
- package/dist/cli/commands/eval.js.map +1 -1
- package/dist/cli/commands/evaluate.d.ts +30 -0
- package/dist/cli/commands/evaluate.d.ts.map +1 -1
- package/dist/cli/commands/evaluate.js +441 -25
- 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 +38 -11
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/frontier.d.ts +3 -0
- package/dist/cli/commands/frontier.d.ts.map +1 -0
- package/dist/cli/commands/frontier.js +28 -0
- package/dist/cli/commands/frontier.js.map +1 -0
- package/dist/cli/commands/ground.d.ts.map +1 -1
- package/dist/cli/commands/ground.js +37 -12
- package/dist/cli/commands/ground.js.map +1 -1
- package/dist/cli/commands/index.d.ts +5 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +5 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/map.d.ts +8 -0
- package/dist/cli/commands/map.d.ts.map +1 -1
- package/dist/cli/commands/map.js +385 -57
- package/dist/cli/commands/map.js.map +1 -1
- package/dist/cli/commands/metric.d.ts +3 -0
- package/dist/cli/commands/metric.d.ts.map +1 -0
- package/dist/cli/commands/metric.js +136 -0
- package/dist/cli/commands/metric.js.map +1 -0
- package/dist/cli/commands/path.d.ts +109 -1
- package/dist/cli/commands/path.d.ts.map +1 -1
- package/dist/cli/commands/path.js +1019 -109
- package/dist/cli/commands/path.js.map +1 -1
- package/dist/cli/commands/predict.d.ts.map +1 -1
- package/dist/cli/commands/predict.js +3 -2
- package/dist/cli/commands/predict.js.map +1 -1
- package/dist/cli/commands/priority.d.ts.map +1 -1
- package/dist/cli/commands/priority.js +3 -2
- package/dist/cli/commands/priority.js.map +1 -1
- package/dist/cli/commands/probe.d.ts +7 -0
- package/dist/cli/commands/probe.d.ts.map +1 -1
- package/dist/cli/commands/probe.js +234 -52
- package/dist/cli/commands/probe.js.map +1 -1
- package/dist/cli/commands/recover.d.ts.map +1 -1
- package/dist/cli/commands/recover.js +17 -6
- package/dist/cli/commands/recover.js.map +1 -1
- package/dist/cli/commands/regime.d.ts +1 -1
- package/dist/cli/commands/regime.d.ts.map +1 -1
- package/dist/cli/commands/regime.js +134 -33
- package/dist/cli/commands/regime.js.map +1 -1
- package/dist/cli/commands/retrieve.d.ts +3 -0
- package/dist/cli/commands/retrieve.d.ts.map +1 -0
- package/dist/cli/commands/retrieve.js +65 -0
- package/dist/cli/commands/retrieve.js.map +1 -0
- package/dist/cli/commands/search.d.ts +3 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +70 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/commands/symbolic.d.ts.map +1 -1
- package/dist/cli/commands/symbolic.js +107 -16
- package/dist/cli/commands/symbolic.js.map +1 -1
- package/dist/cli/commands/testplan.d.ts +3 -0
- package/dist/cli/commands/testplan.d.ts.map +1 -0
- package/dist/cli/commands/testplan.js +131 -0
- package/dist/cli/commands/testplan.js.map +1 -0
- package/dist/cli/conventions.d.ts +22 -0
- package/dist/cli/conventions.d.ts.map +1 -0
- package/dist/cli/conventions.js +48 -0
- package/dist/cli/conventions.js.map +1 -0
- package/dist/cli/euler-guard.d.ts +9 -0
- package/dist/cli/euler-guard.d.ts.map +1 -0
- package/dist/cli/euler-guard.js +11 -0
- package/dist/cli/euler-guard.js.map +1 -0
- package/dist/cli/eval-numbers.d.ts +26 -0
- package/dist/cli/eval-numbers.d.ts.map +1 -0
- package/dist/cli/eval-numbers.js +48 -0
- package/dist/cli/eval-numbers.js.map +1 -0
- package/dist/cli/expr-print.d.ts +25 -0
- package/dist/cli/expr-print.d.ts.map +1 -0
- package/dist/cli/expr-print.js +123 -0
- package/dist/cli/expr-print.js.map +1 -0
- package/dist/cli/graphs.d.ts +26 -0
- package/dist/cli/graphs.d.ts.map +1 -1
- package/dist/cli/graphs.js +19 -0
- package/dist/cli/graphs.js.map +1 -1
- package/dist/cli/main.d.ts +4 -10
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +370 -167
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/map-evidence.d.ts +47 -0
- package/dist/cli/map-evidence.d.ts.map +1 -0
- package/dist/cli/map-evidence.js +53 -0
- package/dist/cli/map-evidence.js.map +1 -0
- package/dist/cli/output.d.ts +21 -1
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +5 -1
- package/dist/cli/output.js.map +1 -1
- package/dist/{composition → cli}/poster-source.d.ts +3 -2
- package/dist/cli/poster-source.d.ts.map +1 -0
- package/dist/{composition → cli}/poster-source.js +2 -1
- package/dist/cli/poster-source.js.map +1 -0
- package/dist/cli/record-reach.d.ts +44 -0
- package/dist/cli/record-reach.d.ts.map +1 -0
- package/dist/cli/record-reach.js +228 -0
- package/dist/cli/record-reach.js.map +1 -0
- package/dist/cli/record-tables.d.ts +38 -0
- package/dist/cli/record-tables.d.ts.map +1 -0
- package/dist/cli/record-tables.js +110 -0
- package/dist/cli/record-tables.js.map +1 -0
- package/dist/cli/record.d.ts +141 -0
- package/dist/cli/record.d.ts.map +1 -0
- package/dist/cli/record.js +612 -0
- package/dist/cli/record.js.map +1 -0
- package/dist/cli/search-index.d.ts +56 -0
- package/dist/cli/search-index.d.ts.map +1 -0
- package/dist/cli/search-index.js +190 -0
- package/dist/cli/search-index.js.map +1 -0
- package/dist/cli/statuses.d.ts +25 -0
- package/dist/cli/statuses.d.ts.map +1 -0
- package/dist/cli/statuses.js +276 -0
- package/dist/cli/statuses.js.map +1 -0
- package/dist/cli/version.d.ts +8 -0
- package/dist/cli/version.d.ts.map +1 -1
- package/dist/cli/version.js +32 -1
- package/dist/cli/version.js.map +1 -1
- package/dist/cli-api.d.ts +34 -16
- package/dist/cli-api.d.ts.map +1 -1
- package/dist/cli-api.js +32 -12
- package/dist/cli-api.js.map +1 -1
- package/dist/composition/audit-coverage.d.ts +70 -0
- package/dist/composition/audit-coverage.d.ts.map +1 -0
- package/dist/composition/audit-coverage.js +80 -0
- package/dist/composition/audit-coverage.js.map +1 -0
- package/dist/composition/bridge-analysis.d.ts.map +1 -1
- package/dist/composition/bridge-analysis.js +2 -1
- package/dist/composition/bridge-analysis.js.map +1 -1
- package/dist/composition/buckingham-filter.d.ts +34 -0
- package/dist/composition/buckingham-filter.d.ts.map +1 -0
- package/dist/composition/buckingham-filter.js +64 -0
- package/dist/composition/buckingham-filter.js.map +1 -0
- package/dist/composition/canonical-compare.d.ts +29 -16
- package/dist/composition/canonical-compare.d.ts.map +1 -1
- package/dist/composition/canonical-compare.js +355 -59
- package/dist/composition/canonical-compare.js.map +1 -1
- package/dist/composition/canonical-graph.d.ts +2 -2
- package/dist/composition/canonical-graph.js +3 -3
- package/dist/composition/canonical-graph.js.map +1 -1
- package/dist/composition/canonical-prefactors.d.ts +24 -1
- package/dist/composition/canonical-prefactors.d.ts.map +1 -1
- package/dist/composition/canonical-prefactors.js +97 -1
- package/dist/composition/canonical-prefactors.js.map +1 -1
- package/dist/composition/catalog-graph.d.ts +4 -4
- package/dist/composition/catalog-graph.d.ts.map +1 -1
- package/dist/composition/catalog-graph.js +6 -4
- package/dist/composition/catalog-graph.js.map +1 -1
- package/dist/composition/chain-candidate.d.ts +43 -0
- package/dist/composition/chain-candidate.d.ts.map +1 -0
- package/dist/composition/chain-candidate.js +56 -0
- package/dist/composition/chain-candidate.js.map +1 -0
- package/dist/composition/chain-match.d.ts +19 -0
- package/dist/composition/chain-match.d.ts.map +1 -0
- package/dist/composition/chain-match.js +10 -0
- package/dist/composition/chain-match.js.map +1 -0
- package/dist/composition/chain-regime.d.ts +34 -0
- package/dist/composition/chain-regime.d.ts.map +1 -0
- package/dist/composition/chain-regime.js +89 -0
- package/dist/composition/chain-regime.js.map +1 -0
- package/dist/composition/compose-symbolic.js +1 -1
- package/dist/composition/compose-symbolic.js.map +1 -1
- package/dist/composition/compose.d.ts +11 -0
- package/dist/composition/compose.d.ts.map +1 -1
- package/dist/composition/compose.js +30 -10
- package/dist/composition/compose.js.map +1 -1
- package/dist/composition/composition-recovery.d.ts +47 -0
- package/dist/composition/composition-recovery.d.ts.map +1 -0
- package/dist/composition/composition-recovery.js +77 -0
- package/dist/composition/composition-recovery.js.map +1 -0
- package/dist/composition/consequence.d.ts +39 -0
- package/dist/composition/consequence.d.ts.map +1 -1
- package/dist/composition/consequence.js +37 -0
- package/dist/composition/consequence.js.map +1 -1
- package/dist/{bridges → composition}/descriptor.d.ts +6 -3
- package/dist/composition/descriptor.d.ts.map +1 -0
- package/dist/{bridges → composition}/descriptor.js +7 -4
- package/dist/composition/descriptor.js.map +1 -0
- package/dist/composition/discovery.d.ts +20 -0
- package/dist/composition/discovery.d.ts.map +1 -1
- package/dist/composition/discovery.js +27 -5
- package/dist/composition/discovery.js.map +1 -1
- package/dist/composition/edge.d.ts +1 -1
- package/dist/composition/edge.d.ts.map +1 -1
- package/dist/composition/edge.js.map +1 -1
- package/dist/composition/edges/_catalog-helpers.d.ts +4 -0
- package/dist/composition/edges/_catalog-helpers.d.ts.map +1 -1
- package/dist/composition/edges/_catalog-helpers.js +15 -0
- package/dist/composition/edges/_catalog-helpers.js.map +1 -1
- package/dist/composition/edges/calibration.d.ts +0 -9
- package/dist/composition/edges/calibration.d.ts.map +1 -1
- package/dist/composition/edges/calibration.js +85 -0
- package/dist/composition/edges/calibration.js.map +1 -1
- package/dist/composition/edges/catalog-condensed-matter.d.ts +0 -9
- package/dist/composition/edges/catalog-condensed-matter.d.ts.map +1 -1
- package/dist/composition/edges/catalog-condensed-matter.js +32 -1
- package/dist/composition/edges/catalog-condensed-matter.js.map +1 -1
- package/dist/composition/edges/catalog-fields.d.ts.map +1 -1
- package/dist/composition/edges/catalog-fields.js +2 -1
- package/dist/composition/edges/catalog-fields.js.map +1 -1
- package/dist/composition/edges/catalog-full.d.ts +4 -2
- package/dist/composition/edges/catalog-full.d.ts.map +1 -1
- package/dist/composition/edges/catalog-full.js +4 -2
- package/dist/composition/edges/catalog-full.js.map +1 -1
- package/dist/composition/edges/catalog-gravitation-cosmology.d.ts +0 -10
- package/dist/composition/edges/catalog-gravitation-cosmology.d.ts.map +1 -1
- package/dist/composition/edges/catalog-gravitation-cosmology.js +31 -1
- package/dist/composition/edges/catalog-gravitation-cosmology.js.map +1 -1
- package/dist/composition/edges/catalog-quantum.d.ts +0 -10
- package/dist/composition/edges/catalog-quantum.d.ts.map +1 -1
- package/dist/composition/edges/catalog-quantum.js +53 -17
- package/dist/composition/edges/catalog-quantum.js.map +1 -1
- package/dist/composition/edges/catalog-tranche.d.ts +0 -15
- package/dist/composition/edges/catalog-tranche.d.ts.map +1 -1
- package/dist/composition/edges/catalog-tranche.js +70 -16
- package/dist/composition/edges/catalog-tranche.js.map +1 -1
- package/dist/composition/edges/proved-seeds.d.ts +39 -0
- package/dist/composition/edges/proved-seeds.d.ts.map +1 -0
- package/dist/composition/edges/proved-seeds.js +197 -0
- package/dist/composition/edges/proved-seeds.js.map +1 -0
- package/dist/composition/enumerate.d.ts +20 -0
- package/dist/composition/enumerate.d.ts.map +1 -1
- package/dist/composition/enumerate.js +23 -0
- package/dist/composition/enumerate.js.map +1 -1
- package/dist/composition/expr-eval.d.ts +5 -4
- package/dist/composition/expr-eval.d.ts.map +1 -1
- package/dist/composition/expr-eval.js +40 -6
- package/dist/composition/expr-eval.js.map +1 -1
- package/dist/composition/expr-simplify.js +1 -1
- package/dist/composition/expr-simplify.js.map +1 -1
- package/dist/composition/expr-subst.d.ts +2 -1
- package/dist/composition/expr-subst.d.ts.map +1 -1
- package/dist/composition/expr-subst.js +9 -2
- package/dist/composition/expr-subst.js.map +1 -1
- package/dist/composition/frontier-account.d.ts +78 -0
- package/dist/composition/frontier-account.d.ts.map +1 -0
- package/dist/composition/frontier-account.js +127 -0
- package/dist/composition/frontier-account.js.map +1 -0
- package/dist/composition/graph-viz.d.ts +7 -22
- package/dist/composition/graph-viz.d.ts.map +1 -1
- package/dist/composition/graph-viz.js +4 -27
- package/dist/composition/graph-viz.js.map +1 -1
- package/dist/composition/grounding.d.ts +49 -0
- package/dist/composition/grounding.d.ts.map +1 -1
- package/dist/composition/grounding.js +38 -0
- package/dist/composition/grounding.js.map +1 -1
- package/dist/composition/index.d.ts +0 -2
- package/dist/composition/index.d.ts.map +1 -1
- package/dist/composition/index.js +1 -1
- package/dist/composition/index.js.map +1 -1
- package/dist/composition/not-composable-seeds.d.ts +30 -0
- package/dist/composition/not-composable-seeds.d.ts.map +1 -0
- package/dist/composition/not-composable-seeds.js +90 -0
- package/dist/composition/not-composable-seeds.js.map +1 -0
- package/dist/composition/probe/expression-gaps.d.ts +27 -0
- package/dist/composition/probe/expression-gaps.d.ts.map +1 -0
- package/dist/composition/probe/expression-gaps.js +47 -0
- package/dist/composition/probe/expression-gaps.js.map +1 -0
- package/dist/composition/probe/frontier.d.ts +2 -1
- package/dist/composition/probe/frontier.d.ts.map +1 -1
- package/dist/composition/probe/frontier.js +3 -2
- package/dist/composition/probe/frontier.js.map +1 -1
- package/dist/composition/probe/index.d.ts +4 -1
- package/dist/composition/probe/index.d.ts.map +1 -1
- package/dist/composition/probe/index.js +3 -1
- package/dist/composition/probe/index.js.map +1 -1
- package/dist/composition/probe/pipeline.d.ts +2 -0
- package/dist/composition/probe/pipeline.d.ts.map +1 -1
- package/dist/composition/probe/pipeline.js +6 -2
- package/dist/composition/probe/pipeline.js.map +1 -1
- package/dist/composition/probe/problem.d.ts +7 -0
- package/dist/composition/probe/problem.d.ts.map +1 -1
- package/dist/composition/probe/problem.js +15 -5
- package/dist/composition/probe/problem.js.map +1 -1
- package/dist/composition/probe/search-budget.d.ts.map +1 -1
- package/dist/composition/probe/search-budget.js +6 -2
- package/dist/composition/probe/search-budget.js.map +1 -1
- package/dist/composition/probe/study.d.ts +340 -0
- package/dist/composition/probe/study.d.ts.map +1 -0
- package/dist/composition/probe/study.js +1519 -0
- package/dist/composition/probe/study.js.map +1 -0
- package/dist/composition/proposed-bridges.js +1 -1
- package/dist/composition/proposed-bridges.js.map +1 -1
- package/dist/composition/quantities/_dims.d.ts +6 -0
- package/dist/composition/quantities/_dims.d.ts.map +1 -1
- package/dist/composition/quantities/_dims.js +6 -0
- package/dist/composition/quantities/_dims.js.map +1 -1
- package/dist/composition/quantities/condensed-matter.d.ts +16 -0
- package/dist/composition/quantities/condensed-matter.d.ts.map +1 -1
- package/dist/composition/quantities/condensed-matter.js +43 -2
- package/dist/composition/quantities/condensed-matter.js.map +1 -1
- package/dist/composition/quantities/fields.d.ts +10 -0
- package/dist/composition/quantities/fields.d.ts.map +1 -1
- package/dist/composition/quantities/fields.js +37 -2
- package/dist/composition/quantities/fields.js.map +1 -1
- package/dist/composition/quantities/gravitation-cosmology.d.ts +4 -0
- package/dist/composition/quantities/gravitation-cosmology.d.ts.map +1 -1
- package/dist/composition/quantities/gravitation-cosmology.js +14 -0
- package/dist/composition/quantities/gravitation-cosmology.js.map +1 -1
- package/dist/composition/quantities/quantum.d.ts +2 -0
- package/dist/composition/quantities/quantum.d.ts.map +1 -1
- package/dist/composition/quantities/quantum.js +7 -0
- package/dist/composition/quantities/quantum.js.map +1 -1
- package/dist/composition/quantities.d.ts +4 -16
- package/dist/composition/quantities.d.ts.map +1 -1
- package/dist/composition/quantities.js +4 -16
- package/dist/composition/quantities.js.map +1 -1
- package/dist/composition/retrodiction.d.ts.map +1 -1
- package/dist/composition/retrodiction.js +6 -2
- package/dist/composition/retrodiction.js.map +1 -1
- package/dist/composition/uncertainty.d.ts +1 -1
- package/dist/composition/uncertainty.d.ts.map +1 -1
- package/dist/composition/user-equation.d.ts +79 -8
- package/dist/composition/user-equation.d.ts.map +1 -1
- package/dist/composition/user-equation.js +224 -32
- package/dist/composition/user-equation.js.map +1 -1
- package/dist/core/constants.d.ts +17 -5
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +17 -5
- package/dist/core/constants.js.map +1 -1
- package/dist/core/types.d.ts +1 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +2 -1
- package/dist/core/types.js.map +1 -1
- package/dist/dimensional/curvature.d.ts +7 -56
- package/dist/dimensional/curvature.d.ts.map +1 -1
- package/dist/dimensional/curvature.js +7 -76
- package/dist/dimensional/curvature.js.map +1 -1
- package/dist/dimensional/dimension-spec.d.ts +7 -1
- package/dist/dimensional/dimension-spec.d.ts.map +1 -1
- package/dist/dimensional/dimension-spec.js +131 -3
- package/dist/dimensional/dimension-spec.js.map +1 -1
- package/dist/dimensional/formula-names.d.ts +30 -0
- package/dist/dimensional/formula-names.d.ts.map +1 -0
- package/dist/dimensional/formula-names.js +37 -0
- package/dist/dimensional/formula-names.js.map +1 -0
- package/dist/dimensional/natural-units.d.ts +33 -0
- package/dist/dimensional/natural-units.d.ts.map +1 -0
- package/dist/dimensional/natural-units.js +58 -0
- package/dist/dimensional/natural-units.js.map +1 -0
- package/dist/{composition → dimensional}/symbolic-constants.d.ts +21 -2
- package/dist/dimensional/symbolic-constants.d.ts.map +1 -0
- package/dist/dimensional/symbolic-constants.js +122 -0
- package/dist/dimensional/symbolic-constants.js.map +1 -0
- package/dist/dimensional/unit-convention.d.ts +30 -0
- package/dist/dimensional/unit-convention.d.ts.map +1 -0
- package/dist/dimensional/unit-convention.js +60 -0
- package/dist/dimensional/unit-convention.js.map +1 -0
- package/dist/dimensional/units.d.ts +43 -0
- package/dist/dimensional/units.d.ts.map +1 -0
- package/dist/dimensional/units.js +197 -0
- package/dist/dimensional/units.js.map +1 -0
- package/dist/index.d.ts +11 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -3
- package/dist/index.js.map +1 -1
- package/dist/numerical/bianchi-residual.d.ts +55 -0
- package/dist/numerical/bianchi-residual.d.ts.map +1 -0
- package/dist/numerical/bianchi-residual.js +79 -0
- package/dist/numerical/bianchi-residual.js.map +1 -0
- package/dist/numerical/binding-value.d.ts +67 -0
- package/dist/numerical/binding-value.d.ts.map +1 -0
- package/dist/numerical/binding-value.js +349 -0
- package/dist/numerical/binding-value.js.map +1 -0
- package/dist/numerical/connection-lowering-helpers.d.ts.map +1 -1
- package/dist/numerical/connection-lowering-helpers.js +13 -26
- package/dist/numerical/connection-lowering-helpers.js.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.js +9 -0
- package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
- package/dist/numerical/float64-engine.d.ts.map +1 -1
- package/dist/numerical/float64-engine.js +23 -16
- package/dist/numerical/float64-engine.js.map +1 -1
- package/dist/numerical/formula-dimension.d.ts +14 -0
- package/dist/numerical/formula-dimension.d.ts.map +1 -1
- package/dist/numerical/formula-dimension.js +56 -9
- 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 +75 -6
- package/dist/numerical/formula-mathts.js.map +1 -1
- package/dist/numerical/formula.d.ts +33 -0
- package/dist/numerical/formula.d.ts.map +1 -1
- package/dist/numerical/formula.js +75 -6
- package/dist/numerical/formula.js.map +1 -1
- package/dist/numerical/spacetime-metrics.d.ts +243 -0
- package/dist/numerical/spacetime-metrics.d.ts.map +1 -0
- package/dist/numerical/spacetime-metrics.js +1056 -0
- package/dist/numerical/spacetime-metrics.js.map +1 -0
- package/dist/relations/category.d.ts +38 -0
- package/dist/relations/category.d.ts.map +1 -0
- package/dist/relations/category.js +23 -0
- package/dist/relations/category.js.map +1 -0
- package/dist/relations/composition-table.d.ts +61 -0
- package/dist/relations/composition-table.d.ts.map +1 -0
- package/dist/relations/composition-table.js +140 -0
- package/dist/relations/composition-table.js.map +1 -0
- package/dist/relations/conventions.d.ts +63 -0
- package/dist/relations/conventions.d.ts.map +1 -0
- package/dist/relations/conventions.js +93 -0
- package/dist/relations/conventions.js.map +1 -0
- package/dist/relations/regime.d.ts +159 -0
- package/dist/relations/regime.d.ts.map +1 -0
- package/dist/relations/regime.js +304 -0
- package/dist/relations/regime.js.map +1 -0
- package/dist/relations/types.d.ts +257 -0
- package/dist/relations/types.d.ts.map +1 -0
- package/dist/relations/types.js +35 -0
- package/dist/relations/types.js.map +1 -0
- package/package.json +166 -163
- package/dist/bridges/descriptor.d.ts.map +0 -1
- package/dist/bridges/descriptor.js.map +0 -1
- package/dist/composition/poster-source.d.ts.map +0 -1
- package/dist/composition/poster-source.js.map +0 -1
- package/dist/composition/symbolic-constants.d.ts.map +0 -1
- package/dist/composition/symbolic-constants.js +0 -65
- package/dist/composition/symbolic-constants.js.map +0 -1
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ab-pendulum-linear`'s declared translation from its bound's quantity, the
|
|
3
|
+
* relative period error ε, into an UPPER BOUND on the pointwise position error
|
|
4
|
+
* |θ(t) − θ_lin(t)|, in rad.
|
|
5
|
+
*
|
|
6
|
+
* Both motions start from rest at θ0. The pendulum is θ(t) = F(φ), φ = 2πt/T,
|
|
7
|
+
* with the classical Fourier series of the elliptic solution
|
|
8
|
+
*
|
|
9
|
+
* F(φ) = Σ_{n≥0} (−1)ⁿ aₙ cos((2n+1)φ), aₙ = 8 q^{n+½} / ((2n+1)(1 + q^{2n+1})),
|
|
10
|
+
*
|
|
11
|
+
* q the nome of k = sin(θ0/2); F(0) = θ0 = Σ (−1)ⁿ aₙ. The linear motion is
|
|
12
|
+
* θ0 cos φ_lin, φ_lin = 2πt/T0. Splitting at θ0 cos φ,
|
|
13
|
+
*
|
|
14
|
+
* |θ − θ_lin| ≤ |F(φ) − θ0 cos φ| + θ0 |cos φ − cos φ_lin|
|
|
15
|
+
* ≤ 2 Σ_{n≥1} aₙ + 2θ0 |sin(Δφ/2)|,
|
|
16
|
+
*
|
|
17
|
+
* because F(φ) − θ0 cos φ = Σ_{n≥1} (−1)ⁿ aₙ (cos((2n+1)φ) − cos φ). With
|
|
18
|
+
* aₙ ≤ (8/3) q^{n+½} for n ≥ 1 the first term is at most
|
|
19
|
+
* W̄ = (16/3) q^{3/2}/(1 − q) ≈ θ0³/96, and Δφ = 2π(t/T0) ε/(1+ε) is the
|
|
20
|
+
* exact phase lead of `phase-translation.ts`. So
|
|
21
|
+
*
|
|
22
|
+
* B(t) = W̄ + 2θ0 sin(min(Δφ(t), π)/2)
|
|
23
|
+
*
|
|
24
|
+
* bounds the error at every t; the clamp at π keeps B non-decreasing in t and
|
|
25
|
+
* is still a bound, since |cos a − cos b| ≤ 2. It is rigorous GIVEN the
|
|
26
|
+
* Fourier series, which is quoted, not derived here. Witness W7xs checks the
|
|
27
|
+
* series against RK4 over one period at each θ0 of a grid across the domain;
|
|
28
|
+
* that is a check at those points, not a derivation.
|
|
29
|
+
*
|
|
30
|
+
* B is an upper bound, not the error: past its horizon the BOUND exceeds the
|
|
31
|
+
* tolerance, and the error may not. It is near-sharp where Δφ → π (the
|
|
32
|
+
* motions are in antiphase and the error reaches 2θ0), and the waveform term
|
|
33
|
+
* cannot be dropped: without W̄, RK4 finds the error above 2θ0 sin(Δφ/2) by
|
|
34
|
+
* about 3% (witness control).
|
|
35
|
+
*
|
|
36
|
+
* @module atlas/oscillators/position-translation
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
39
|
+
import { pendulumPeriodErrorAt } from './bridges-limits.js';
|
|
40
|
+
import { linearAccel, pendulumAccel, pendulumNome, rk4Step, theta0OfPeriodError } from './pendulum-motion.js';
|
|
41
|
+
const TWO_PI = 2 * Math.PI;
|
|
42
|
+
/** W̄ = (16/3) q^{3/2}/(1 − q): the bound on the waveform distortion |F(φ) − θ0 cos φ|. @internal */
|
|
43
|
+
export function waveformBound(theta0) {
|
|
44
|
+
const q = pendulumNome(theta0);
|
|
45
|
+
return ((16 / 3) * q ** 1.5) / (1 - q);
|
|
46
|
+
}
|
|
47
|
+
/** The pendulum's fundamental Fourier coefficient a₀ = 8√q/(1 + q). @internal */
|
|
48
|
+
export function fundamentalCoefficient(theta0) {
|
|
49
|
+
const q = pendulumNome(theta0);
|
|
50
|
+
return (8 * Math.sqrt(q)) / (1 + q);
|
|
51
|
+
}
|
|
52
|
+
const lead = (eps, tOverT0) => (TWO_PI * tOverT0 * eps) / (1 + eps);
|
|
53
|
+
/** B(t/T0) at θ0 recovered from ε; `drift` and `waveform` scale its two terms (1, 1 is B itself). */
|
|
54
|
+
function positionBound(eps, drift = 1, waveform = 1) {
|
|
55
|
+
const theta0 = theta0OfPeriodError(eps);
|
|
56
|
+
const floor = waveform * waveformBound(theta0);
|
|
57
|
+
return (tOverT0) => floor + drift * 2 * theta0 * Math.sin(Math.min(lead(eps, tOverT0), Math.PI) / 2);
|
|
58
|
+
}
|
|
59
|
+
function positionHorizon(eps, tolerance, T0) {
|
|
60
|
+
if (T0 === undefined || !Number.isFinite(T0) || T0 <= 0 || !Number.isFinite(eps) || eps < 0)
|
|
61
|
+
return Number.NaN;
|
|
62
|
+
if (eps === 0)
|
|
63
|
+
return Infinity;
|
|
64
|
+
const theta0 = theta0OfPeriodError(eps);
|
|
65
|
+
const floor = waveformBound(theta0);
|
|
66
|
+
if (tolerance < floor)
|
|
67
|
+
return Number.NaN;
|
|
68
|
+
const r = (tolerance - floor) / (2 * theta0);
|
|
69
|
+
if (r >= 1)
|
|
70
|
+
return Infinity;
|
|
71
|
+
return (2 * Math.asin(r) * T0 * (1 + eps)) / (TWO_PI * eps);
|
|
72
|
+
}
|
|
73
|
+
/** The point witness integrates at most this many periods of T0. */
|
|
74
|
+
export const POSITION_POINT_MAX_PERIODS = 512;
|
|
75
|
+
/** Samples per T0 both resolutions report at. */
|
|
76
|
+
const SAMPLES_PER_PERIOD = 200;
|
|
77
|
+
/**
|
|
78
|
+
* |θ(t) − θ_lin(t)| from RK4 of both motions, and B(t) at the same samples,
|
|
79
|
+
* over `periods` of T0; `stepsPerPeriod` must be a multiple of 200.
|
|
80
|
+
*/
|
|
81
|
+
function dominanceSamples(theta0, periods, stepsPerPeriod, bound) {
|
|
82
|
+
const stride = stepsPerPeriod / SAMPLES_PER_PERIOD;
|
|
83
|
+
const h = 1 / stepsPerPeriod;
|
|
84
|
+
const measured = [];
|
|
85
|
+
const b = [];
|
|
86
|
+
let x = theta0;
|
|
87
|
+
let v = 0;
|
|
88
|
+
let y = theta0;
|
|
89
|
+
let u = 0;
|
|
90
|
+
const steps = Math.floor(periods * SAMPLES_PER_PERIOD) * stride;
|
|
91
|
+
for (let i = 1; i <= steps; i++) {
|
|
92
|
+
[x, v] = rk4Step(x, v, h, pendulumAccel);
|
|
93
|
+
[y, u] = rk4Step(y, u, h, linearAccel);
|
|
94
|
+
if (i % stride === 0) {
|
|
95
|
+
measured.push(Math.abs(x - y));
|
|
96
|
+
b.push(bound(i * h));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return { measured, bound: b };
|
|
100
|
+
}
|
|
101
|
+
/** The window a dominance witness covers: up to antiphase (Δφ = π), past which B ≥ 2θ0 holds trivially, capped. */
|
|
102
|
+
function dominanceWindow(eps) {
|
|
103
|
+
return Math.min(POSITION_POINT_MAX_PERIODS, (1 + eps) / (2 * eps));
|
|
104
|
+
}
|
|
105
|
+
function dominanceSpec(id, eps, drift, waveform) {
|
|
106
|
+
const theta0 = theta0OfPeriodError(eps);
|
|
107
|
+
const periods = dominanceWindow(eps);
|
|
108
|
+
return {
|
|
109
|
+
id,
|
|
110
|
+
kind: 'dominance',
|
|
111
|
+
evaluate: (stepsPerPeriod) => dominanceSamples(theta0, periods, stepsPerPeriod, positionBound(eps, drift, waveform)),
|
|
112
|
+
coarseResolution: 200,
|
|
113
|
+
fineResolution: 800,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/** a₀ measured by projecting one RK4 pendulum period onto cos φ (trapezoid, exact for a periodic integrand). */
|
|
117
|
+
export function measureFundamental(theta0, stepsPerPeriod) {
|
|
118
|
+
const T = 1 + pendulumPeriodErrorAt({ theta0 });
|
|
119
|
+
const h = T / stepsPerPeriod;
|
|
120
|
+
let x = theta0;
|
|
121
|
+
let v = 0;
|
|
122
|
+
let sum = theta0;
|
|
123
|
+
for (let i = 1; i < stepsPerPeriod; i++) {
|
|
124
|
+
[x, v] = rk4Step(x, v, h, pendulumAccel);
|
|
125
|
+
sum += x * Math.cos((TWO_PI * i) / stepsPerPeriod);
|
|
126
|
+
}
|
|
127
|
+
return (2 * sum) / stepsPerPeriod;
|
|
128
|
+
}
|
|
129
|
+
/** The θ0 at which W7xs checks the Fourier series: a grid across the bridge's domain θ0 ≤ 0.5. @internal */
|
|
130
|
+
export const FOURIER_SERIES_THETA0S = [0.01, 0.1, 0.2, 0.3, 0.4, 0.5];
|
|
131
|
+
const FOURIER_SERIES_TERMS = 20;
|
|
132
|
+
const FOURIER_SERIES_TOLERANCE = 1e-9;
|
|
133
|
+
/**
|
|
134
|
+
* F(φ) = Σ_{n<20} (−1)ⁿ aₙ cos((2n+1)φ). `'minus'` puts (1 − q^{2n+1}) in the
|
|
135
|
+
* denominator of aₙ, a transcription error the control uses.
|
|
136
|
+
*/
|
|
137
|
+
function fourierSeries(theta0, phi, variant) {
|
|
138
|
+
const q = pendulumNome(theta0);
|
|
139
|
+
let s = 0;
|
|
140
|
+
for (let n = 0; n < FOURIER_SERIES_TERMS; n++) {
|
|
141
|
+
const odd = 2 * n + 1;
|
|
142
|
+
const a = (8 * q ** (n + 0.5)) / (odd * (variant === 'plus' ? 1 + q ** odd : 1 - q ** odd));
|
|
143
|
+
s += (n % 2 === 0 ? a : -a) * Math.cos(odd * phi);
|
|
144
|
+
}
|
|
145
|
+
return s;
|
|
146
|
+
}
|
|
147
|
+
/** max over the grid, and over one period T = T0(1+ε) sampled at every RK4 step, of |θ_RK4(t) − F(2πt/T)|. */
|
|
148
|
+
function fourierSeriesDeviation(stepsPerPeriod, variant) {
|
|
149
|
+
let worst = 0;
|
|
150
|
+
for (const theta0 of FOURIER_SERIES_THETA0S) {
|
|
151
|
+
const h = (1 + pendulumPeriodErrorAt({ theta0 })) / stepsPerPeriod;
|
|
152
|
+
let x = theta0;
|
|
153
|
+
let v = 0;
|
|
154
|
+
worst = Math.max(worst, Math.abs(x - fourierSeries(theta0, 0, variant)));
|
|
155
|
+
for (let i = 1; i <= stepsPerPeriod; i++) {
|
|
156
|
+
[x, v] = rk4Step(x, v, h, pendulumAccel);
|
|
157
|
+
worst = Math.max(worst, Math.abs(x - fourierSeries(theta0, (TWO_PI * i) / stepsPerPeriod, variant)));
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return worst;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* W7xs, or its control: the Fourier series against RK4 of the pendulum, at 200
|
|
164
|
+
* and 800 steps per period, within 1e-9 rad at every step and every grid θ0.
|
|
165
|
+
* @internal
|
|
166
|
+
*/
|
|
167
|
+
export function fourierSeriesCheck(id, variant = 'plus') {
|
|
168
|
+
return {
|
|
169
|
+
id,
|
|
170
|
+
evaluate: (stepsPerPeriod) => fourierSeriesDeviation(stepsPerPeriod, variant),
|
|
171
|
+
target: 0,
|
|
172
|
+
coarseResolution: 200,
|
|
173
|
+
fineResolution: 800,
|
|
174
|
+
tolerance: FOURIER_SERIES_TOLERANCE,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
const W7X_THETA0 = 0.3;
|
|
178
|
+
const W7X_EPS = pendulumPeriodErrorAt({ theta0: W7X_THETA0 });
|
|
179
|
+
const W7XA = {
|
|
180
|
+
id: 'W7xa',
|
|
181
|
+
evaluate: (stepsPerPeriod) => measureFundamental(W7X_THETA0, stepsPerPeriod),
|
|
182
|
+
target: fundamentalCoefficient(W7X_THETA0),
|
|
183
|
+
coarseResolution: 200,
|
|
184
|
+
fineResolution: 800,
|
|
185
|
+
tolerance: 1e-10,
|
|
186
|
+
};
|
|
187
|
+
function positionPointCheck(eps) {
|
|
188
|
+
if (!Number.isFinite(eps) || eps <= 0)
|
|
189
|
+
return { unavailable: `θ0 = 0 at ε = ${eps}: both motions are at rest and the error is 0` };
|
|
190
|
+
const theta0 = theta0OfPeriodError(eps);
|
|
191
|
+
const periods = dominanceWindow(eps);
|
|
192
|
+
const capped = periods === POSITION_POINT_MAX_PERIODS ? `, capped at ${POSITION_POINT_MAX_PERIODS} T0 (antiphase is at ${(1 + eps) / (2 * eps)} T0)` : ' (to antiphase, Δφ = π)';
|
|
193
|
+
return {
|
|
194
|
+
claim: `RK4 |θ − θ_lin| ≤ B(t) at every sample, θ0 = ${Number(theta0.toPrecision(8))} (recovered from ε), over t ≤ ${periods} T0${capped}; ` +
|
|
195
|
+
`200 and 800 steps per T0, sampled 200 per T0; the coarse-to-fine difference is the uncertainty`,
|
|
196
|
+
check: dominanceSpec('W7x@point', eps, 1, 1),
|
|
197
|
+
control: dominanceSpec('W7x@point-control', eps, 1, 0),
|
|
198
|
+
controlClaim: 'the same bound without its waveform term W̄, 2θ0 sin(Δφ/2) alone',
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
/** @internal */
|
|
202
|
+
export const PENDULUM_POSITION_TRANSLATION = {
|
|
203
|
+
bridgeId: 'ab-pendulum-linear',
|
|
204
|
+
observable: 'position',
|
|
205
|
+
unit: 'rad',
|
|
206
|
+
fromNorm: 'relative period error, normalized by the value of the reduced model',
|
|
207
|
+
errorKind: 'upper-bound',
|
|
208
|
+
definition: 'the pointwise angle error |θ(t) − θ_lin(t)| of the two motions released from rest at θ0',
|
|
209
|
+
derivation: 'an UPPER BOUND B(t) = W̄ + 2θ0 sin(min(Δφ(t), π)/2), Δφ = 2π (t/T0) ε/(1+ε) the exact phase lead and ' +
|
|
210
|
+
'W̄ = (16/3) q^{3/2}/(1−q) ≈ θ0³/96 the waveform term (q the nome of sin(θ0/2); θ0 is recovered from ε). ' +
|
|
211
|
+
'From the Fourier series θ = Σ (−1)ⁿ aₙ cos((2n+1)φ): |θ − θ0 cos φ| ≤ 2 Σ_{n≥1} aₙ ≤ W̄, and θ0|cos φ − cos φ_lin| ≤ 2θ0|sin(Δφ/2)|. ' +
|
|
212
|
+
'B increases with ε, so the domain supremum of ε gives the shortest horizon over the domain',
|
|
213
|
+
premises: [
|
|
214
|
+
'both motions are released from rest at the same θ0 at t = 0',
|
|
215
|
+
'T0 = 2π √(ℓ/g) is the linear period, in the unit t is given in',
|
|
216
|
+
'the classical Fourier series of the pendulum (all aₙ > 0, Σ (−1)ⁿ aₙ = θ0) — quoted, not derived here; ' +
|
|
217
|
+
`machine-checked against RK4 at θ0 ∈ {${FOURIER_SERIES_THETA0S.join(', ')}} (W7xs), not between those points`,
|
|
218
|
+
],
|
|
219
|
+
parameters: ['T0'],
|
|
220
|
+
timeUnit: 'the unit of T0',
|
|
221
|
+
errorAt: (eps, t, { T0 }) => {
|
|
222
|
+
if (T0 === undefined || !Number.isFinite(T0) || T0 <= 0 || !Number.isFinite(eps) || eps < 0 || !Number.isFinite(t))
|
|
223
|
+
return Number.NaN;
|
|
224
|
+
return positionBound(eps)(t / T0);
|
|
225
|
+
},
|
|
226
|
+
horizonFor: (eps, tolerance, { T0 }) => positionHorizon(eps, tolerance, T0),
|
|
227
|
+
floor: (eps) => waveformBound(theta0OfPeriodError(eps)),
|
|
228
|
+
boundary: 'inclusive: certified iff t ≤ t*, i.e. B(t) ≤ the tolerance; past t* the BOUND exceeds it and the error may not (undetermined, not inadequate)',
|
|
229
|
+
notCovered: ['the phase (declared separately: --tolerance=phase:EPS)', 'the angular velocity', 'the amplitude'],
|
|
230
|
+
witnesses: [
|
|
231
|
+
{
|
|
232
|
+
id: 'W7x',
|
|
233
|
+
kind: 'numeric',
|
|
234
|
+
test: 'tests/atlas/pendulum-position-translation.test.ts',
|
|
235
|
+
tolerance: `RK4 |θ − θ_lin| ≤ B(t) at every sample to antiphase, θ0 = ${W7X_THETA0}, by more than the coarse-to-fine difference`,
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
id: 'W7xa',
|
|
239
|
+
kind: 'numeric',
|
|
240
|
+
test: 'tests/atlas/pendulum-position-translation.test.ts',
|
|
241
|
+
tolerance: `RK4-projected fundamental coefficient at θ0 = ${W7X_THETA0} within 1e-10 of 8√q/(1+q)`,
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
id: 'W7xs',
|
|
245
|
+
kind: 'numeric',
|
|
246
|
+
test: 'tests/atlas/pendulum-position-translation.test.ts',
|
|
247
|
+
tolerance: `the Fourier series (${FOURIER_SERIES_TERMS} terms) within ${FOURIER_SERIES_TOLERANCE} rad of RK4 at every step of one period, ` +
|
|
248
|
+
`at θ0 ∈ {${FOURIER_SERIES_THETA0S.join(', ')}}`,
|
|
249
|
+
},
|
|
250
|
+
],
|
|
251
|
+
checks: [dominanceSpec('W7x', W7X_EPS, 1, 1), W7XA, fourierSeriesCheck('W7xs')],
|
|
252
|
+
pointCheck: positionPointCheck,
|
|
253
|
+
};
|
|
254
|
+
//# sourceMappingURL=position-translation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"position-translation.js","sourceRoot":"","sources":["../../../src/atlas/oscillators/position-translation.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,13 @@
|
|
|
35
35
|
* makes the error invisible without this gate: the danger is not a wrong
|
|
36
36
|
* magnitude, it is a right magnitude attached to the wrong norm.
|
|
37
37
|
*
|
|
38
|
+
* The one way through is a DECLARATION on the exact bridge
|
|
39
|
+
* (`AtlasBridge.normTransports`, `docs/planning/ADR-transported-norm-composition.md`):
|
|
40
|
+
* a norm, a direction, a factor `K` and a time map, each with a witness. A route
|
|
41
|
+
* that crosses the bridge in that direction, carrying a bound in that norm,
|
|
42
|
+
* composes with `(K, 0)`; every other norm and direction is still refused, and
|
|
43
|
+
* the refusal names the declaration that is missing.
|
|
44
|
+
*
|
|
38
45
|
* ⚠ **Correction to the S2.2 brief.** The brief states that no field records a
|
|
39
46
|
* norm and that Phase 2 must add `norm?` to `ApproximationBound`. That is
|
|
40
47
|
* out of date: `ApproximationBound.norm` already exists as a MANDATORY
|
|
@@ -55,7 +62,7 @@
|
|
|
55
62
|
*/
|
|
56
63
|
import { IDENTITY_BOUND } from './error-algebra.js';
|
|
57
64
|
import type { BoundPair } from './error-algebra.js';
|
|
58
|
-
import type { AtlasBridge, RelationType } from './types.js';
|
|
65
|
+
import type { AtlasBridge, NormTransport, RelationType } from './types.js';
|
|
59
66
|
/**
|
|
60
67
|
* Shortest chain of bridges from `from` to `to`, or `null` if none exists.
|
|
61
68
|
*
|
|
@@ -72,6 +79,59 @@ import type { AtlasBridge, RelationType } from './types.js';
|
|
|
72
79
|
* @internal
|
|
73
80
|
*/
|
|
74
81
|
export declare function findPath(family: string, from: string, to: string): readonly AtlasBridge[] | null;
|
|
82
|
+
/**
|
|
83
|
+
* Shortest chain of bridges from `from` to `to` across EVERY registered
|
|
84
|
+
* family, or `null` if none exists.
|
|
85
|
+
*
|
|
86
|
+
* A family is a filing label, not a physical boundary: `ab-kg-schrodinger` is
|
|
87
|
+
* filed under waves and ends in the diffusion family's free Schrödinger model.
|
|
88
|
+
* The search runs over the union of all families' bridges under the same
|
|
89
|
+
* rules as {@link findPath} — an exact equivalence both ways, every lossy
|
|
90
|
+
* relation forward only — and the route it returns is composed by
|
|
91
|
+
* {@link boundPath} exactly as a single-family route is. Crossing a family
|
|
92
|
+
* adds no composition rule.
|
|
93
|
+
*
|
|
94
|
+
* Ties are broken by {@link ATLAS_FAMILIES} order, then each family's bridge
|
|
95
|
+
* order, so the result is stable across runs.
|
|
96
|
+
*
|
|
97
|
+
* @throws RangeError if an endpoint is not a model of any family.
|
|
98
|
+
* @internal
|
|
99
|
+
*/
|
|
100
|
+
export declare function findAtlasPath(from: string, to: string): readonly AtlasBridge[] | null;
|
|
101
|
+
/**
|
|
102
|
+
* The simple routes from `from` to `to` across every registered family, as
|
|
103
|
+
* far as a bounded search reaches. Each route is a list of bridges, and no route
|
|
104
|
+
* visits a model twice. Traversal follows the same rules as
|
|
105
|
+
* {@link findAtlasPath}: an exact equivalence both ways, every lossy relation
|
|
106
|
+
* forward only, multi-premise bridges skipped.
|
|
107
|
+
*
|
|
108
|
+
* The search runs by bridge count (every route of k bridges before any of
|
|
109
|
+
* k + 1), with ties in {@link ATLAS_FAMILIES} order and then bridge order. It stops
|
|
110
|
+
* once it has found `limit + 1` routes, or after expanding `budget` partial
|
|
111
|
+
* routes. Stopping early is REPORTED, not hidden: `exhausted` is false,
|
|
112
|
+
* `stoppedBy` says which bound stopped it, and `completeThrough` is the largest
|
|
113
|
+
* bridge count up to which every route has been found. When `exhausted` is
|
|
114
|
+
* true, `routes` holds all of them.
|
|
115
|
+
*
|
|
116
|
+
* @throws RangeError if an endpoint is not a model of any family, or `limit`
|
|
117
|
+
* is not a positive integer (via {@link enumerateRoutes}).
|
|
118
|
+
* @internal
|
|
119
|
+
*/
|
|
120
|
+
export declare function enumerateAtlasRoutes(from: string, to: string, limit: number, budget?: number): RouteEnumeration;
|
|
121
|
+
/** What {@link enumerateAtlasRoutes} found, and whether the search was cut short. @internal */
|
|
122
|
+
export interface RouteEnumeration {
|
|
123
|
+
readonly routes: (readonly AtlasBridge[])[];
|
|
124
|
+
readonly exhausted: boolean;
|
|
125
|
+
readonly completeThrough: number | null;
|
|
126
|
+
readonly stoppedBy: 'limit' | 'budget' | null;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* {@link enumerateAtlasRoutes} over an explicit bridge list; endpoints are not
|
|
130
|
+
* validated against any family.
|
|
131
|
+
* @throws RangeError if `limit` is not a positive integer.
|
|
132
|
+
* @internal
|
|
133
|
+
*/
|
|
134
|
+
export declare function enumerateRoutes(bridges: readonly AtlasBridge[], from: string, to: string, limit: number, budget?: number): RouteEnumeration;
|
|
75
135
|
/** Why a path supports no bound. @internal */
|
|
76
136
|
export type NoClaimReason =
|
|
77
137
|
/** The relations along the path do not compose to a relation at all. */
|
|
@@ -80,6 +140,12 @@ export type NoClaimReason =
|
|
|
80
140
|
| 'norm-not-stated'
|
|
81
141
|
/** Two edges state DIFFERENT norms; composing across norms is unsound. */
|
|
82
142
|
| 'norm-mismatch'
|
|
143
|
+
/**
|
|
144
|
+
* A norm stated in one model family was carried into another with no
|
|
145
|
+
* witnessed transport across that boundary. String equality is not a match
|
|
146
|
+
* there. A one-step route does not reach this gate.
|
|
147
|
+
*/
|
|
148
|
+
| 'cross-family-unmapped'
|
|
83
149
|
/**
|
|
84
150
|
* A bound on the path has `uniformity === null` or an empty list: what the
|
|
85
151
|
* error is uniform in has not been analysed, so no number is stated.
|
|
@@ -94,11 +160,21 @@ export interface PathBoundClaim {
|
|
|
94
160
|
/** The relation the chain asserts, from {@link composeRelation}. */
|
|
95
161
|
readonly relation: RelationType;
|
|
96
162
|
/**
|
|
97
|
-
* The
|
|
98
|
-
*
|
|
99
|
-
*
|
|
163
|
+
* The norm the composite holds in: the single norm every bound on the path
|
|
164
|
+
* states, or the `to` norm of the last transport applied after them. `null`
|
|
165
|
+
* when the path carries no bound at all and the claim is the vacuous
|
|
166
|
+
* `terminal` identity over an empty prefix.
|
|
100
167
|
*/
|
|
101
168
|
readonly norm: string | null;
|
|
169
|
+
/** The declared norm transports that carried the bound across exact maps; absent when none did. */
|
|
170
|
+
readonly transports?: readonly AppliedTransport[];
|
|
171
|
+
}
|
|
172
|
+
/** A declared norm transport {@link boundPath} applied, and where on the path. @internal */
|
|
173
|
+
export interface AppliedTransport {
|
|
174
|
+
/** Index of the exact bridge in the path. */
|
|
175
|
+
readonly index: number;
|
|
176
|
+
readonly bridgeId: string;
|
|
177
|
+
readonly transport: NormTransport;
|
|
102
178
|
}
|
|
103
179
|
/** A path that carries NO bound, and the reason. @internal */
|
|
104
180
|
export interface PathNoClaim {
|
|
@@ -112,7 +188,7 @@ export type PathBoundResult = PathBoundClaim | PathNoClaim;
|
|
|
112
188
|
/**
|
|
113
189
|
* The error bound a chain of bridges carries — or an explicit no-claim.
|
|
114
190
|
*
|
|
115
|
-
*
|
|
191
|
+
* Five gates, in this order. Each one is a reason to refuse, and the FIRST
|
|
116
192
|
* reason found is the one reported; none of them is skippable by a caller.
|
|
117
193
|
*
|
|
118
194
|
* 1. **Relation.** `composeRelation` is folded along the path. The moment the
|
|
@@ -127,10 +203,21 @@ export type PathBoundResult = PathBoundClaim | PathNoClaim;
|
|
|
127
203
|
* edge that is neither bounded nor exact — is tolerated only as the LAST
|
|
128
204
|
* entry, where it terminates the claim (`terminal: true`); anywhere else it
|
|
129
205
|
* throws `MissingLipschitzError` rather than inventing a constant.
|
|
130
|
-
* 4. **Norm.** Every stated norm on the path must be the SAME norm
|
|
131
|
-
* unnormed exact map may carry a normed claim. An
|
|
132
|
-
* states no norm (it has no `bound`), so a path mixing
|
|
133
|
-
* bound is `'norm-not-stated'` — see the module note
|
|
206
|
+
* 4. **Norm.** Every stated norm on the path must be the SAME norm as the bound
|
|
207
|
+
* reaching it, and no unnormed exact map may carry a normed claim. An
|
|
208
|
+
* `exact-equivalence` states no norm (it has no `bound`), so a path mixing
|
|
209
|
+
* one with a normed bound is `'norm-not-stated'` — see the module note —
|
|
210
|
+
* UNLESS the exact bridge declares a `NormTransport` from the running norm,
|
|
211
|
+
* for the direction the route crosses it, with a uniform time map. Then it
|
|
212
|
+
* contributes `(K, 0)` and the running norm becomes the transport's `to`.
|
|
213
|
+
* A mismatch is reported before a missing norm.
|
|
214
|
+
* 5. **Vocabulary.** When the models a norm is carried between sit in different
|
|
215
|
+
* families, string equality is not a match. The carry needs a
|
|
216
|
+
* `NormTransport` whose `fromModel` / `toModel` are the models the route
|
|
217
|
+
* crosses, whose `from` is the running norm, whose time map is uniform, and
|
|
218
|
+
* whose witness is present. Otherwise the refusal is
|
|
219
|
+
* `'cross-family-unmapped'`. A one-step route has nothing to carry, so this
|
|
220
|
+
* gate does not fire. A missing Lipschitz constant is reported first.
|
|
134
221
|
*
|
|
135
222
|
* @throws RangeError on an empty path. Returning `IDENTITY_BOUND` for "no
|
|
136
223
|
* edges" would be a bound asserted about nothing.
|
|
@@ -138,6 +225,36 @@ export type PathBoundResult = PathBoundClaim | PathNoClaim;
|
|
|
138
225
|
* @internal
|
|
139
226
|
*/
|
|
140
227
|
export declare function boundPath(bridges: readonly AtlasBridge[]): PathBoundResult;
|
|
228
|
+
/**
|
|
229
|
+
* The model each step of a route is entered from, or `null` where the list is
|
|
230
|
+
* not a chain. An exact equivalence may be crossed either way; the first one is
|
|
231
|
+
* read as reversed when the next step leaves from its premise and not from its
|
|
232
|
+
* conclusion. Every other relation is crossed forward.
|
|
233
|
+
*
|
|
234
|
+
* @internal
|
|
235
|
+
*/
|
|
236
|
+
export declare function routeEntryModels(bridges: readonly AtlasBridge[]): (string | null)[];
|
|
237
|
+
/**
|
|
238
|
+
* True when step `index` sits in a different model family from the previous
|
|
239
|
+
* step and no applied transport restates a clock onto it. The step's own
|
|
240
|
+
* horizon is then unevaluated: a family change does not copy one.
|
|
241
|
+
*
|
|
242
|
+
* @internal
|
|
243
|
+
*/
|
|
244
|
+
export declare function familyChangeBlocksHorizon(bridges: readonly AtlasBridge[], transports: readonly AppliedTransport[], index: number): boolean;
|
|
245
|
+
/**
|
|
246
|
+
* The horizon of the bound on `bridges[index]` as it reads at the END of the
|
|
247
|
+
* route: restated through every transport applied after it (a
|
|
248
|
+
* {@link PathBoundClaim}'s `transports`; none for a no-claim). `null` when that
|
|
249
|
+
* step carries no bound.
|
|
250
|
+
*
|
|
251
|
+
* @internal
|
|
252
|
+
*/
|
|
253
|
+
export declare function horizonOnRoute(bridges: readonly AtlasBridge[], transports: readonly AppliedTransport[], index: number): {
|
|
254
|
+
readonly horizon: string;
|
|
255
|
+
readonly restatedBy: readonly AppliedTransport[];
|
|
256
|
+
readonly holds: (t: number, params: Readonly<Record<string, number>>) => boolean;
|
|
257
|
+
} | null;
|
|
141
258
|
/** Re-exported so a caller need not reach into the algebra module. @internal */
|
|
142
259
|
export { IDENTITY_BOUND };
|
|
143
260
|
//# sourceMappingURL=path-bound.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-bound.d.ts","sourceRoot":"","sources":["../../src/atlas/path-bound.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"path-bound.d.ts","sourceRoot":"","sources":["../../src/atlas/path-bound.ts"],"names":[],"mappings":"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"}
|