universal-physics-tensor 10.0.0 → 12.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 +39 -36
- package/bin/upt.mjs +13 -1
- package/data/applied-cases.json +1892 -0
- package/data/applied-cases.schema.json +194 -0
- package/data/atlas/atlas.json +25 -25
- package/data/atlas/atlas.jsonld +1 -1
- package/data/atlas/diffusion.json +6 -6
- package/data/atlas/oscillators.json +7 -7
- package/data/atlas/waves.json +14 -14
- package/data/atlas/witness-results.json +11 -11
- package/data/bridge-catalog.json +389 -230
- package/data/bridge-catalog.schema.json +45 -7
- package/data/units.json +6 -25
- package/dist/atlas/applicability.d.ts.map +1 -1
- package/dist/atlas/applicability.js +21 -15
- package/dist/atlas/applicability.js.map +1 -1
- package/dist/atlas/benchmark/hybrid-retrieval.d.ts +9 -1
- package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
- package/dist/atlas/benchmark/hybrid-retrieval.js +15 -13
- package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
- package/dist/atlas/benchmark/loader.js +2 -2
- package/dist/atlas/benchmark/loader.js.map +1 -1
- package/dist/atlas/benchmark/stats.d.ts +2 -2
- package/dist/atlas/benchmark/stats.d.ts.map +1 -1
- package/dist/atlas/benchmark/stats.js +9 -15
- package/dist/atlas/benchmark/stats.js.map +1 -1
- package/dist/atlas/catalog-formal-ref.d.ts +26 -3
- package/dist/atlas/catalog-formal-ref.d.ts.map +1 -1
- package/dist/atlas/catalog-formal-ref.js +52 -5
- package/dist/atlas/catalog-formal-ref.js.map +1 -1
- package/dist/atlas/chain-pipeline.d.ts.map +1 -1
- package/dist/atlas/chain-pipeline.js +7 -8
- package/dist/atlas/chain-pipeline.js.map +1 -1
- package/dist/atlas/diffusion/bridges-closure.d.ts +0 -4
- package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
- package/dist/atlas/diffusion/bridges-closure.js +8 -12
- package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
- package/dist/atlas/diffusion/bridges.d.ts.map +1 -1
- package/dist/atlas/diffusion/bridges.js +27 -39
- package/dist/atlas/diffusion/bridges.js.map +1 -1
- package/dist/atlas/diffusion/dimensions.d.ts +6 -14
- package/dist/atlas/diffusion/dimensions.d.ts.map +1 -1
- package/dist/atlas/diffusion/dimensions.js +8 -16
- package/dist/atlas/diffusion/dimensions.js.map +1 -1
- package/dist/atlas/diffusion/models.d.ts +3 -3
- package/dist/atlas/diffusion/models.d.ts.map +1 -1
- package/dist/atlas/diffusion/models.js +5 -10
- package/dist/atlas/diffusion/models.js.map +1 -1
- package/dist/atlas/diffusion/numerics.d.ts +16 -4
- package/dist/atlas/diffusion/numerics.d.ts.map +1 -1
- package/dist/atlas/diffusion/numerics.js +38 -24
- package/dist/atlas/diffusion/numerics.js.map +1 -1
- package/dist/atlas/link-prediction.d.ts +106 -3
- package/dist/atlas/link-prediction.d.ts.map +1 -1
- package/dist/atlas/link-prediction.js +212 -66
- package/dist/atlas/link-prediction.js.map +1 -1
- package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -1
- package/dist/atlas/oscillators/bridges-coarse.js +7 -11
- package/dist/atlas/oscillators/bridges-coarse.js.map +1 -1
- package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
- package/dist/atlas/oscillators/bridges-exact.js +6 -7
- package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
- package/dist/atlas/oscillators/bridges-limits.d.ts +3 -16
- package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
- package/dist/atlas/oscillators/bridges-limits.js +23 -34
- package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
- package/dist/atlas/oscillators/dimensions.d.ts +9 -21
- package/dist/atlas/oscillators/dimensions.d.ts.map +1 -1
- package/dist/atlas/oscillators/dimensions.js +9 -21
- package/dist/atlas/oscillators/dimensions.js.map +1 -1
- package/dist/atlas/oscillators/limit-witnesses.d.ts +2 -2
- package/dist/atlas/oscillators/limit-witnesses.d.ts.map +1 -1
- package/dist/atlas/oscillators/limit-witnesses.js +17 -15
- package/dist/atlas/oscillators/limit-witnesses.js.map +1 -1
- package/dist/atlas/oscillators/models.d.ts.map +1 -1
- package/dist/atlas/oscillators/models.js +2 -6
- package/dist/atlas/oscillators/models.js.map +1 -1
- package/dist/atlas/oscillators/pendulum-motion.d.ts +29 -6
- package/dist/atlas/oscillators/pendulum-motion.d.ts.map +1 -1
- package/dist/atlas/oscillators/pendulum-motion.js +60 -40
- package/dist/atlas/oscillators/pendulum-motion.js.map +1 -1
- package/dist/atlas/oscillators/phase-translation.d.ts +0 -11
- package/dist/atlas/oscillators/phase-translation.d.ts.map +1 -1
- package/dist/atlas/oscillators/phase-translation.js +3 -4
- package/dist/atlas/oscillators/phase-translation.js.map +1 -1
- package/dist/atlas/oscillators/position-translation.d.ts +68 -7
- package/dist/atlas/oscillators/position-translation.d.ts.map +1 -1
- package/dist/atlas/oscillators/position-translation.js +123 -12
- package/dist/atlas/oscillators/position-translation.js.map +1 -1
- package/dist/atlas/oscillators/rejections.d.ts +0 -2
- package/dist/atlas/oscillators/rejections.d.ts.map +1 -1
- package/dist/atlas/oscillators/rejections.js +0 -7
- package/dist/atlas/oscillators/rejections.js.map +1 -1
- package/dist/atlas/physjs-entries.generated.d.ts +35 -25
- package/dist/atlas/physjs-entries.generated.d.ts.map +1 -1
- package/dist/atlas/physjs-entries.generated.js +37 -25
- package/dist/atlas/physjs-entries.generated.js.map +1 -1
- package/dist/atlas/physjs-ref.d.ts +34 -31
- package/dist/atlas/physjs-ref.d.ts.map +1 -1
- package/dist/atlas/physjs-ref.js +55 -53
- package/dist/atlas/physjs-ref.js.map +1 -1
- package/dist/atlas/physjs-reviewed.d.ts +1 -1
- package/dist/atlas/physjs-reviewed.js +15 -15
- package/dist/atlas/physjs-reviewed.js.map +1 -1
- package/dist/atlas/poster/statements.d.ts +0 -19
- package/dist/atlas/poster/statements.d.ts.map +1 -1
- package/dist/atlas/poster/statements.js +1 -1
- package/dist/atlas/poster/statements.js.map +1 -1
- package/dist/atlas/proof-target.d.ts +1 -1
- package/dist/atlas/proof-target.js +1 -1
- package/dist/atlas/proof-target.js.map +1 -1
- package/dist/atlas/regime.d.ts +1 -1
- package/dist/atlas/regime.d.ts.map +1 -1
- package/dist/atlas/regime.js +1 -1
- package/dist/atlas/regime.js.map +1 -1
- package/dist/atlas/text-overlap.d.ts +23 -0
- package/dist/atlas/text-overlap.d.ts.map +1 -0
- package/dist/atlas/text-overlap.js +41 -0
- package/dist/atlas/text-overlap.js.map +1 -0
- package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
- package/dist/atlas/waves/bridges-closure.js +2 -6
- 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 +32 -48
- package/dist/atlas/waves/bridges.js.map +1 -1
- package/dist/atlas/waves/models.d.ts +5 -6
- package/dist/atlas/waves/models.d.ts.map +1 -1
- package/dist/atlas/waves/models.js +7 -13
- package/dist/atlas/waves/models.js.map +1 -1
- package/dist/atlas/waves/numerics.d.ts.map +1 -1
- package/dist/atlas/waves/numerics.js +10 -3
- package/dist/atlas/waves/numerics.js.map +1 -1
- package/dist/atlas/witness-numeric.d.ts +30 -0
- package/dist/atlas/witness-numeric.d.ts.map +1 -1
- package/dist/atlas/witness-numeric.js +53 -0
- package/dist/atlas/witness-numeric.js.map +1 -1
- package/dist/atlas/witness-specs.d.ts.map +1 -1
- package/dist/atlas/witness-specs.js +19 -0
- package/dist/atlas/witness-specs.js.map +1 -1
- package/dist/atlas/witness-symbolic.d.ts +75 -3
- package/dist/atlas/witness-symbolic.d.ts.map +1 -1
- package/dist/atlas/witness-symbolic.js +116 -10
- package/dist/atlas/witness-symbolic.js.map +1 -1
- package/dist/bridges/catalog-load.d.ts.map +1 -1
- package/dist/bridges/catalog-load.js +13 -8
- package/dist/bridges/catalog-load.js.map +1 -1
- package/dist/bridges/catalog-types.d.ts +26 -2
- package/dist/bridges/catalog-types.d.ts.map +1 -1
- package/dist/bridges/catalog-types.js +11 -1
- package/dist/bridges/catalog-types.js.map +1 -1
- package/dist/bridges/evaluation-errors.d.ts +31 -1
- package/dist/bridges/evaluation-errors.d.ts.map +1 -1
- package/dist/bridges/evaluation-errors.js +20 -2
- package/dist/bridges/evaluation-errors.js.map +1 -1
- package/dist/bridges/evaluator-inputs.d.ts.map +1 -1
- package/dist/bridges/evaluator-inputs.js +7 -5
- package/dist/bridges/evaluator-inputs.js.map +1 -1
- package/dist/bridges/evaluators.d.ts.map +1 -1
- package/dist/bridges/evaluators.js +27 -12
- package/dist/bridges/evaluators.js.map +1 -1
- package/dist/bridges/expr-parse.d.ts +11 -0
- package/dist/bridges/expr-parse.d.ts.map +1 -1
- package/dist/bridges/expr-parse.js +14 -5
- package/dist/bridges/expr-parse.js.map +1 -1
- package/dist/bridges/holds.d.ts +35 -3
- package/dist/bridges/holds.d.ts.map +1 -1
- package/dist/bridges/holds.js +117 -23
- package/dist/bridges/holds.js.map +1 -1
- package/dist/bridges/notices.d.ts.map +1 -1
- package/dist/bridges/notices.js +5 -5
- package/dist/bridges/notices.js.map +1 -1
- package/dist/bridges/relation-eval.d.ts +4 -4
- package/dist/bridges/relation-eval.d.ts.map +1 -1
- package/dist/bridges/relation-eval.js +15 -16
- package/dist/bridges/relation-eval.js.map +1 -1
- package/dist/bridges/sensitivity.d.ts.map +1 -1
- package/dist/bridges/sensitivity.js +3 -3
- package/dist/bridges/sensitivity.js.map +1 -1
- package/dist/bridges/validity.d.ts +33 -0
- package/dist/bridges/validity.d.ts.map +1 -0
- package/dist/bridges/validity.js +67 -0
- package/dist/bridges/validity.js.map +1 -0
- package/dist/canonical/entries/atomic.js +1 -3
- 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 +4 -5
- 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 +3 -4
- 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 +4 -10
- 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 +3 -7
- 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 +4 -6
- 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 +9 -17
- 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 -6
- package/dist/canonical/entries/relativity.js.map +1 -1
- package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
- package/dist/canonical/entries/thermo-nuclear-cosmo.js +6 -10
- package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
- package/dist/canonical/fixed-points.d.ts +94 -0
- package/dist/canonical/fixed-points.d.ts.map +1 -0
- package/dist/canonical/fixed-points.js +81 -0
- package/dist/canonical/fixed-points.js.map +1 -0
- package/dist/canonical/linkage.d.ts.map +1 -1
- package/dist/canonical/linkage.js +25 -44
- package/dist/canonical/linkage.js.map +1 -1
- package/dist/canonical/normal-form.d.ts.map +1 -1
- package/dist/canonical/normal-form.js +5 -11
- package/dist/canonical/normal-form.js.map +1 -1
- package/dist/canonical/structural.d.ts +21 -21
- package/dist/canonical/structural.d.ts.map +1 -1
- package/dist/canonical/structural.js +40 -19
- package/dist/canonical/structural.js.map +1 -1
- package/dist/cases/catalog-checks.d.ts +10 -0
- package/dist/cases/catalog-checks.d.ts.map +1 -0
- package/dist/cases/catalog-checks.js +241 -0
- package/dist/cases/catalog-checks.js.map +1 -0
- package/dist/cases/catalog.d.ts +83 -0
- package/dist/cases/catalog.d.ts.map +1 -0
- package/dist/cases/catalog.js +118 -0
- package/dist/cases/catalog.js.map +1 -0
- package/dist/cases/engine.d.ts +13 -0
- package/dist/cases/engine.d.ts.map +1 -0
- package/dist/cases/engine.js +179 -0
- package/dist/cases/engine.js.map +1 -0
- package/dist/cases/index.d.ts.map +1 -1
- package/dist/cases/index.js +5 -7
- package/dist/cases/index.js.map +1 -1
- package/dist/cases/methods.d.ts +215 -0
- package/dist/cases/methods.d.ts.map +1 -0
- package/dist/cases/methods.js +743 -0
- package/dist/cases/methods.js.map +1 -0
- package/dist/cases/quadrature.d.ts +7 -9
- package/dist/cases/quadrature.d.ts.map +1 -1
- package/dist/cases/quadrature.js +28 -32
- package/dist/cases/quadrature.js.map +1 -1
- package/dist/cases/types.d.ts +12 -0
- package/dist/cases/types.d.ts.map +1 -1
- package/dist/cases/types.js.map +1 -1
- package/dist/cli/args.d.ts +25 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +30 -8
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/bindings.d.ts.map +1 -1
- package/dist/cli/bindings.js +5 -4
- package/dist/cli/bindings.js.map +1 -1
- package/dist/cli/command.d.ts +11 -1
- package/dist/cli/command.d.ts.map +1 -1
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/commands/_atlas-map.d.ts +0 -9
- package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
- package/dist/cli/commands/_atlas-map.js +8 -18
- package/dist/cli/commands/_atlas-map.js.map +1 -1
- package/dist/cli/commands/_atlas-route.d.ts.map +1 -1
- package/dist/cli/commands/_atlas-route.js +6 -2
- package/dist/cli/commands/_atlas-route.js.map +1 -1
- package/dist/cli/commands/_discovery-opts.d.ts +1 -0
- package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
- package/dist/cli/commands/_discovery-opts.js +9 -9
- 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 +8 -5
- 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 +8 -1
- package/dist/cli/commands/audit.js.map +1 -1
- package/dist/cli/commands/axes.d.ts.map +1 -1
- package/dist/cli/commands/axes.js +20 -1
- package/dist/cli/commands/axes.js.map +1 -1
- package/dist/cli/commands/confront.d.ts.map +1 -1
- package/dist/cli/commands/confront.js +8 -14
- package/dist/cli/commands/confront.js.map +1 -1
- package/dist/cli/commands/derive.d.ts.map +1 -1
- package/dist/cli/commands/derive.js +22 -22
- 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 +122 -73
- 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 +1 -0
- package/dist/cli/commands/eval.js.map +1 -1
- package/dist/cli/commands/evaluate.d.ts.map +1 -1
- package/dist/cli/commands/evaluate.js +67 -39
- 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 +24 -3
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/ground.d.ts.map +1 -1
- package/dist/cli/commands/ground.js +7 -1
- package/dist/cli/commands/ground.js.map +1 -1
- package/dist/cli/commands/map.d.ts.map +1 -1
- package/dist/cli/commands/map.js +84 -11
- 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 +12 -9
- package/dist/cli/commands/metric.js.map +1 -1
- package/dist/cli/commands/path.d.ts +10 -0
- package/dist/cli/commands/path.d.ts.map +1 -1
- package/dist/cli/commands/path.js +25 -3
- package/dist/cli/commands/path.js.map +1 -1
- package/dist/cli/commands/probe.d.ts.map +1 -1
- package/dist/cli/commands/probe.js +59 -16
- package/dist/cli/commands/probe.js.map +1 -1
- package/dist/cli/commands/regime.d.ts.map +1 -1
- package/dist/cli/commands/regime.js +1 -0
- package/dist/cli/commands/regime.js.map +1 -1
- package/dist/cli/commands/retrieve.d.ts.map +1 -1
- package/dist/cli/commands/retrieve.js +1 -0
- package/dist/cli/commands/retrieve.js.map +1 -1
- package/dist/cli/commands/search.d.ts.map +1 -1
- package/dist/cli/commands/search.js +1 -0
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/symbolic.d.ts.map +1 -1
- package/dist/cli/commands/symbolic.js +19 -28
- package/dist/cli/commands/symbolic.js.map +1 -1
- package/dist/cli/commands/testplan.d.ts.map +1 -1
- package/dist/cli/commands/testplan.js +4 -2
- package/dist/cli/commands/testplan.js.map +1 -1
- package/dist/cli/determination.d.ts +1 -0
- package/dist/cli/determination.d.ts.map +1 -1
- package/dist/cli/determination.js.map +1 -1
- package/dist/cli/expr-print.d.ts +0 -2
- package/dist/cli/expr-print.d.ts.map +1 -1
- package/dist/cli/expr-print.js +7 -31
- package/dist/cli/expr-print.js.map +1 -1
- package/dist/cli/flag-help.d.ts +1 -0
- package/dist/cli/flag-help.d.ts.map +1 -1
- package/dist/cli/flag-help.js +1 -0
- package/dist/cli/flag-help.js.map +1 -1
- package/dist/cli/graphs.d.ts +2 -0
- package/dist/cli/graphs.d.ts.map +1 -1
- package/dist/cli/graphs.js +1 -0
- package/dist/cli/graphs.js.map +1 -1
- package/dist/cli/main.d.ts +8 -0
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +19 -3
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/numeric-flag.d.ts +12 -0
- package/dist/cli/numeric-flag.d.ts.map +1 -0
- package/dist/cli/numeric-flag.js +44 -0
- package/dist/cli/numeric-flag.js.map +1 -0
- package/dist/cli/output.d.ts +28 -0
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +23 -0
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/record-reach.js +2 -2
- package/dist/cli/record-reach.js.map +1 -1
- package/dist/cli/record-tables.d.ts.map +1 -1
- package/dist/cli/record-tables.js +6 -5
- package/dist/cli/record-tables.js.map +1 -1
- package/dist/cli/record.d.ts +1 -5
- package/dist/cli/record.d.ts.map +1 -1
- package/dist/cli/record.js +9 -8
- package/dist/cli/record.js.map +1 -1
- package/dist/cli/search-index.d.ts.map +1 -1
- package/dist/cli/search-index.js +7 -6
- package/dist/cli/search-index.js.map +1 -1
- package/dist/cli/statuses.d.ts +0 -2
- package/dist/cli/statuses.d.ts.map +1 -1
- package/dist/cli/statuses.js +12 -9
- package/dist/cli/statuses.js.map +1 -1
- package/dist/cli/stored-results.d.ts +7 -0
- package/dist/cli/stored-results.d.ts.map +1 -0
- package/dist/cli/stored-results.js +23 -0
- package/dist/cli/stored-results.js.map +1 -0
- package/dist/cli/version.d.ts +1 -0
- package/dist/cli/version.d.ts.map +1 -1
- package/dist/cli/version.js +8 -5
- package/dist/cli/version.js.map +1 -1
- package/dist/cli-api.d.ts +36 -5
- package/dist/cli-api.d.ts.map +1 -1
- package/dist/cli-api.js +30 -4
- package/dist/cli-api.js.map +1 -1
- package/dist/composition/algebraic-equivalence.d.ts +43 -0
- package/dist/composition/algebraic-equivalence.d.ts.map +1 -0
- package/dist/composition/algebraic-equivalence.js +115 -0
- package/dist/composition/algebraic-equivalence.js.map +1 -0
- package/dist/composition/axes.d.ts +0 -6
- package/dist/composition/axes.d.ts.map +1 -1
- package/dist/composition/axes.js +6 -6
- package/dist/composition/axes.js.map +1 -1
- package/dist/composition/axis-audit.d.ts +47 -20
- package/dist/composition/axis-audit.d.ts.map +1 -1
- package/dist/composition/axis-audit.js +82 -9
- package/dist/composition/axis-audit.js.map +1 -1
- package/dist/composition/bridge-analysis.d.ts +17 -0
- package/dist/composition/bridge-analysis.d.ts.map +1 -1
- package/dist/composition/bridge-analysis.js +102 -55
- package/dist/composition/bridge-analysis.js.map +1 -1
- package/dist/composition/canonical-compare.d.ts +40 -0
- package/dist/composition/canonical-compare.d.ts.map +1 -1
- package/dist/composition/canonical-compare.js +122 -24
- package/dist/composition/canonical-compare.js.map +1 -1
- package/dist/composition/canonical-graph.d.ts +3 -3
- package/dist/composition/canonical-graph.d.ts.map +1 -1
- package/dist/composition/canonical-graph.js +11 -38
- package/dist/composition/canonical-graph.js.map +1 -1
- package/dist/composition/canonical-json.js +2 -2
- package/dist/composition/canonical-json.js.map +1 -1
- package/dist/composition/catalog-graph.d.ts.map +1 -1
- package/dist/composition/catalog-graph.js +2 -5
- package/dist/composition/catalog-graph.js.map +1 -1
- package/dist/composition/chain-candidate.d.ts +8 -0
- package/dist/composition/chain-candidate.d.ts.map +1 -1
- package/dist/composition/chain-candidate.js +9 -2
- package/dist/composition/chain-candidate.js.map +1 -1
- package/dist/composition/chain-match.d.ts +6 -3
- package/dist/composition/chain-match.d.ts.map +1 -1
- package/dist/composition/chain-match.js +4 -1
- package/dist/composition/chain-match.js.map +1 -1
- package/dist/composition/chain-result.d.ts.map +1 -1
- package/dist/composition/chain-result.js +2 -14
- package/dist/composition/chain-result.js.map +1 -1
- package/dist/composition/compose-symbolic.d.ts.map +1 -1
- package/dist/composition/compose-symbolic.js +3 -2
- package/dist/composition/compose-symbolic.js.map +1 -1
- package/dist/composition/compose.d.ts.map +1 -1
- package/dist/composition/compose.js +13 -5
- package/dist/composition/compose.js.map +1 -1
- package/dist/composition/composition-recovery.d.ts.map +1 -1
- package/dist/composition/composition-recovery.js +4 -7
- package/dist/composition/composition-recovery.js.map +1 -1
- package/dist/composition/consequence.d.ts +15 -5
- package/dist/composition/consequence.d.ts.map +1 -1
- package/dist/composition/consequence.js +6 -4
- package/dist/composition/consequence.js.map +1 -1
- package/dist/composition/discovery.d.ts +129 -9
- package/dist/composition/discovery.d.ts.map +1 -1
- package/dist/composition/discovery.js +171 -67
- package/dist/composition/discovery.js.map +1 -1
- package/dist/composition/edge.d.ts +21 -2
- package/dist/composition/edge.d.ts.map +1 -1
- package/dist/composition/edge.js +23 -1
- package/dist/composition/edge.js.map +1 -1
- package/dist/composition/enumerate.d.ts.map +1 -1
- package/dist/composition/enumerate.js +18 -3
- package/dist/composition/enumerate.js.map +1 -1
- package/dist/composition/evaluate-relation.d.ts +35 -11
- package/dist/composition/evaluate-relation.d.ts.map +1 -1
- package/dist/composition/evaluate-relation.js +60 -39
- package/dist/composition/evaluate-relation.js.map +1 -1
- package/dist/composition/explain.d.ts +3 -12
- package/dist/composition/explain.d.ts.map +1 -1
- package/dist/composition/explain.js +7 -20
- package/dist/composition/explain.js.map +1 -1
- package/dist/composition/expr-eval.d.ts +1 -1
- package/dist/composition/expr-eval.d.ts.map +1 -1
- package/dist/composition/expr-eval.js +6 -15
- package/dist/composition/expr-eval.js.map +1 -1
- package/dist/composition/expr-simplify.d.ts +26 -14
- package/dist/composition/expr-simplify.d.ts.map +1 -1
- package/dist/composition/expr-simplify.js +64 -72
- package/dist/composition/expr-simplify.js.map +1 -1
- package/dist/composition/formula-shape.d.ts +23 -4
- package/dist/composition/formula-shape.d.ts.map +1 -1
- package/dist/composition/formula-shape.js +57 -17
- package/dist/composition/formula-shape.js.map +1 -1
- package/dist/composition/graph-structure.d.ts +98 -0
- package/dist/composition/graph-structure.d.ts.map +1 -0
- package/dist/composition/graph-structure.js +167 -0
- package/dist/composition/graph-structure.js.map +1 -0
- package/dist/composition/graph-viz-svg.d.ts.map +1 -1
- package/dist/composition/graph-viz-svg.js +1 -1
- package/dist/composition/graph-viz-svg.js.map +1 -1
- package/dist/composition/graph-viz.d.ts.map +1 -1
- package/dist/composition/graph-viz.js +8 -37
- package/dist/composition/graph-viz.js.map +1 -1
- package/dist/composition/grounding.d.ts.map +1 -1
- package/dist/composition/grounding.js +19 -7
- package/dist/composition/grounding.js.map +1 -1
- package/dist/composition/identifiability.d.ts +91 -4
- package/dist/composition/identifiability.d.ts.map +1 -1
- package/dist/composition/identifiability.js +363 -6
- package/dist/composition/identifiability.js.map +1 -1
- package/dist/composition/index.d.ts +8 -4
- package/dist/composition/index.d.ts.map +1 -1
- package/dist/composition/index.js +3 -2
- package/dist/composition/index.js.map +1 -1
- package/dist/composition/mathts-quiet.d.ts +7 -8
- package/dist/composition/mathts-quiet.d.ts.map +1 -1
- package/dist/composition/mathts-quiet.js +7 -16
- package/dist/composition/mathts-quiet.js.map +1 -1
- package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -1
- package/dist/composition/mathts-scalar-symbols.js +2 -1
- package/dist/composition/mathts-scalar-symbols.js.map +1 -1
- package/dist/composition/own-equation-magnitude.d.ts +95 -0
- package/dist/composition/own-equation-magnitude.d.ts.map +1 -0
- package/dist/composition/own-equation-magnitude.js +270 -0
- package/dist/composition/own-equation-magnitude.js.map +1 -0
- package/dist/composition/probe/backend-protocol.d.ts +3 -0
- package/dist/composition/probe/backend-protocol.d.ts.map +1 -1
- package/dist/composition/probe/backend-protocol.js.map +1 -1
- package/dist/composition/probe/candidate-store.d.ts +1 -0
- package/dist/composition/probe/candidate-store.d.ts.map +1 -1
- package/dist/composition/probe/candidate-store.js +1 -0
- package/dist/composition/probe/candidate-store.js.map +1 -1
- package/dist/composition/probe/corpus.d.ts +8 -4
- package/dist/composition/probe/corpus.d.ts.map +1 -1
- package/dist/composition/probe/corpus.js +23 -12
- package/dist/composition/probe/corpus.js.map +1 -1
- package/dist/composition/probe/dataset.d.ts +18 -0
- package/dist/composition/probe/dataset.d.ts.map +1 -1
- package/dist/composition/probe/dataset.js +95 -50
- package/dist/composition/probe/dataset.js.map +1 -1
- package/dist/composition/probe/experiment-design.d.ts +7 -1
- package/dist/composition/probe/experiment-design.d.ts.map +1 -1
- package/dist/composition/probe/experiment-design.js +44 -24
- package/dist/composition/probe/experiment-design.js.map +1 -1
- package/dist/composition/probe/falsify.d.ts +2 -0
- package/dist/composition/probe/falsify.d.ts.map +1 -1
- package/dist/composition/probe/falsify.js +2 -0
- package/dist/composition/probe/falsify.js.map +1 -1
- package/dist/composition/probe/fit.d.ts +7 -0
- package/dist/composition/probe/fit.d.ts.map +1 -1
- package/dist/composition/probe/fit.js +46 -22
- package/dist/composition/probe/fit.js.map +1 -1
- package/dist/composition/probe/frontier.d.ts.map +1 -1
- package/dist/composition/probe/frontier.js +33 -15
- package/dist/composition/probe/frontier.js.map +1 -1
- package/dist/composition/probe/generator.d.ts +30 -1
- package/dist/composition/probe/generator.d.ts.map +1 -1
- package/dist/composition/probe/generator.js +58 -36
- package/dist/composition/probe/generator.js.map +1 -1
- package/dist/composition/probe/index.d.ts +14 -0
- package/dist/composition/probe/index.d.ts.map +1 -1
- package/dist/composition/probe/index.js +6 -0
- package/dist/composition/probe/index.js.map +1 -1
- package/dist/composition/probe/limits.d.ts +25 -1
- package/dist/composition/probe/limits.d.ts.map +1 -1
- package/dist/composition/probe/limits.js +53 -11
- package/dist/composition/probe/limits.js.map +1 -1
- package/dist/composition/probe/pipeline.d.ts +5 -0
- package/dist/composition/probe/pipeline.d.ts.map +1 -1
- package/dist/composition/probe/pipeline.js +73 -24
- package/dist/composition/probe/pipeline.js.map +1 -1
- package/dist/composition/probe/power-law.d.ts +121 -0
- package/dist/composition/probe/power-law.d.ts.map +1 -0
- package/dist/composition/probe/power-law.js +251 -0
- package/dist/composition/probe/power-law.js.map +1 -0
- package/dist/composition/probe/problem.d.ts +8 -4
- package/dist/composition/probe/problem.d.ts.map +1 -1
- package/dist/composition/probe/problem.js +177 -49
- package/dist/composition/probe/problem.js.map +1 -1
- package/dist/composition/probe/report.js +1 -1
- package/dist/composition/probe/report.js.map +1 -1
- package/dist/composition/probe/residual.d.ts +7 -1
- package/dist/composition/probe/residual.d.ts.map +1 -1
- package/dist/composition/probe/residual.js +10 -7
- package/dist/composition/probe/residual.js.map +1 -1
- package/dist/composition/probe/run-manifest.d.ts +1 -0
- package/dist/composition/probe/run-manifest.d.ts.map +1 -1
- package/dist/composition/probe/run-manifest.js.map +1 -1
- package/dist/composition/probe/scalar-search.d.ts +50 -0
- package/dist/composition/probe/scalar-search.d.ts.map +1 -0
- package/dist/composition/probe/scalar-search.js +169 -0
- package/dist/composition/probe/scalar-search.js.map +1 -0
- package/dist/composition/probe/scoring.d.ts +1 -0
- package/dist/composition/probe/scoring.d.ts.map +1 -1
- package/dist/composition/probe/scoring.js.map +1 -1
- package/dist/composition/probe/structure.d.ts +82 -17
- package/dist/composition/probe/structure.d.ts.map +1 -1
- package/dist/composition/probe/structure.js +129 -55
- package/dist/composition/probe/structure.js.map +1 -1
- package/dist/composition/probe/study.d.ts +31 -9
- package/dist/composition/probe/study.d.ts.map +1 -1
- package/dist/composition/probe/study.js +235 -184
- package/dist/composition/probe/study.js.map +1 -1
- package/dist/composition/probe/t-tail.d.ts +16 -0
- package/dist/composition/probe/t-tail.d.ts.map +1 -0
- package/dist/composition/probe/t-tail.js +29 -0
- package/dist/composition/probe/t-tail.js.map +1 -0
- package/dist/composition/probe/types.d.ts +3 -0
- package/dist/composition/probe/types.d.ts.map +1 -1
- package/dist/composition/probe/types.js.map +1 -1
- package/dist/composition/proposed-bridges.d.ts +52 -12
- package/dist/composition/proposed-bridges.d.ts.map +1 -1
- package/dist/composition/proposed-bridges.js +107 -60
- package/dist/composition/proposed-bridges.js.map +1 -1
- package/dist/composition/quantity-clusters.d.ts +48 -0
- package/dist/composition/quantity-clusters.d.ts.map +1 -0
- package/dist/composition/quantity-clusters.js +98 -0
- package/dist/composition/quantity-clusters.js.map +1 -0
- package/dist/composition/rational-exponent.d.ts +40 -0
- package/dist/composition/rational-exponent.d.ts.map +1 -0
- package/dist/composition/rational-exponent.js +65 -0
- package/dist/composition/rational-exponent.js.map +1 -0
- package/dist/composition/representative-values.d.ts +22 -0
- package/dist/composition/representative-values.d.ts.map +1 -1
- package/dist/composition/representative-values.js +29 -0
- package/dist/composition/representative-values.js.map +1 -1
- package/dist/composition/retrodiction.d.ts +15 -0
- package/dist/composition/retrodiction.d.ts.map +1 -1
- package/dist/composition/retrodiction.js +12 -4
- package/dist/composition/retrodiction.js.map +1 -1
- package/dist/composition/user-equation.d.ts +1 -0
- package/dist/composition/user-equation.d.ts.map +1 -1
- package/dist/composition/user-equation.js +3 -2
- package/dist/composition/user-equation.js.map +1 -1
- package/dist/core/assignment.d.ts +19 -0
- package/dist/core/assignment.d.ts.map +1 -0
- package/dist/core/assignment.js +19 -0
- package/dist/core/assignment.js.map +1 -0
- package/dist/core/compare.d.ts +32 -0
- package/dist/core/compare.d.ts.map +1 -0
- package/dist/core/compare.js +46 -0
- package/dist/core/compare.js.map +1 -0
- package/dist/core/constants.d.ts +42 -41
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +71 -51
- package/dist/core/constants.js.map +1 -1
- package/dist/core/data-file.d.ts +7 -0
- package/dist/core/data-file.d.ts.map +1 -1
- package/dist/core/data-file.js +17 -0
- package/dist/core/data-file.js.map +1 -1
- package/dist/core/format.d.ts +36 -0
- package/dist/core/format.d.ts.map +1 -0
- package/dist/core/format.js +39 -0
- package/dist/core/format.js.map +1 -0
- package/dist/core/hash.d.ts +14 -0
- package/dist/core/hash.d.ts.map +1 -0
- package/dist/core/hash.js +17 -0
- package/dist/core/hash.js.map +1 -0
- package/dist/core/json-schema.d.ts +2 -0
- package/dist/core/json-schema.d.ts.map +1 -1
- package/dist/core/json-schema.js +14 -13
- package/dist/core/json-schema.js.map +1 -1
- package/dist/core/labeled-tensor.d.ts.map +1 -1
- package/dist/core/labeled-tensor.js +0 -8
- package/dist/core/labeled-tensor.js.map +1 -1
- package/dist/core/mathts-read.d.ts +25 -0
- package/dist/core/mathts-read.d.ts.map +1 -0
- package/dist/core/mathts-read.js +51 -0
- package/dist/core/mathts-read.js.map +1 -0
- package/dist/core/tensor.d.ts.map +1 -1
- package/dist/core/tensor.js +24 -0
- package/dist/core/tensor.js.map +1 -1
- package/dist/core/types.d.ts +5 -5
- package/dist/diff/bridge-ast-gradient.d.ts +27 -23
- package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
- package/dist/diff/bridge-ast-gradient.js +75 -173
- package/dist/diff/bridge-ast-gradient.js.map +1 -1
- package/dist/diff/bridge-gradient.d.ts +19 -6
- package/dist/diff/bridge-gradient.d.ts.map +1 -1
- package/dist/diff/bridge-gradient.js +19 -11
- package/dist/diff/bridge-gradient.js.map +1 -1
- package/dist/diff/bridge-specs.d.ts.map +1 -1
- package/dist/diff/bridge-specs.js +3 -0
- package/dist/diff/bridge-specs.js.map +1 -1
- package/dist/dimensional/algebra.d.ts +18 -0
- package/dist/dimensional/algebra.d.ts.map +1 -1
- package/dist/dimensional/algebra.js +41 -1
- package/dist/dimensional/algebra.js.map +1 -1
- package/dist/dimensional/ast-builders.d.ts +7 -0
- package/dist/dimensional/ast-builders.d.ts.map +1 -1
- package/dist/dimensional/ast-builders.js +11 -0
- package/dist/dimensional/ast-builders.js.map +1 -1
- package/dist/dimensional/ast-leaves.d.ts +81 -0
- package/dist/dimensional/ast-leaves.d.ts.map +1 -0
- package/dist/dimensional/ast-leaves.js +146 -0
- package/dist/dimensional/ast-leaves.js.map +1 -0
- package/dist/dimensional/ast-types.d.ts +15 -0
- package/dist/dimensional/ast-types.d.ts.map +1 -1
- package/dist/dimensional/ast-types.js.map +1 -1
- package/dist/dimensional/buckingham.d.ts.map +1 -1
- package/dist/dimensional/buckingham.js +15 -27
- package/dist/dimensional/buckingham.js.map +1 -1
- package/dist/dimensional/constant-rows.js +9 -9
- package/dist/dimensional/constant-rows.js.map +1 -1
- package/dist/dimensional/curvature-composite.d.ts +1 -1
- package/dist/dimensional/curvature-composite.js.map +1 -1
- package/dist/dimensional/dimension-inference.d.ts.map +1 -1
- package/dist/dimensional/dimension-inference.js +1 -2
- package/dist/dimensional/dimension-inference.js.map +1 -1
- package/dist/dimensional/errors.d.ts +1 -1
- package/dist/dimensional/errors.d.ts.map +1 -1
- package/dist/dimensional/errors.js +1 -15
- package/dist/dimensional/errors.js.map +1 -1
- package/dist/dimensional/exact-scale.d.ts +24 -11
- package/dist/dimensional/exact-scale.d.ts.map +1 -1
- package/dist/dimensional/exact-scale.js +122 -130
- package/dist/dimensional/exact-scale.js.map +1 -1
- package/dist/dimensional/gauge-field.d.ts.map +1 -1
- package/dist/dimensional/gauge-field.js +2 -2
- package/dist/dimensional/gauge-field.js.map +1 -1
- package/dist/dimensional/hyphen-names.d.ts +12 -2
- package/dist/dimensional/hyphen-names.d.ts.map +1 -1
- package/dist/dimensional/hyphen-names.js +44 -19
- package/dist/dimensional/hyphen-names.js.map +1 -1
- package/dist/dimensional/mathts-unit-delegation.d.ts +29 -0
- package/dist/dimensional/mathts-unit-delegation.d.ts.map +1 -0
- package/dist/dimensional/mathts-unit-delegation.js +187 -0
- package/dist/dimensional/mathts-unit-delegation.js.map +1 -0
- package/dist/dimensional/mathts-unit-wrapper.d.ts +33 -0
- package/dist/dimensional/mathts-unit-wrapper.d.ts.map +1 -0
- package/dist/dimensional/mathts-unit-wrapper.js +190 -0
- package/dist/dimensional/mathts-unit-wrapper.js.map +1 -0
- package/dist/dimensional/metric.d.ts.map +1 -1
- package/dist/dimensional/metric.js +0 -1
- package/dist/dimensional/metric.js.map +1 -1
- package/dist/dimensional/scalar-lowering.d.ts +21 -0
- package/dist/dimensional/scalar-lowering.d.ts.map +1 -0
- package/dist/dimensional/scalar-lowering.js +45 -0
- package/dist/dimensional/scalar-lowering.js.map +1 -0
- package/dist/dimensional/symbolic-constants.d.ts +9 -0
- package/dist/dimensional/symbolic-constants.d.ts.map +1 -1
- package/dist/dimensional/symbolic-constants.js +13 -1
- package/dist/dimensional/symbolic-constants.js.map +1 -1
- package/dist/dimensional/types.d.ts +36 -0
- package/dist/dimensional/types.d.ts.map +1 -1
- package/dist/dimensional/types.js +45 -7
- package/dist/dimensional/types.js.map +1 -1
- package/dist/dimensional/unit-data.d.ts +5 -1
- package/dist/dimensional/unit-data.d.ts.map +1 -1
- package/dist/dimensional/unit-data.js +30 -6
- package/dist/dimensional/unit-data.js.map +1 -1
- package/dist/dimensional/units.d.ts +2 -0
- package/dist/dimensional/units.d.ts.map +1 -1
- package/dist/dimensional/units.js +59 -3
- package/dist/dimensional/units.js.map +1 -1
- package/dist/dimensional/validator.d.ts +2 -0
- package/dist/dimensional/validator.d.ts.map +1 -1
- package/dist/dimensional/validator.js.map +1 -1
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -4
- package/dist/index.js.map +1 -1
- package/dist/numerical/christoffel-flat.d.ts.map +1 -1
- package/dist/numerical/christoffel-flat.js +3 -2
- package/dist/numerical/christoffel-flat.js.map +1 -1
- package/dist/numerical/connection-lowering-helpers.d.ts +3 -1
- package/dist/numerical/connection-lowering-helpers.d.ts.map +1 -1
- package/dist/numerical/connection-lowering-helpers.js +11 -15
- package/dist/numerical/connection-lowering-helpers.js.map +1 -1
- package/dist/numerical/covariant-eikonal.d.ts.map +1 -1
- package/dist/numerical/covariant-eikonal.js +34 -11
- package/dist/numerical/covariant-eikonal.js.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.js +3 -2
- package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
- package/dist/numerical/errors.d.ts.map +1 -1
- package/dist/numerical/errors.js +0 -3
- package/dist/numerical/errors.js.map +1 -1
- package/dist/numerical/finite-difference.d.ts +22 -0
- package/dist/numerical/finite-difference.d.ts.map +1 -0
- package/dist/numerical/finite-difference.js +27 -0
- package/dist/numerical/finite-difference.js.map +1 -0
- package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
- package/dist/numerical/geodesic-integrator.js +22 -14
- package/dist/numerical/geodesic-integrator.js.map +1 -1
- package/dist/numerical/geometrized.d.ts.map +1 -1
- package/dist/numerical/geometrized.js +0 -1
- package/dist/numerical/geometrized.js.map +1 -1
- package/dist/numerical/mathts-engine.d.ts.map +1 -1
- package/dist/numerical/mathts-engine.js +10 -24
- package/dist/numerical/mathts-engine.js.map +1 -1
- package/dist/numerical/metric-inverse.d.ts.map +1 -1
- package/dist/numerical/metric-inverse.js +83 -46
- package/dist/numerical/metric-inverse.js.map +1 -1
- package/dist/numerical/null-ray-integrator.d.ts +2 -1
- package/dist/numerical/null-ray-integrator.d.ts.map +1 -1
- package/dist/numerical/null-ray-integrator.js +12 -12
- package/dist/numerical/null-ray-integrator.js.map +1 -1
- package/dist/numerical/painleve-gullstrand-metric.js +2 -2
- package/dist/numerical/painleve-gullstrand-metric.js.map +1 -1
- package/dist/numerical/pderiv.d.ts.map +1 -1
- package/dist/numerical/pderiv.js +2 -6
- package/dist/numerical/pderiv.js.map +1 -1
- package/dist/numerical/perihelion-finder.d.ts +0 -36
- package/dist/numerical/perihelion-finder.d.ts.map +1 -1
- package/dist/numerical/perihelion-finder.js +41 -87
- package/dist/numerical/perihelion-finder.js.map +1 -1
- package/dist/numerical/quadrature.d.ts.map +1 -1
- package/dist/numerical/quadrature.js +11 -13
- package/dist/numerical/quadrature.js.map +1 -1
- package/dist/numerical/rk4-trajectory.d.ts +10 -0
- package/dist/numerical/rk4-trajectory.d.ts.map +1 -0
- package/dist/numerical/rk4-trajectory.js +37 -0
- package/dist/numerical/rk4-trajectory.js.map +1 -0
- package/dist/numerical/schwarzschild.d.ts +14 -0
- package/dist/numerical/schwarzschild.d.ts.map +1 -0
- package/dist/numerical/schwarzschild.js +17 -0
- package/dist/numerical/schwarzschild.js.map +1 -0
- package/dist/numerical/spacetime-metrics.d.ts +12 -0
- package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
- package/dist/numerical/spacetime-metrics.js +72 -56
- package/dist/numerical/spacetime-metrics.js.map +1 -1
- package/dist/numerical/statistics.d.ts +24 -0
- package/dist/numerical/statistics.d.ts.map +1 -0
- package/dist/numerical/statistics.js +52 -0
- package/dist/numerical/statistics.js.map +1 -0
- package/dist/numerical/strides.d.ts +3 -2
- package/dist/numerical/strides.d.ts.map +1 -1
- package/dist/numerical/strides.js +3 -10
- package/dist/numerical/strides.js.map +1 -1
- package/dist/numerical/tensor-engine.d.ts +21 -0
- package/dist/numerical/tensor-engine.d.ts.map +1 -1
- package/dist/numerical/tensor-engine.js +12 -0
- package/dist/numerical/tensor-engine.js.map +1 -1
- package/dist/relations/regime.d.ts +10 -0
- package/dist/relations/regime.d.ts.map +1 -1
- package/dist/relations/regime.js +18 -1
- package/dist/relations/regime.js.map +1 -1
- package/package.json +9 -12
- package/dist/cases/brownian-sphere.d.ts +0 -68
- package/dist/cases/brownian-sphere.d.ts.map +0 -1
- package/dist/cases/brownian-sphere.js +0 -354
- package/dist/cases/brownian-sphere.js.map +0 -1
- package/dist/cases/damped-resonator.d.ts +0 -23
- package/dist/cases/damped-resonator.d.ts.map +0 -1
- package/dist/cases/damped-resonator.js +0 -224
- package/dist/cases/damped-resonator.js.map +0 -1
- package/dist/cases/kepler-rv.d.ts +0 -13
- package/dist/cases/kepler-rv.d.ts.map +0 -1
- package/dist/cases/kepler-rv.js +0 -172
- package/dist/cases/kepler-rv.js.map +0 -1
- package/dist/cases/lumped-cooling.d.ts +0 -46
- package/dist/cases/lumped-cooling.d.ts.map +0 -1
- package/dist/cases/lumped-cooling.js +0 -261
- package/dist/cases/lumped-cooling.js.map +0 -1
- package/dist/cases/resistor-noise.d.ts +0 -14
- package/dist/cases/resistor-noise.d.ts.map +0 -1
- package/dist/cases/resistor-noise.js +0 -215
- package/dist/cases/resistor-noise.js.map +0 -1
- package/dist/cases/skin-depth.d.ts +0 -21
- package/dist/cases/skin-depth.d.ts.map +0 -1
- package/dist/cases/skin-depth.js +0 -174
- package/dist/cases/skin-depth.js.map +0 -1
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Evaluate applied-case outputs and checks from catalog `expr`, `relation`, and
|
|
3
|
+
* `method` fields.
|
|
4
|
+
*
|
|
5
|
+
* @module cases/engine
|
|
6
|
+
*/
|
|
7
|
+
import { catalogRelations } from '../bridges/catalog-load.js';
|
|
8
|
+
import { evaluateCatalogRelation } from '../bridges/relation-eval.js';
|
|
9
|
+
import { evaluateFormula } from '../bridges/expr-parse.js';
|
|
10
|
+
import { convertValue } from '../dimensional/units.js';
|
|
11
|
+
import { check, requirePositive } from './types.js';
|
|
12
|
+
let registeredCaseMethods = {};
|
|
13
|
+
/** Wire catalog `method` names to implementations (called from `methods.ts` at load). @internal */
|
|
14
|
+
export function registerCaseMethods(map) {
|
|
15
|
+
registeredCaseMethods = map;
|
|
16
|
+
}
|
|
17
|
+
const DELEGATED_RUN_METHODS = new Set(['runCaseResistorNoise', 'runCaseLumpedCooling', 'runCaseBrownianSphere']);
|
|
18
|
+
const ENGINE_CASE_IDS = new Set(['case-skin-depth', 'case-kepler-rv', 'case-damped-resonator']);
|
|
19
|
+
/** True when the record drives outputs through the catalog engine rather than a legacy runner. @internal */
|
|
20
|
+
export function usesCatalogEngine(record) {
|
|
21
|
+
if (ENGINE_CASE_IDS.has(record.id))
|
|
22
|
+
return true;
|
|
23
|
+
const wired = (o) => o.expr !== undefined || o.relation !== undefined || o.method !== undefined;
|
|
24
|
+
if (!record.outputs.every(wired))
|
|
25
|
+
return false;
|
|
26
|
+
if (record.outputs.every((o) => o.method !== undefined && DELEGATED_RUN_METHODS.has(o.method)))
|
|
27
|
+
return false;
|
|
28
|
+
return record.outputs.some((o) => o.expr !== undefined ||
|
|
29
|
+
o.relation !== undefined ||
|
|
30
|
+
(o.method !== undefined && !DELEGATED_RUN_METHODS.has(o.method)));
|
|
31
|
+
}
|
|
32
|
+
function mergeBindings(inputs, outputs, extra = {}) {
|
|
33
|
+
const merged = { ...inputs, ...extra };
|
|
34
|
+
for (const [key, value] of Object.entries(outputs)) {
|
|
35
|
+
if (value !== null && Number.isFinite(value))
|
|
36
|
+
merged[key] = value;
|
|
37
|
+
}
|
|
38
|
+
return merged;
|
|
39
|
+
}
|
|
40
|
+
function evalOutputExpr(expr, inputs, outputs, extra = {}) {
|
|
41
|
+
return evaluateFormula(expr, mergeBindings(inputs, outputs, extra));
|
|
42
|
+
}
|
|
43
|
+
function evalRelationOutput(relationId, inputMap, scope) {
|
|
44
|
+
const rel = catalogRelations().find((row) => row.id === relationId);
|
|
45
|
+
if (rel === undefined)
|
|
46
|
+
throw new Error(`applied case: relation '${relationId}' is not in the catalog`);
|
|
47
|
+
const relInputs = {};
|
|
48
|
+
for (const [target, expr] of Object.entries(inputMap)) {
|
|
49
|
+
relInputs[target] = evaluateFormula(expr, scope);
|
|
50
|
+
}
|
|
51
|
+
return evaluateCatalogRelation(rel, relInputs);
|
|
52
|
+
}
|
|
53
|
+
function evalOutput(row, inputs, outputs, extra = {}) {
|
|
54
|
+
const bindings = mergeBindings(inputs, outputs, extra);
|
|
55
|
+
if (row.expr !== undefined)
|
|
56
|
+
return evalOutputExpr(row.expr, inputs, outputs, extra);
|
|
57
|
+
if (row.relation !== undefined)
|
|
58
|
+
return evalRelationOutput(row.relation.relation, row.relation.inputs, bindings);
|
|
59
|
+
if (row.method !== undefined) {
|
|
60
|
+
const fn = registeredCaseMethods[row.method];
|
|
61
|
+
if (fn === undefined)
|
|
62
|
+
throw new Error(`applied case: unknown method '${row.method}'`);
|
|
63
|
+
return fn(inputs, outputs);
|
|
64
|
+
}
|
|
65
|
+
throw new Error(`applied case: output '${row.key}' has no expr, relation, or method`);
|
|
66
|
+
}
|
|
67
|
+
function evalCheck(row, inputs, outputs, extra = {}) {
|
|
68
|
+
const value = evalOutputExpr(row.expr, inputs, outputs, extra);
|
|
69
|
+
return check(row.id, row.premise, row.quantity, value, row.op, row.bound, row.threshold);
|
|
70
|
+
}
|
|
71
|
+
const SKIN_UNCHECKED = [
|
|
72
|
+
'ρ, μ_r and ε_r are the values at the conductor\'s temperature and at f; τ = l/v assumes one carrier species with one speed',
|
|
73
|
+
'the conductor is planar on the scale of δ (a wire of radius a needs a ≫ δ, not checked here)',
|
|
74
|
+
];
|
|
75
|
+
const KEPLER_UNCHECKED = [
|
|
76
|
+
'no third body: an outer companion adds its own reflex signal and perturbs P and ω',
|
|
77
|
+
'the companion\'s radius is also small beside r_p (only the star\'s is checked)',
|
|
78
|
+
];
|
|
79
|
+
const DAMPED_UNDERDAMPED_OUTPUTS = new Set([
|
|
80
|
+
'f_d_Hz',
|
|
81
|
+
'x_m',
|
|
82
|
+
'envelope_m',
|
|
83
|
+
'linewidth_windowed_Hz',
|
|
84
|
+
'windowed_excess',
|
|
85
|
+
]);
|
|
86
|
+
const DAMPED_DEFERRED_OUTPUTS = new Set(['x_th_rms_m', 'envelope_rms_m']);
|
|
87
|
+
function validateKeplerInputs(id, inputs) {
|
|
88
|
+
requirePositive(id, inputs, ['M_star_kg', 'm_p_kg', 'P_s', 'sin_i', 'R_star_m', 'T_obs_s']);
|
|
89
|
+
const e = inputs.eccentricity;
|
|
90
|
+
if (!Number.isFinite(e) || e < 0 || e >= 1)
|
|
91
|
+
throw new Error(`${id}: eccentricity must be in [0, 1) (got ${e})`);
|
|
92
|
+
if (inputs.sin_i > 1)
|
|
93
|
+
throw new Error(`${id}: sin_i must be in (0, 1] (got ${inputs.sin_i})`);
|
|
94
|
+
return { julian_year_s: convertValue('1 yr', 's').value };
|
|
95
|
+
}
|
|
96
|
+
function validateDampedInputs(id, inputs) {
|
|
97
|
+
requirePositive(id, inputs, ['f0_Hz', 'Q', 't_obs_s']);
|
|
98
|
+
const { x0_m: x0, t_s: t } = inputs;
|
|
99
|
+
if (!Number.isFinite(x0))
|
|
100
|
+
throw new Error(`${id}: x0_m must be finite (got ${x0})`);
|
|
101
|
+
if (!Number.isFinite(t) || t < 0)
|
|
102
|
+
throw new Error(`${id}: t_s must be a finite number ≥ 0 (got ${t})`);
|
|
103
|
+
if ((inputs.T_K === undefined) !== (inputs.k_N_per_m === undefined)) {
|
|
104
|
+
throw new Error(`${id}: give T_K and k_N_per_m together, or neither`);
|
|
105
|
+
}
|
|
106
|
+
return { underdamped: inputs.Q > 0.5 };
|
|
107
|
+
}
|
|
108
|
+
function runDampedEngine(record, inputs) {
|
|
109
|
+
const { underdamped } = validateDampedInputs(record.id, inputs);
|
|
110
|
+
const outputs = {};
|
|
111
|
+
for (const row of record.outputs) {
|
|
112
|
+
if (DAMPED_DEFERRED_OUTPUTS.has(row.key))
|
|
113
|
+
continue;
|
|
114
|
+
if (!underdamped && DAMPED_UNDERDAMPED_OUTPUTS.has(row.key)) {
|
|
115
|
+
outputs[row.key] = null;
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
outputs[row.key] = evalOutput(row, inputs, outputs);
|
|
119
|
+
}
|
|
120
|
+
let xTh = null;
|
|
121
|
+
if (inputs.T_K !== undefined) {
|
|
122
|
+
requirePositive(record.id, inputs, ['T_K', 'k_N_per_m']);
|
|
123
|
+
xTh = evalOutputExpr('sqrt(k_B*T_K/k_N_per_m)', inputs, outputs);
|
|
124
|
+
outputs.x_th_rms_m = xTh;
|
|
125
|
+
const envelope = outputs.envelope_m;
|
|
126
|
+
outputs.envelope_rms_m =
|
|
127
|
+
envelope === null || xTh === null ? null : evalOutputExpr('sqrt(envelope_m^2 + 2*x_th_rms_m^2)', inputs, outputs);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
outputs.x_th_rms_m = null;
|
|
131
|
+
outputs.envelope_rms_m = null;
|
|
132
|
+
}
|
|
133
|
+
const checks = record.checks
|
|
134
|
+
.filter((row) => {
|
|
135
|
+
if (row.id !== 'above-thermal')
|
|
136
|
+
return true;
|
|
137
|
+
return xTh !== null && outputs.envelope_m !== null;
|
|
138
|
+
})
|
|
139
|
+
.map((row) => evalCheck(row, inputs, outputs));
|
|
140
|
+
const unchecked = underdamped
|
|
141
|
+
? ['the damping is viscous (velocity-proportional) and the same over the whole ring-down']
|
|
142
|
+
: ['for Q ≤ 1/2 the displacement is x0 (r₂e^{r₁t} − r₁e^{r₂t})/(r₂ − r₁) with real r₁, r₂; this case does not evaluate it'];
|
|
143
|
+
if (inputs.T_K !== undefined) {
|
|
144
|
+
unchecked.push('the thermal motion is in equilibrium with the damping bath at T and uncorrelated with the release; the read-out adds no noise of its own');
|
|
145
|
+
}
|
|
146
|
+
return { outputs, checks, unchecked };
|
|
147
|
+
}
|
|
148
|
+
/** Run one catalog record whose outputs are wired as expressions or methods. @internal */
|
|
149
|
+
export function runAppliedCaseEngine(record, inputs) {
|
|
150
|
+
if (record.id === 'case-damped-resonator')
|
|
151
|
+
return runDampedEngine(record, inputs);
|
|
152
|
+
let extra = {};
|
|
153
|
+
if (record.id === 'case-skin-depth') {
|
|
154
|
+
requirePositive(record.id, inputs, [
|
|
155
|
+
'rho_ohm_m',
|
|
156
|
+
'f_Hz',
|
|
157
|
+
'mu_r',
|
|
158
|
+
'eps_r',
|
|
159
|
+
'l_mfp_m',
|
|
160
|
+
'v_carrier_m_per_s',
|
|
161
|
+
'thickness_m',
|
|
162
|
+
]);
|
|
163
|
+
}
|
|
164
|
+
else if (record.id === 'case-kepler-rv') {
|
|
165
|
+
extra = validateKeplerInputs(record.id, inputs);
|
|
166
|
+
}
|
|
167
|
+
const outputs = {};
|
|
168
|
+
for (const row of record.outputs) {
|
|
169
|
+
outputs[row.key] = evalOutput(row, inputs, outputs, extra);
|
|
170
|
+
}
|
|
171
|
+
const checks = record.checks.map((row) => evalCheck(row, inputs, outputs, extra));
|
|
172
|
+
const unchecked = record.id === 'case-skin-depth'
|
|
173
|
+
? [...SKIN_UNCHECKED]
|
|
174
|
+
: record.id === 'case-kepler-rv'
|
|
175
|
+
? [...KEPLER_UNCHECKED]
|
|
176
|
+
: [];
|
|
177
|
+
return { outputs, checks, unchecked };
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/cases/engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,eAAe,EAAmC,MAAM,YAAY,CAAC;AASrF,IAAI,qBAAqB,GAAkB,EAAE,CAAC;AAE9C,mGAAmG;AACnG,MAAM,UAAU,mBAAmB,CAAC,GAAkB;IACpD,qBAAqB,GAAG,GAAG,CAAC;AAC9B,CAAC;AAED,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,sBAAsB,EAAE,sBAAsB,EAAE,uBAAuB,CAAC,CAAC,CAAC;AAEjH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,uBAAuB,CAAC,CAAC,CAAC;AAEhG,4GAA4G;AAC5G,MAAM,UAAU,iBAAiB,CAAC,MAAyB;IACzD,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,MAAM,KAAK,GAAG,CAAC,CAA0B,EAAE,EAAE,CAC3C,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC;IAC7E,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAO,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9G,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CACxB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,KAAK,SAAS;QACpB,CAAC,CAAC,QAAQ,KAAK,SAAS;QACxB,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CACnE,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,MAAwC,EACxC,OAAgD,EAChD,KAAK,GAAqC,EAAE;IAE5C,MAAM,MAAM,GAA2B,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAC/D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CACrB,IAAY,EACZ,MAAwC,EACxC,OAAgD,EAChD,KAAK,GAAqC,EAAE;IAE5C,OAAO,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,kBAAkB,CACzB,UAAkB,EAClB,QAA0C,EAC1C,KAA6B;IAE7B,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IACpE,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,UAAU,yBAAyB,CAAC,CAAC;IACvG,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,SAAS,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,uBAAuB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,UAAU,CACjB,GAA4B,EAC5B,MAAwC,EACxC,OAAgD,EAChD,KAAK,GAAqC,EAAE;IAE5C,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACvD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACpF,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChH,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAiC,CAAC;QAC7E,IAAI,EAAE,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QACtF,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,GAAG,oCAAoC,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,SAAS,CAChB,GAA2B,EAC3B,MAAwC,EACxC,OAAgD,EAChD,KAAK,GAAqC,EAAE;IAE5C,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/D,OAAO,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,cAAc,GAAG;IACrB,4HAA4H;IAC5H,8FAA8F;CACtF,CAAC;AAEX,MAAM,gBAAgB,GAAG;IACvB,mFAAmF;IACnF,gFAAgF;CACxE,CAAC;AAEX,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC;IACzC,QAAQ;IACR,KAAK;IACL,YAAY;IACZ,uBAAuB;IACvB,iBAAiB;CAClB,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAE1E,SAAS,oBAAoB,CAAC,EAAU,EAAE,MAAwC;IAChF,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IAC5F,MAAM,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,yCAAyC,CAAC,GAAG,CAAC,CAAC;IAChH,IAAI,MAAM,CAAC,KAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,kCAAkC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;IAC/F,OAAO,EAAE,aAAa,EAAE,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,oBAAoB,CAAC,EAAU,EAAE,MAAwC;IAChF,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;IACvD,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC;IACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,8BAA8B,EAAE,GAAG,CAAC,CAAC;IACpF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAE,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,0CAA0C,CAAC,GAAG,CAAC,CAAC;IACxG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,+CAA+C,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAE,GAAG,GAAG,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,eAAe,CAAC,MAAyB,EAAE,MAAwC;IAC1F,MAAM,EAAE,WAAW,EAAE,GAAG,oBAAoB,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAChE,MAAM,OAAO,GAAkC,EAAE,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACnD,IAAI,CAAC,WAAW,IAAI,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACxB,SAAS;QACX,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,GAAG,GAAkB,IAAI,CAAC;IAC9B,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC7B,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;QACzD,GAAG,GAAG,cAAc,CAAC,yBAAyB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACjE,OAAO,CAAC,UAAU,GAAG,GAAG,CAAC;QACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;QACpC,OAAO,CAAC,cAAc;YACpB,QAAQ,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,qCAAqC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACtH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;QAC1B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAChC,CAAC;IACD,MAAM,MAAM,GAAgB,MAAM,CAAC,MAAM;SACtC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QACd,IAAI,GAAG,CAAC,EAAE,KAAK,eAAe;YAAE,OAAO,IAAI,CAAC;QAC5C,OAAO,GAAG,KAAK,IAAI,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC;IACrD,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,WAAW;QAC3B,CAAC,CAAC,CAAC,sFAAsF,CAAC;QAC1F,CAAC,CAAC,CAAC,uHAAuH,CAAC,CAAC;IAC9H,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC7B,SAAS,CAAC,IAAI,CACZ,0IAA0I,CAC3I,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACxC,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,oBAAoB,CAAC,MAAyB,EAAE,MAAwC;IACtG,IAAI,MAAM,CAAC,EAAE,KAAK,uBAAuB;QAAE,OAAO,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAElF,IAAI,KAAK,GAA2B,EAAE,CAAC;IACvC,IAAI,MAAM,CAAC,EAAE,KAAK,iBAAiB,EAAE,CAAC;QACpC,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE;YACjC,WAAW;YACX,MAAM;YACN,MAAM;YACN,OAAO;YACP,SAAS;YACT,mBAAmB;YACnB,aAAa;SACd,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,MAAM,CAAC,EAAE,KAAK,gBAAgB,EAAE,CAAC;QAC1C,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,OAAO,GAAkC,EAAE,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAClF,MAAM,SAAS,GACb,MAAM,CAAC,EAAE,KAAK,iBAAiB;QAC7B,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;QACrB,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,gBAAgB;YAC9B,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC;YACvB,CAAC,CAAC,EAAE,CAAC;IACX,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACxC,CAAC","sourcesContent":["/**\n * Evaluate applied-case outputs and checks from catalog `expr`, `relation`, and\n * `method` fields.\n *\n * @module cases/engine\n */\nimport { catalogRelations } from '../bridges/catalog-load.js';\nimport { evaluateCatalogRelation } from '../bridges/relation-eval.js';\nimport { evaluateFormula } from '../bridges/expr-parse.js';\nimport { convertValue } from '../dimensional/units.js';\nimport type { AppliedCaseCheckRecord, AppliedCaseOutputRecord, AppliedCaseRecord } from './catalog.js';\nimport { check, requirePositive, type CaseCheck, type CaseResult } from './types.js';\n\n/** Resolve a catalog output field through a named numeric method. */\nexport type CaseOutputMethod = (\n inputs: Readonly<Record<string, number>>,\n outputs: Readonly<Record<string, number | null>>,\n) => number | null;\n\ntype CaseMethodMap = Record<string, CaseOutputMethod | ((...args: never[]) => unknown)>;\nlet registeredCaseMethods: CaseMethodMap = {};\n\n/** Wire catalog `method` names to implementations (called from `methods.ts` at load). @internal */\nexport function registerCaseMethods(map: CaseMethodMap): void {\n registeredCaseMethods = map;\n}\n\nconst DELEGATED_RUN_METHODS = new Set(['runCaseResistorNoise', 'runCaseLumpedCooling', 'runCaseBrownianSphere']);\n\nconst ENGINE_CASE_IDS = new Set(['case-skin-depth', 'case-kepler-rv', 'case-damped-resonator']);\n\n/** True when the record drives outputs through the catalog engine rather than a legacy runner. @internal */\nexport function usesCatalogEngine(record: AppliedCaseRecord): boolean {\n if (ENGINE_CASE_IDS.has(record.id)) return true;\n const wired = (o: AppliedCaseOutputRecord) =>\n o.expr !== undefined || o.relation !== undefined || o.method !== undefined;\n if (!record.outputs.every(wired)) return false;\n if (record.outputs.every((o) => o.method !== undefined && DELEGATED_RUN_METHODS.has(o.method!))) return false;\n return record.outputs.some(\n (o) =>\n o.expr !== undefined ||\n o.relation !== undefined ||\n (o.method !== undefined && !DELEGATED_RUN_METHODS.has(o.method)),\n );\n}\n\nfunction mergeBindings(\n inputs: Readonly<Record<string, number>>,\n outputs: Readonly<Record<string, number | null>>,\n extra: Readonly<Record<string, number>> = {},\n): Record<string, number> {\n const merged: Record<string, number> = { ...inputs, ...extra };\n for (const [key, value] of Object.entries(outputs)) {\n if (value !== null && Number.isFinite(value)) merged[key] = value;\n }\n return merged;\n}\n\nfunction evalOutputExpr(\n expr: string,\n inputs: Readonly<Record<string, number>>,\n outputs: Readonly<Record<string, number | null>>,\n extra: Readonly<Record<string, number>> = {},\n): number {\n return evaluateFormula(expr, mergeBindings(inputs, outputs, extra));\n}\n\nfunction evalRelationOutput(\n relationId: string,\n inputMap: Readonly<Record<string, string>>,\n scope: Record<string, number>,\n): number {\n const rel = catalogRelations().find((row) => row.id === relationId);\n if (rel === undefined) throw new Error(`applied case: relation '${relationId}' is not in the catalog`);\n const relInputs: Record<string, number> = {};\n for (const [target, expr] of Object.entries(inputMap)) {\n relInputs[target] = evaluateFormula(expr, scope);\n }\n return evaluateCatalogRelation(rel, relInputs);\n}\n\nfunction evalOutput(\n row: AppliedCaseOutputRecord,\n inputs: Readonly<Record<string, number>>,\n outputs: Readonly<Record<string, number | null>>,\n extra: Readonly<Record<string, number>> = {},\n): number | null {\n const bindings = mergeBindings(inputs, outputs, extra);\n if (row.expr !== undefined) return evalOutputExpr(row.expr, inputs, outputs, extra);\n if (row.relation !== undefined) return evalRelationOutput(row.relation.relation, row.relation.inputs, bindings);\n if (row.method !== undefined) {\n const fn = registeredCaseMethods[row.method] as CaseOutputMethod | undefined;\n if (fn === undefined) throw new Error(`applied case: unknown method '${row.method}'`);\n return fn(inputs, outputs);\n }\n throw new Error(`applied case: output '${row.key}' has no expr, relation, or method`);\n}\n\nfunction evalCheck(\n row: AppliedCaseCheckRecord,\n inputs: Readonly<Record<string, number>>,\n outputs: Readonly<Record<string, number | null>>,\n extra: Readonly<Record<string, number>> = {},\n) {\n const value = evalOutputExpr(row.expr, inputs, outputs, extra);\n return check(row.id, row.premise, row.quantity, value, row.op, row.bound, row.threshold);\n}\n\nconst SKIN_UNCHECKED = [\n 'ρ, μ_r and ε_r are the values at the conductor\\'s temperature and at f; τ = l/v assumes one carrier species with one speed',\n 'the conductor is planar on the scale of δ (a wire of radius a needs a ≫ δ, not checked here)',\n] as const;\n\nconst KEPLER_UNCHECKED = [\n 'no third body: an outer companion adds its own reflex signal and perturbs P and ω',\n 'the companion\\'s radius is also small beside r_p (only the star\\'s is checked)',\n] as const;\n\nconst DAMPED_UNDERDAMPED_OUTPUTS = new Set([\n 'f_d_Hz',\n 'x_m',\n 'envelope_m',\n 'linewidth_windowed_Hz',\n 'windowed_excess',\n]);\n\nconst DAMPED_DEFERRED_OUTPUTS = new Set(['x_th_rms_m', 'envelope_rms_m']);\n\nfunction validateKeplerInputs(id: string, inputs: Readonly<Record<string, number>>): Record<string, number> {\n requirePositive(id, inputs, ['M_star_kg', 'm_p_kg', 'P_s', 'sin_i', 'R_star_m', 'T_obs_s']);\n const e = inputs.eccentricity;\n if (!Number.isFinite(e) || e < 0 || e >= 1) throw new Error(`${id}: eccentricity must be in [0, 1) (got ${e})`);\n if (inputs.sin_i! > 1) throw new Error(`${id}: sin_i must be in (0, 1] (got ${inputs.sin_i})`);\n return { julian_year_s: convertValue('1 yr', 's').value };\n}\n\nfunction validateDampedInputs(id: string, inputs: Readonly<Record<string, number>>): { underdamped: boolean } {\n requirePositive(id, inputs, ['f0_Hz', 'Q', 't_obs_s']);\n const { x0_m: x0, t_s: t } = inputs;\n if (!Number.isFinite(x0)) throw new Error(`${id}: x0_m must be finite (got ${x0})`);\n if (!Number.isFinite(t) || t! < 0) throw new Error(`${id}: t_s must be a finite number ≥ 0 (got ${t})`);\n if ((inputs.T_K === undefined) !== (inputs.k_N_per_m === undefined)) {\n throw new Error(`${id}: give T_K and k_N_per_m together, or neither`);\n }\n return { underdamped: inputs.Q! > 0.5 };\n}\n\nfunction runDampedEngine(record: AppliedCaseRecord, inputs: Readonly<Record<string, number>>): CaseResult {\n const { underdamped } = validateDampedInputs(record.id, inputs);\n const outputs: Record<string, number | null> = {};\n for (const row of record.outputs) {\n if (DAMPED_DEFERRED_OUTPUTS.has(row.key)) continue;\n if (!underdamped && DAMPED_UNDERDAMPED_OUTPUTS.has(row.key)) {\n outputs[row.key] = null;\n continue;\n }\n outputs[row.key] = evalOutput(row, inputs, outputs);\n }\n let xTh: number | null = null;\n if (inputs.T_K !== undefined) {\n requirePositive(record.id, inputs, ['T_K', 'k_N_per_m']);\n xTh = evalOutputExpr('sqrt(k_B*T_K/k_N_per_m)', inputs, outputs);\n outputs.x_th_rms_m = xTh;\n const envelope = outputs.envelope_m;\n outputs.envelope_rms_m =\n envelope === null || xTh === null ? null : evalOutputExpr('sqrt(envelope_m^2 + 2*x_th_rms_m^2)', inputs, outputs);\n } else {\n outputs.x_th_rms_m = null;\n outputs.envelope_rms_m = null;\n }\n const checks: CaseCheck[] = record.checks\n .filter((row) => {\n if (row.id !== 'above-thermal') return true;\n return xTh !== null && outputs.envelope_m !== null;\n })\n .map((row) => evalCheck(row, inputs, outputs));\n const unchecked = underdamped\n ? ['the damping is viscous (velocity-proportional) and the same over the whole ring-down']\n : ['for Q ≤ 1/2 the displacement is x0 (r₂e^{r₁t} − r₁e^{r₂t})/(r₂ − r₁) with real r₁, r₂; this case does not evaluate it'];\n if (inputs.T_K !== undefined) {\n unchecked.push(\n 'the thermal motion is in equilibrium with the damping bath at T and uncorrelated with the release; the read-out adds no noise of its own',\n );\n }\n return { outputs, checks, unchecked };\n}\n\n/** Run one catalog record whose outputs are wired as expressions or methods. @internal */\nexport function runAppliedCaseEngine(record: AppliedCaseRecord, inputs: Readonly<Record<string, number>>): CaseResult {\n if (record.id === 'case-damped-resonator') return runDampedEngine(record, inputs);\n\n let extra: Record<string, number> = {};\n if (record.id === 'case-skin-depth') {\n requirePositive(record.id, inputs, [\n 'rho_ohm_m',\n 'f_Hz',\n 'mu_r',\n 'eps_r',\n 'l_mfp_m',\n 'v_carrier_m_per_s',\n 'thickness_m',\n ]);\n } else if (record.id === 'case-kepler-rv') {\n extra = validateKeplerInputs(record.id, inputs);\n }\n\n const outputs: Record<string, number | null> = {};\n for (const row of record.outputs) {\n outputs[row.key] = evalOutput(row, inputs, outputs, extra);\n }\n const checks = record.checks.map((row) => evalCheck(row, inputs, outputs, extra));\n const unchecked =\n record.id === 'case-skin-depth'\n ? [...SKIN_UNCHECKED]\n : record.id === 'case-kepler-rv'\n ? [...KEPLER_UNCHECKED]\n : [];\n return { outputs, checks, unchecked };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cases/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cases/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAA8B,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE9F,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAK9G,gCAAgC;AAChC,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAwB,CAAC;AAoBpF,oHAAoH;AACpH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAuE,CAAC;AAEtI;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,UAAU,CAO/F"}
|
package/dist/cases/index.js
CHANGED
|
@@ -3,15 +3,13 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module cases
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { KEPLER_RV_CASE } from './kepler-rv.js';
|
|
9
|
-
import { LUMPED_COOLING_CASE } from './lumped-cooling.js';
|
|
10
|
-
import { RESISTOR_NOISE_CASE } from './resistor-noise.js';
|
|
11
|
-
import { SKIN_DEPTH_CASE } from './skin-depth.js';
|
|
6
|
+
import { appliedCaseCatalog } from './catalog.js';
|
|
7
|
+
import { APPLIED_CASE_RUNNERS } from './methods.js';
|
|
12
8
|
import { checkInputs, inputContract } from '../bridges/input-contract.js';
|
|
9
|
+
/** Validate the catalog once at load. @internal */
|
|
10
|
+
appliedCaseCatalog();
|
|
13
11
|
/** Case id → case. @internal */
|
|
14
|
-
export const APPLIED_CASES =
|
|
12
|
+
export const APPLIED_CASES = APPLIED_CASE_RUNNERS;
|
|
15
13
|
/**
|
|
16
14
|
* The declared inputs of a case: one listed slot per parameter, spelled by its
|
|
17
15
|
* key and converted from its alternates, required unless the parameter is optional.
|
package/dist/cases/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cases/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cases/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAsB,MAAM,8BAA8B,CAAC;AAI9F,mDAAmD;AACnD,kBAAkB,EAAE,CAAC;AAErB,gCAAgC;AAChC,MAAM,CAAC,MAAM,aAAa,GAAqC,oBAAoB,CAAC;AAEpF;;;GAGG;AACH,SAAS,YAAY,CAAC,CAAc;IAClC,OAAO,aAAa,CAClB,CAAC,CAAC,EAAE,EACJ,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAClB,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QACnF,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,IAAI;QAC7B,MAAM,EAAE,OAAgB;QACxB,MAAM,EAAE,IAAI;KACb,CAAC,CAAC,CACJ,CAAC;AACJ,CAAC;AAED,oHAAoH;AACpH,MAAM,CAAC,MAAM,cAAc,GAAuC,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtI;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,EAAU,EAAE,MAAwC;IACjF,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,4BAA4B,EAAE,aAAa,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtG,CAAC;IACD,OAAO,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAC9C,CAAC","sourcesContent":["/**\n * The applied-case registry behind `upt evaluate case-<id>`.\n *\n * @module cases\n */\nimport { appliedCaseCatalog } from './catalog.js';\nimport { APPLIED_CASE_RUNNERS } from './methods.js';\nimport type { AppliedCase, CaseResult } from './types.js';\nimport { checkInputs, inputContract, type InputContract } from '../bridges/input-contract.js';\n\nexport type { AppliedCase, CaseCheck, CaseComparison, CaseExample, CaseOutput, CaseResult } from './types.js';\n\n/** Validate the catalog once at load. @internal */\nappliedCaseCatalog();\n\n/** Case id → case. @internal */\nexport const APPLIED_CASES: ReadonlyMap<string, AppliedCase> = APPLIED_CASE_RUNNERS;\n\n/**\n * The declared inputs of a case: one listed slot per parameter, spelled by its\n * key and converted from its alternates, required unless the parameter is optional.\n */\nfunction caseContract(c: AppliedCase): InputContract {\n return inputContract(\n c.id,\n c.parameters.map((p) => ({\n key: p.key,\n spellings: [p.key],\n alternates: (p.alternates ?? []).map((alt) => ({ key: alt.key, toKey: alt.toKey })),\n optional: p.optional === true,\n readBy: 'value' as const,\n listed: true,\n })),\n );\n}\n\n/** Case id → its input contract, built once at load (a contract that spells one key twice fails here). @internal */\nexport const CASE_CONTRACTS: ReadonlyMap<string, InputContract> = new Map([...APPLIED_CASES].map(([id, c]) => [id, caseContract(c)]));\n\n/**\n * Run a case with a numeric input record. The inputs go through the same\n * {@link checkInputs} contract as a catalog evaluator before the case's model runs.\n * @throws Error on an unknown id.\n * @throws UnknownInputError, InputTypeError, NonFiniteInputError, DuplicateInputError or\n * MissingInputError on an input the contract refuses.\n * @throws Error from the case's model on an input outside its domain.\n * @internal\n */\nexport function runAppliedCase(id: string, inputs: Readonly<Record<string, number>>): CaseResult {\n const c = APPLIED_CASES.get(id);\n const contract = CASE_CONTRACTS.get(id);\n if (c === undefined || contract === undefined) {\n throw new Error(`runAppliedCase: no case '${id}' (cases: ${[...APPLIED_CASES.keys()].join(', ')})`);\n }\n return c.run(checkInputs(contract, inputs));\n}\n"]}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import { type AppliedCase, type CaseResult, type LumpedRadiating } from './types.js';
|
|
2
|
+
/** Lumped body with radiative cooling parameters (re-export). */
|
|
3
|
+
export type { LumpedRadiating } from './types.js';
|
|
4
|
+
/** ωε/σ ceiling: the displacement current then moves the penetration depth by ≈ ωε/(2σ) ≤ 0.5%. @internal */
|
|
5
|
+
export declare const MAX_DISPLACEMENT_RATIO = 0.01;
|
|
6
|
+
/** l/δ ceiling for a local (classical) conductivity. @internal */
|
|
7
|
+
export declare const MAX_MFP_RATIO = 0.1;
|
|
8
|
+
/** ωτ ceiling: the Drude σ(ω) = σ0/(1 − iωτ) is then within 0.5% of σ0 in modulus. @internal */
|
|
9
|
+
export declare const MAX_OMEGA_TAU = 0.1;
|
|
10
|
+
/** d/δ floor: the field reaching the back face is then ≤ e^{−5} ≈ 0.7% of the surface field. @internal */
|
|
11
|
+
export declare const MIN_THICKNESS_RATIO = 5;
|
|
12
|
+
/**
|
|
13
|
+
* δ_Maxwell/δ for the plane wave k² = ω²με + iωμσ, as a function of r = ωε/σ:
|
|
14
|
+
* 1/Im k = δ √(√(1 + r²) + r), written without the cancellation of |z| − Re z.
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
export declare function maxwellDepthFactor(r: number): number;
|
|
18
|
+
/** Parent penetration depth δ_M from classical δ and r = ωε/σ. @internal */
|
|
19
|
+
export declare function skinDeltaMaxwellM(_inputs: Readonly<Record<string, number>>, outputs: Readonly<Record<string, number | null>>): number;
|
|
20
|
+
/**
|
|
21
|
+
* Evaluate the skin-depth applied case at the given SI inputs.
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
export declare function runCaseSkinDepth(i: Readonly<Record<string, number>>): CaseResult;
|
|
25
|
+
/** The Julian year, the year BE-52 takes (s): the unit table's `julian_year` row (`yr`). @internal */
|
|
26
|
+
export declare const JULIAN_YEAR_S: number;
|
|
27
|
+
/** m_p/M_* ceiling: the test-mass K then exceeds the two-body K by (1 + q)^{2/3} − 1 ≤ 0.67%. @internal */
|
|
28
|
+
export declare const MAX_MASS_RATIO = 0.01;
|
|
29
|
+
/** Ceiling on the stellar radius over the periastron separation, for point masses. @internal */
|
|
30
|
+
export declare const MAX_RADIUS_RATIO = 0.1;
|
|
31
|
+
/** G(M_* + m_p)/(c² a) ceiling for Newtonian gravity. @internal */
|
|
32
|
+
export declare const MAX_WEAK_FIELD = 0.0001;
|
|
33
|
+
/** e·Δω accumulated over the record (rad) ceiling for a fixed ellipse. @internal */
|
|
34
|
+
export declare const MAX_APSIDAL_MISFIT = 0.01;
|
|
35
|
+
/**
|
|
36
|
+
* Evaluate the Kepler radial-velocity applied case at the given SI inputs.
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
39
|
+
export declare function runCaseKeplerRv(i: Readonly<Record<string, number>>): CaseResult;
|
|
40
|
+
/** Q floor for the single-Lorentzian (near-resonance) form of the spectrum. @internal */
|
|
41
|
+
export declare const MIN_Q_LORENTZIAN = 10;
|
|
42
|
+
/** (1/t_obs)/linewidth ceiling: the record resolves the line. @internal */
|
|
43
|
+
export declare const MAX_RESOLUTION_RATIO = 0.1;
|
|
44
|
+
/**
|
|
45
|
+
* √(k_BT/k)/A ceiling. Thermal motion of one mode is x = X cos ω_d t + Y sin ω_d t
|
|
46
|
+
* with ⟨X²⟩ = ⟨Y²⟩ = k_BT/k (equipartition), so the envelope of the ring-down
|
|
47
|
+
* plus it is Rician with ⟨A_obs²⟩ = A² + 2k_BT/k (Rice 1944); at the ceiling
|
|
48
|
+
* √(1 + 2·0.01) − 1 ≈ 0.0100.
|
|
49
|
+
* @internal
|
|
50
|
+
*/
|
|
51
|
+
export declare const MAX_THERMAL_RATIO = 0.1;
|
|
52
|
+
/**
|
|
53
|
+
* FWHM in Hz of |∫₀ᵀ e^{−(α + iΔω)t} dt|², the near-resonance power spectrum of
|
|
54
|
+
* a ring-down x0 e^{−αt} cos(ω_d t) recorded for T. The negative-frequency
|
|
55
|
+
* pole is dropped, which is the Q ≫ 1 approximation. The peak is at Δω = 0:
|
|
56
|
+
* the integrand is positive, so |X(Δω)| ≤ X(0).
|
|
57
|
+
* @internal
|
|
58
|
+
*/
|
|
59
|
+
export declare function windowedLinewidthHz(alpha: number, T: number): number;
|
|
60
|
+
/** Catalog engine: FWHM of the truncated ring-down spectrum (null when overdamped). @internal */
|
|
61
|
+
export declare function windowedLinewidthCatalogHz(inputs: Readonly<Record<string, number>>, outputs: Readonly<Record<string, number | null>>): number | null;
|
|
62
|
+
/**
|
|
63
|
+
* Evaluate the damped-resonator applied case at the given SI inputs.
|
|
64
|
+
* @internal
|
|
65
|
+
*/
|
|
66
|
+
export declare function runCaseDampedResonator(i: Readonly<Record<string, number>>): CaseResult;
|
|
67
|
+
/** h f_hi/(k_B T) ceiling: the Planck factor x/(eˣ−1) is then within x/2 ≤ 0.5% of 1. @internal */
|
|
68
|
+
export declare const CLASSICAL_MAX_X = 0.01;
|
|
69
|
+
/** 2π f_hi R_eff C_in ceiling: the input RC pole then passes 1/(1+w²) ≥ 99% at f_hi. @internal */
|
|
70
|
+
export declare const FLAT_BAND_MAX_WRC = 0.1;
|
|
71
|
+
/**
|
|
72
|
+
* Ceiling on σ(S_R)/S_R = 1/(φ√(B t_avg)): the resistor's noise power, left after
|
|
73
|
+
* subtracting an exactly known amplifier power, scatters by ≤ 1%. The total
|
|
74
|
+
* power scatters by 1/√(B t_avg) (Dicke 1946); φ is the resistor's share of it.
|
|
75
|
+
* @internal
|
|
76
|
+
*/
|
|
77
|
+
export declare const AMPLIFIER_MAX_REL_SIGMA = 0.01;
|
|
78
|
+
/**
|
|
79
|
+
* Evaluate the resistor thermal-noise applied case at the given SI inputs.
|
|
80
|
+
* @internal
|
|
81
|
+
*/
|
|
82
|
+
export declare function runCaseResistorNoise(i: Readonly<Record<string, number>>): CaseResult;
|
|
83
|
+
/** The Stefan–Boltzmann constant (W m⁻² K⁻⁴) is `core/constants`'s; re-exported so the record's module-export table keeps its row. @internal */
|
|
84
|
+
export { SIGMA_SB_SI } from '../core/constants.js';
|
|
85
|
+
/** Bi = h L_c/k ceiling, L_c = V/A (Incropera §5.2, eq. 5.10). @internal */
|
|
86
|
+
export declare const MAX_BIOT = 0.1;
|
|
87
|
+
/** h_rad,max/h ceiling for a loss linear in T − T∞. @internal */
|
|
88
|
+
export declare const MAX_RADIATION_RATIO = 0.1;
|
|
89
|
+
/**
|
|
90
|
+
* T(t) of ρcV dT/dt = −A[h(T − T∞) + εσ_SB(T⁴ − T∞⁴)] for a sphere (V/A =
|
|
91
|
+
* a/3), by classical RK4 (`integrateRK4`, MathTS `solveODESystem` with `dt`,
|
|
92
|
+
* one call per step) with each step 1/100 of the local relaxation time
|
|
93
|
+
* ρca/(3(h + 4εσ_SB T³)). Stops early once |T − T∞| is below 1e-15 |T0 − T∞|.
|
|
94
|
+
* @internal
|
|
95
|
+
*/
|
|
96
|
+
export declare function lumpedRadiatingTemperature(p: LumpedRadiating): number;
|
|
97
|
+
/**
|
|
98
|
+
* The first n roots of 1 − ζ cot ζ = Bi (Bi = h a/k, radius-based): the n-th
|
|
99
|
+
* lies in ((n−1)π, nπ), where the left side runs from −∞ (0 for n = 1) to +∞.
|
|
100
|
+
* Each is MathTS `findRoot` (Brent) on that interval, pulled in from the
|
|
101
|
+
* poles by a few ulps of kπ, since the solver evaluates both ends: at 0 the
|
|
102
|
+
* function is 0/0, and at an exact multiple of π `Math.tan` has no sign to
|
|
103
|
+
* trust. The tolerance is the bracket's own floating-point resolution.
|
|
104
|
+
* @internal
|
|
105
|
+
*/
|
|
106
|
+
export declare function sphereEigenvalues(biRadius: number, n: number): number[];
|
|
107
|
+
/**
|
|
108
|
+
* θ/θ0 = (T − T∞)/(T0 − T∞) from the series solution of the sphere with a
|
|
109
|
+
* convective surface, at Fourier number Fo = αt/a², for the volume mean, the
|
|
110
|
+
* centre and the surface. Terms are summed until e^{−ζ²Fo} < 1e-18.
|
|
111
|
+
* @throws Error when Fo is so small that the series would need over 1e5 terms.
|
|
112
|
+
* @internal
|
|
113
|
+
*/
|
|
114
|
+
export declare function sphereSeries(biRadius: number, fo: number): {
|
|
115
|
+
mean: number;
|
|
116
|
+
centre: number;
|
|
117
|
+
surface: number;
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Evaluate the lumped thermal cooling applied case at the given SI inputs.
|
|
121
|
+
* @internal
|
|
122
|
+
*/
|
|
123
|
+
export declare function runCaseLumpedCooling(i: Readonly<Record<string, number>>): CaseResult;
|
|
124
|
+
/** Standard gravity (CGPM 1901), for the sedimentation speed: the unit table's `standard_gravity` row, read as newtons per kilogram-force. @internal */
|
|
125
|
+
export declare const G_STANDARD: number;
|
|
126
|
+
/** The thresholds `ab-stokes-einstein` states: Re ≤ 0.1 and τ_p/t ≤ 0.01. @internal */
|
|
127
|
+
export declare const MAX_RE = 0.1;
|
|
128
|
+
/** τ_p/t ceiling beside the Stokes–Einstein regime. @internal */
|
|
129
|
+
export declare const MAX_TAU_P_RATIO = 0.01;
|
|
130
|
+
/** Ceiling on the memory term's own share of the MSD, |MSD_H/MSD_OU − 1|. @internal */
|
|
131
|
+
export declare const MAX_MEMORY_CORRECTION = 0.01;
|
|
132
|
+
/** (v_s t)²/(2Dt) ceiling along gravity when the vertical axis is tracked. @internal */
|
|
133
|
+
export declare const MAX_DRIFT_RATIO = 0.01;
|
|
134
|
+
/** Ceiling on |MSD/MSD_wall − 1|: the wall's correction to the tracked MSD is negligible. @internal */
|
|
135
|
+
export declare const MAX_WALL_CORRECTION = 0.01;
|
|
136
|
+
/** Ceiling on the last retained Faxén term (a/h)⁵/16 over the series' value. @internal */
|
|
137
|
+
export declare const MAX_FAXEN_LAST_TERM = 0.01;
|
|
138
|
+
/** Ceiling on √(2 D_⊥ t)/(h − a): the height, and so D_∥ and D_⊥, barely change over t. @internal */
|
|
139
|
+
export declare const MAX_WALL_EXCURSION = 0.1;
|
|
140
|
+
/** t − τ(1 − e^{−t/τ}) in units of τ, i.e. x − (1 − e^{−x}), without its cancellation at small x. @internal */
|
|
141
|
+
export declare function ballisticDeficit(x: number): number;
|
|
142
|
+
/**
|
|
143
|
+
* MSD/(2Dt) per axis for a sphere with fluid inertia: added mass and the Basset
|
|
144
|
+
* memory force, in an unbounded incompressible fluid, velocities in equilibrium.
|
|
145
|
+
*
|
|
146
|
+
* The velocity autocorrelation has the Laplace transform
|
|
147
|
+
* Ĉ(s) = k_BT/(M s + γ(1 + √(s τ_f))), M = m + m_f/2, from the frequency-dependent
|
|
148
|
+
* Stokes drag γ(1 + √(sτ_f)) + s m_f/2 (Stokes 1851; the Basset 1888 term is its
|
|
149
|
+
* √s part; Hinch 1975, J. Fluid Mech. 72, 499; Clercx & Schram 1992, Phys. Rev.
|
|
150
|
+
* A 46, 1942). Its poles in √s both have negative real part, so Ĉ has none on the
|
|
151
|
+
* principal sheet and C(t) is the branch-cut integral
|
|
152
|
+
* C(t) = (k_BT/πγ) ∫₀^∞ e^{−ut} √(τ_f u)/((1 − τ_p u)² + τ_f u) du, τ_p = M/γ.
|
|
153
|
+
* Then ⟨Δx²⟩ = 2∫₀ᵗ (t − s) C(s) ds, and with v = ut,
|
|
154
|
+
* MSD/(2Dt) = (1/π) ∫₀^∞ √(βv) (v − 1 + e^{−v}) / (v² ((1 − αv)² + βv)) dv, α = τ_p/t, β = τ_f/t,
|
|
155
|
+
* integrated here over ln v by MathTS `quad` (adaptive Gauss–Kronrod), split at v = 1, 1/β and around
|
|
156
|
+
* the near-resonance at v = 1/α (width √(β/α) in ln v; β/α ≤ 9 for any densities).
|
|
157
|
+
*
|
|
158
|
+
* Limits: → 1 − 2√(τ_f/(πt)) + (τ_f − τ_p)/t for t ≫ τ_p, τ_f (expanding Ĉ in √s),
|
|
159
|
+
* whose second derivative is the VACF tail k_BT/(12 ρ_f (πνt)^{3/2}); → t/(2τ_p)
|
|
160
|
+
* for t ≪ τ_p, i.e. ⟨Δx²⟩ → (k_BT/M) t². Requires β > 0: without memory the
|
|
161
|
+
* poles reach the principal sheet and this integral no longer holds them.
|
|
162
|
+
* @internal
|
|
163
|
+
*/
|
|
164
|
+
export declare function hydrodynamicMsdRatio(alpha: number, beta: number): number;
|
|
165
|
+
/**
|
|
166
|
+
* D_∥/D₀ for a sphere translating parallel to a plane wall, centre at h:
|
|
167
|
+
* 1 − (9/16)ξ + (1/8)ξ³ − (45/256)ξ⁴ − (1/16)ξ⁵, ξ = a/h (Faxén 1923, method of
|
|
168
|
+
* reflections, as quoted in Happel & Brenner 1965, Low Reynolds Number
|
|
169
|
+
* Hydrodynamics, ch. 7). A series in a/h, truncated:
|
|
170
|
+
* its error is not bounded here, and near contact it misses the logarithmic
|
|
171
|
+
* lubrication divergence of the drag.
|
|
172
|
+
* @internal
|
|
173
|
+
*/
|
|
174
|
+
export declare function faxenParallel(aOverH: number): number;
|
|
175
|
+
/**
|
|
176
|
+
* λ = F/(6πηaU) for a sphere approaching a plane wall head-on, centre at h > a,
|
|
177
|
+
* exact in Stokes flow (Brenner 1961, Chem. Eng. Sci. 16, 242, bispherical coordinates):
|
|
178
|
+
* λ = (4/3) sinh α Σₙ n(n+1)/((2n−1)(2n+3)) · [(2 sinh(2n+1)α + (2n+1) sinh 2α) /
|
|
179
|
+
* (4 sinh²(n+½)α − (2n+1)² sinh²α) − 1], cosh α = h/a. D_⊥ = D₀/λ.
|
|
180
|
+
*
|
|
181
|
+
* The bracket is rewritten over 4 sinh²(n+½)α so that no sinh overflows; its
|
|
182
|
+
* terms fall as e^{−(2n+1)α}, so near contact (α → 0) the sum needs ~40/α terms,
|
|
183
|
+
* and the low-n denominators lose ~α⁻² of relative precision to cancellation.
|
|
184
|
+
* Limits: λ → 1 + (9/8)(a/h) far away (Lorentz 1907); λ → a/δ + (1/5) ln(a/δ) +
|
|
185
|
+
* 0.971 as the gap δ = h − a → 0 (Cox & Brenner 1967, Chem. Eng. Sci. 22, 1753).
|
|
186
|
+
* @throws Error if h/a ≤ 1.
|
|
187
|
+
* @internal
|
|
188
|
+
*/
|
|
189
|
+
export declare function brennerPerpendicular(hOverA: number): number;
|
|
190
|
+
/** Regime tag string for the brownian-sphere case at the current inputs and outputs. */
|
|
191
|
+
export declare function brownianSphereRegimeAt(inputs: Readonly<Record<string, number>>, outputs: Readonly<Record<string, number | null>>): string;
|
|
192
|
+
/**
|
|
193
|
+
* Evaluate the brownian-sphere applied case at the given SI inputs.
|
|
194
|
+
* @internal
|
|
195
|
+
*/
|
|
196
|
+
export declare function runCaseBrownianSphere(i: Readonly<Record<string, number>>): CaseResult;
|
|
197
|
+
/** Case id → case assembled from the catalog and a runner. @internal */
|
|
198
|
+
export declare const APPLIED_CASE_RUNNERS: ReadonlyMap<string, AppliedCase>;
|
|
199
|
+
/** Names exported numeric methods for catalog validation. @internal */
|
|
200
|
+
export declare const CASE_METHOD_NAMES: ReadonlySet<string>;
|
|
201
|
+
/** Named numeric methods invoked from catalog output `method` fields. */
|
|
202
|
+
export declare const CASE_METHODS: Record<string, (...args: never[]) => unknown>;
|
|
203
|
+
/** Assembled skin-depth applied case (catalog + runner). */
|
|
204
|
+
export declare const SKIN_DEPTH_CASE: AppliedCase;
|
|
205
|
+
/** Assembled Kepler RV applied case (catalog + runner). */
|
|
206
|
+
export declare const KEPLER_RV_CASE: AppliedCase;
|
|
207
|
+
/** Assembled damped-resonator applied case (catalog + runner). */
|
|
208
|
+
export declare const DAMPED_RESONATOR_CASE: AppliedCase;
|
|
209
|
+
/** Assembled resistor-noise applied case (catalog + runner). */
|
|
210
|
+
export declare const RESISTOR_NOISE_CASE: AppliedCase;
|
|
211
|
+
/** Assembled lumped-cooling applied case (catalog + runner). */
|
|
212
|
+
export declare const LUMPED_COOLING_CASE: AppliedCase;
|
|
213
|
+
/** Assembled brownian-sphere applied case (catalog + runner). */
|
|
214
|
+
export declare const BROWNIAN_SPHERE_CASE: AppliedCase;
|
|
215
|
+
//# sourceMappingURL=methods.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"methods.d.ts","sourceRoot":"","sources":["../../src/cases/methods.ts"],"names":[],"mappings":"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"}
|