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,241 @@
|
|
|
1
|
+
/** Check records keyed by applied-case id. */
|
|
2
|
+
export const CHECKS_BY_CASE_ID = {
|
|
3
|
+
'case-skin-depth': [
|
|
4
|
+
{
|
|
5
|
+
id: 'good-conductor',
|
|
6
|
+
premise: 'good conductor: conduction current ≫ displacement current',
|
|
7
|
+
quantity: 'ωε/σ',
|
|
8
|
+
expr: '2*pi*f_Hz*eps_r*epsilon_0*rho_ohm_m',
|
|
9
|
+
op: '<=',
|
|
10
|
+
bound: 0.01,
|
|
11
|
+
threshold: 'chosen threshold for ≪ 1: the parent penetration depth then differs from δ by ≈ ωε/(2σ) ≤ 0.5%',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
id: 'local',
|
|
15
|
+
premise: "local conductivity: the carriers' mean free path well inside the skin depth, l ≪ δ",
|
|
16
|
+
quantity: 'l/δ',
|
|
17
|
+
expr: 'l_mfp_m/delta_m',
|
|
18
|
+
op: '<=',
|
|
19
|
+
bound: 0.1,
|
|
20
|
+
threshold: 'chosen threshold for ≪ 1; beyond it the current at a point depends on the field over a path l and the anomalous skin effect sets in (Pippard 1947; Reuter & Sondheimer 1948)',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
id: 'dc-conductivity',
|
|
24
|
+
premise: 'DC conductivity: the drive is slow beside the carrier relaxation, ωτ ≪ 1',
|
|
25
|
+
quantity: 'ω l/v',
|
|
26
|
+
expr: '2*pi*f_Hz*l_mfp_m/v_carrier_m_per_s',
|
|
27
|
+
op: '<=',
|
|
28
|
+
bound: 0.1,
|
|
29
|
+
threshold: 'chosen threshold for ≪ 1: the Drude σ(ω) = σ0/(1 − iωτ) is then within 0.5% of σ0 in modulus',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: 'thick',
|
|
33
|
+
premise: 'the conductor is a half-space for the field: d ≫ δ',
|
|
34
|
+
quantity: 'd/δ',
|
|
35
|
+
expr: 'thickness_m/delta_m',
|
|
36
|
+
op: '>=',
|
|
37
|
+
bound: 5,
|
|
38
|
+
threshold: 'chosen threshold: the half-space field at the back face is then ≤ e^{−5} ≈ 0.7% of the surface field',
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
'case-kepler-rv': [
|
|
42
|
+
{
|
|
43
|
+
id: 'test-mass',
|
|
44
|
+
premise: 'the companion is light beside the star, m_p ≪ M_*',
|
|
45
|
+
quantity: 'm_p/M_*',
|
|
46
|
+
expr: 'm_p_kg/M_star_kg',
|
|
47
|
+
op: '<=',
|
|
48
|
+
bound: 0.01,
|
|
49
|
+
threshold: 'chosen threshold: the test-mass K then exceeds the two-body K by (1 + q)^{2/3} − 1 ≤ 0.67%',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
id: 'point-mass',
|
|
53
|
+
premise: 'point masses: the star is small beside the closest approach, R_* ≪ r_p',
|
|
54
|
+
quantity: 'R_*/(a(1 − e))',
|
|
55
|
+
expr: 'R_star_m/r_peri_m',
|
|
56
|
+
op: '<=',
|
|
57
|
+
bound: 0.1,
|
|
58
|
+
threshold: 'chosen threshold: tidal and rotational quadrupole terms scale as (R_*/r)² times a Love number or J2 (each < 1), kept ≤ 1%',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
id: 'weak-field',
|
|
62
|
+
premise: 'Newtonian gravity: G(M_* + m_p)/(c²a) ≪ 1',
|
|
63
|
+
quantity: 'G(M_* + m_p)/(c² a)',
|
|
64
|
+
expr: 'weak_field',
|
|
65
|
+
op: '<=',
|
|
66
|
+
bound: 1e-4,
|
|
67
|
+
threshold: 'chosen threshold: the 1PN corrections to the P–a relation and to the orbital velocity are of this relative order',
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
id: 'apsidal',
|
|
71
|
+
premise: 'a fixed ellipse over the record: the GR apsidal advance does not reshape the RV curve',
|
|
72
|
+
quantity: 'e Δω T_obs/P',
|
|
73
|
+
expr: 'apsidal_misfit',
|
|
74
|
+
op: '<=',
|
|
75
|
+
bound: 0.01,
|
|
76
|
+
threshold: 'chosen threshold: beyond the mean longitude (absorbed by the fitted phase), v_r depends on ω only at O(e), so the misfit is of order e Δω K; its coefficient (order one) is not encoded',
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
'case-damped-resonator': [
|
|
80
|
+
{
|
|
81
|
+
id: 'underdamped',
|
|
82
|
+
premise: 'underdamped: the solution rings (Q > 1/2)',
|
|
83
|
+
quantity: 'Q',
|
|
84
|
+
expr: 'Q',
|
|
85
|
+
op: '>',
|
|
86
|
+
bound: 0.5,
|
|
87
|
+
threshold: 'exact: at Q ≤ 1/2 the solution is a sum of real exponentials, with no ring-down, f_d or envelope',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
id: 'single-lorentzian',
|
|
91
|
+
premise: 'high Q: the line near f0 is one Lorentzian',
|
|
92
|
+
quantity: 'Q',
|
|
93
|
+
expr: 'Q',
|
|
94
|
+
op: '>=',
|
|
95
|
+
bound: 10,
|
|
96
|
+
threshold: 'chosen threshold for Q ≫ 1: the windowed spectrum drops the negative-frequency pole',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
id: 'resolved',
|
|
100
|
+
premise: 'the record resolves the line: 1/t_obs ≪ f0/Q',
|
|
101
|
+
quantity: '(1/t_obs)/(f0/Q)',
|
|
102
|
+
expr: 'resolution_Hz/linewidth_Hz',
|
|
103
|
+
op: '<=',
|
|
104
|
+
bound: 0.1,
|
|
105
|
+
threshold: 'chosen threshold for ≪ 1; see windowed_excess for the broadening it allows',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
id: 'in-record',
|
|
109
|
+
premise: 'the read-out time lies inside the record',
|
|
110
|
+
quantity: 't/t_obs',
|
|
111
|
+
expr: 't_s/t_obs_s',
|
|
112
|
+
op: '<=',
|
|
113
|
+
bound: 1,
|
|
114
|
+
threshold: 'exact: an envelope read after the record ends was not measured',
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
id: 'above-thermal',
|
|
118
|
+
premise: 'the ring-down stands above the thermal motion at t',
|
|
119
|
+
quantity: '√(k_BT/k)/A(t)',
|
|
120
|
+
expr: 'x_th_rms_m/envelope_m',
|
|
121
|
+
op: '<=',
|
|
122
|
+
bound: 0.1,
|
|
123
|
+
threshold: 'chosen threshold: the RMS envelope √(A² + 2k_BT/k) then exceeds A by ≤ 1%',
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
'case-resistor-noise': [
|
|
127
|
+
{
|
|
128
|
+
id: 'classical',
|
|
129
|
+
premise: 'flat, classical spectrum: hf ≪ k_BT across the band',
|
|
130
|
+
quantity: 'h f_hi/(k_B T)',
|
|
131
|
+
expr: 'h*f_hi_Hz/(k_B*T_K)',
|
|
132
|
+
op: '<=',
|
|
133
|
+
bound: 0.01,
|
|
134
|
+
threshold: 'chosen threshold for ≪ 1: the Planck factor at f_hi is then within x/2 ≤ 0.5% of 1',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
id: 'flat-band',
|
|
138
|
+
premise: 'the input RC pole lies above the band',
|
|
139
|
+
quantity: '2π f_hi R_eff C_in',
|
|
140
|
+
expr: '2*pi*f_hi_Hz*R_eff_ohm*C_in_F',
|
|
141
|
+
op: '<=',
|
|
142
|
+
bound: 0.1,
|
|
143
|
+
threshold: 'chosen threshold for ≪ 1: the RC low-pass then passes ≥ 99% of the density at f_hi',
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
id: 'amplifier',
|
|
147
|
+
premise: "the resistor's noise is resolved above the amplifier's in t_avg",
|
|
148
|
+
quantity: '1/(φ √(B t_avg))',
|
|
149
|
+
expr: '1/(resistor_fraction*sqrt(B_Hz*t_avg_s))',
|
|
150
|
+
op: '<=',
|
|
151
|
+
bound: 0.01,
|
|
152
|
+
threshold: "chosen threshold: after subtracting the amplifier's power (known exactly, e.g. from a long shorted-input run) the resistor's power scatters by ≤ 1%",
|
|
153
|
+
},
|
|
154
|
+
],
|
|
155
|
+
'case-lumped-cooling': [
|
|
156
|
+
{
|
|
157
|
+
id: 'lumped',
|
|
158
|
+
premise: 'one temperature for the sphere: internal conduction fast beside surface loss, Bi ≪ 1',
|
|
159
|
+
quantity: 'h (a/3)/k',
|
|
160
|
+
expr: 'Bi',
|
|
161
|
+
op: '<=',
|
|
162
|
+
bound: 0.1,
|
|
163
|
+
threshold: 'the conventional criterion Bi ≤ 0.1 with L_c = V/A (Incropera §5.2); parent_deviation shows the error it leaves at t',
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
id: 'linear-loss',
|
|
167
|
+
premise: 'the loss is linear in T − T∞: radiation small beside convection',
|
|
168
|
+
quantity: 'εσ_SB(T_max + T∞)(T_max² + T∞²)/h',
|
|
169
|
+
expr: 'h_rad_max_W_per_m2_K/h_W_per_m2_K',
|
|
170
|
+
op: '<=',
|
|
171
|
+
bound: 0.1,
|
|
172
|
+
threshold: 'chosen threshold: the neglected radiative conductance is ≤ 10% of h at the hottest point of the run (Incropera eq. 1.9 linearization)',
|
|
173
|
+
},
|
|
174
|
+
],
|
|
175
|
+
'case-brownian-sphere': [
|
|
176
|
+
{
|
|
177
|
+
id: 'creeping-flow',
|
|
178
|
+
premise: 'creeping flow around the sphere, Re ≪ 1',
|
|
179
|
+
quantity: 'ρ_f a max(√(k_BT/m), |v_s|)/η',
|
|
180
|
+
expr: 'Re',
|
|
181
|
+
op: '<=',
|
|
182
|
+
bound: 0.1,
|
|
183
|
+
threshold: 'the threshold ab-stokes-einstein states: a chosen machine form of Re ≪ 1',
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
id: 'overdamped',
|
|
187
|
+
premise: 'overdamped times t ≫ τ_p',
|
|
188
|
+
quantity: '(m + m_f/2)/(γ t)',
|
|
189
|
+
expr: 'tau_p_s/t_s',
|
|
190
|
+
op: '<=',
|
|
191
|
+
bound: 0.01,
|
|
192
|
+
threshold: "ab-stokes-einstein's m/(γt) ≤ 0.01, with the added mass m_f/2 included (stricter)",
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
id: 'memory',
|
|
196
|
+
premise: 'past the hydrodynamic memory, t ≫ τ_f = ρ_f a²/η',
|
|
197
|
+
quantity: '|MSD_H/MSD_OU − 1|',
|
|
198
|
+
expr: 'abs(memory_correction)',
|
|
199
|
+
op: '<=',
|
|
200
|
+
bound: 0.01,
|
|
201
|
+
threshold: 'chosen threshold: the Basset memory changes the MSD by ≤ 1% at t (computed, not estimated; ≈ 2√(τ_f/(πt)) at t ≫ τ_f)',
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
id: 'faxen-range',
|
|
205
|
+
premise: 'the Faxén series in a/h holds for D_∥',
|
|
206
|
+
quantity: '(a/h)⁵/16 ÷ (D_∥/D)',
|
|
207
|
+
expr: 'pow(a_m/h_m,5)/16/(D_parallel_m2_per_s/D_m2_per_s)',
|
|
208
|
+
op: '<=',
|
|
209
|
+
bound: 0.01,
|
|
210
|
+
threshold: 'chosen threshold: the last retained term is ≤ 1% of the series — a size estimate of the truncation, not a bound; D_⊥ (Brenner) is exact at any h > a',
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
id: 'wall',
|
|
214
|
+
premise: 'the wall correction to the tracked MSD is negligible',
|
|
215
|
+
quantity: '|MSD/MSD_w − 1|',
|
|
216
|
+
expr: 'abs(wall_deviation)',
|
|
217
|
+
op: '<=',
|
|
218
|
+
bound: 0.01,
|
|
219
|
+
threshold: 'chosen threshold: the unbounded-fluid D is then within 1% for the tracked axes; otherwise read MSD_wall_m2',
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
id: 'wall-static',
|
|
223
|
+
premise: 'the height barely changes over t',
|
|
224
|
+
quantity: '(√(2 D_⊥ t) + |v_s| t/λ)/(h − a)',
|
|
225
|
+
expr: '(sqrt(2*D_perp_m2_per_s*t_s)+abs(v_sed_m_per_s)*t_s/(D_m2_per_s/D_perp_m2_per_s))/(h_m-a_m)',
|
|
226
|
+
op: '<=',
|
|
227
|
+
bound: 0.1,
|
|
228
|
+
threshold: 'chosen threshold: diffusion plus wall-slowed sedimentation normal to the wall move the sphere by ≤ 10% of the gap, so D_∥, D_⊥ taken at h hold over t',
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
id: 'drift',
|
|
232
|
+
premise: 'sedimentation drift negligible along gravity over t',
|
|
233
|
+
quantity: '(v_s t)²/(2 D t)',
|
|
234
|
+
expr: 'pow(v_sed_m_per_s*t_s,2)/(2*D_m2_per_s*t_s)',
|
|
235
|
+
op: '<=',
|
|
236
|
+
bound: 0.01,
|
|
237
|
+
threshold: 'chosen threshold: the vertical MSD then carries ≤ 1% from the deterministic drift',
|
|
238
|
+
},
|
|
239
|
+
],
|
|
240
|
+
};
|
|
241
|
+
//# sourceMappingURL=catalog-checks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog-checks.js","sourceRoot":"","sources":["../../src/cases/catalog-checks.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Check records (expr + bound) for the applied-case catalog. Declarative prose lives\n * in `data/applied-cases.json`; thresholds stay here beside the expr the engine reads.\n *\n * @module cases/catalog-checks\n */\nimport type { AppliedCaseCheckRecord } from './catalog.js';\n\n/** Check records keyed by applied-case id. */\nexport const CHECKS_BY_CASE_ID: Readonly<Record<string, readonly AppliedCaseCheckRecord[]>> = {\n 'case-skin-depth': [\n {\n id: 'good-conductor',\n premise: 'good conductor: conduction current ≫ displacement current',\n quantity: 'ωε/σ',\n expr: '2*pi*f_Hz*eps_r*epsilon_0*rho_ohm_m',\n op: '<=',\n bound: 0.01,\n threshold:\n 'chosen threshold for ≪ 1: the parent penetration depth then differs from δ by ≈ ωε/(2σ) ≤ 0.5%',\n },\n {\n id: 'local',\n premise: \"local conductivity: the carriers' mean free path well inside the skin depth, l ≪ δ\",\n quantity: 'l/δ',\n expr: 'l_mfp_m/delta_m',\n op: '<=',\n bound: 0.1,\n threshold:\n 'chosen threshold for ≪ 1; beyond it the current at a point depends on the field over a path l and the anomalous skin effect sets in (Pippard 1947; Reuter & Sondheimer 1948)',\n },\n {\n id: 'dc-conductivity',\n premise: 'DC conductivity: the drive is slow beside the carrier relaxation, ωτ ≪ 1',\n quantity: 'ω l/v',\n expr: '2*pi*f_Hz*l_mfp_m/v_carrier_m_per_s',\n op: '<=',\n bound: 0.1,\n threshold: 'chosen threshold for ≪ 1: the Drude σ(ω) = σ0/(1 − iωτ) is then within 0.5% of σ0 in modulus',\n },\n {\n id: 'thick',\n premise: 'the conductor is a half-space for the field: d ≫ δ',\n quantity: 'd/δ',\n expr: 'thickness_m/delta_m',\n op: '>=',\n bound: 5,\n threshold: 'chosen threshold: the half-space field at the back face is then ≤ e^{−5} ≈ 0.7% of the surface field',\n },\n ],\n 'case-kepler-rv': [\n {\n id: 'test-mass',\n premise: 'the companion is light beside the star, m_p ≪ M_*',\n quantity: 'm_p/M_*',\n expr: 'm_p_kg/M_star_kg',\n op: '<=',\n bound: 0.01,\n threshold: 'chosen threshold: the test-mass K then exceeds the two-body K by (1 + q)^{2/3} − 1 ≤ 0.67%',\n },\n {\n id: 'point-mass',\n premise: 'point masses: the star is small beside the closest approach, R_* ≪ r_p',\n quantity: 'R_*/(a(1 − e))',\n expr: 'R_star_m/r_peri_m',\n op: '<=',\n bound: 0.1,\n threshold:\n 'chosen threshold: tidal and rotational quadrupole terms scale as (R_*/r)² times a Love number or J2 (each < 1), kept ≤ 1%',\n },\n {\n id: 'weak-field',\n premise: 'Newtonian gravity: G(M_* + m_p)/(c²a) ≪ 1',\n quantity: 'G(M_* + m_p)/(c² a)',\n expr: 'weak_field',\n op: '<=',\n bound: 1e-4,\n threshold: 'chosen threshold: the 1PN corrections to the P–a relation and to the orbital velocity are of this relative order',\n },\n {\n id: 'apsidal',\n premise: 'a fixed ellipse over the record: the GR apsidal advance does not reshape the RV curve',\n quantity: 'e Δω T_obs/P',\n expr: 'apsidal_misfit',\n op: '<=',\n bound: 0.01,\n threshold:\n 'chosen threshold: beyond the mean longitude (absorbed by the fitted phase), v_r depends on ω only at O(e), so the misfit is of order e Δω K; its coefficient (order one) is not encoded',\n },\n ],\n 'case-damped-resonator': [\n {\n id: 'underdamped',\n premise: 'underdamped: the solution rings (Q > 1/2)',\n quantity: 'Q',\n expr: 'Q',\n op: '>',\n bound: 0.5,\n threshold: 'exact: at Q ≤ 1/2 the solution is a sum of real exponentials, with no ring-down, f_d or envelope',\n },\n {\n id: 'single-lorentzian',\n premise: 'high Q: the line near f0 is one Lorentzian',\n quantity: 'Q',\n expr: 'Q',\n op: '>=',\n bound: 10,\n threshold: 'chosen threshold for Q ≫ 1: the windowed spectrum drops the negative-frequency pole',\n },\n {\n id: 'resolved',\n premise: 'the record resolves the line: 1/t_obs ≪ f0/Q',\n quantity: '(1/t_obs)/(f0/Q)',\n expr: 'resolution_Hz/linewidth_Hz',\n op: '<=',\n bound: 0.1,\n threshold: 'chosen threshold for ≪ 1; see windowed_excess for the broadening it allows',\n },\n {\n id: 'in-record',\n premise: 'the read-out time lies inside the record',\n quantity: 't/t_obs',\n expr: 't_s/t_obs_s',\n op: '<=',\n bound: 1,\n threshold: 'exact: an envelope read after the record ends was not measured',\n },\n {\n id: 'above-thermal',\n premise: 'the ring-down stands above the thermal motion at t',\n quantity: '√(k_BT/k)/A(t)',\n expr: 'x_th_rms_m/envelope_m',\n op: '<=',\n bound: 0.1,\n threshold: 'chosen threshold: the RMS envelope √(A² + 2k_BT/k) then exceeds A by ≤ 1%',\n },\n ],\n 'case-resistor-noise': [\n {\n id: 'classical',\n premise: 'flat, classical spectrum: hf ≪ k_BT across the band',\n quantity: 'h f_hi/(k_B T)',\n expr: 'h*f_hi_Hz/(k_B*T_K)',\n op: '<=',\n bound: 0.01,\n threshold: 'chosen threshold for ≪ 1: the Planck factor at f_hi is then within x/2 ≤ 0.5% of 1',\n },\n {\n id: 'flat-band',\n premise: 'the input RC pole lies above the band',\n quantity: '2π f_hi R_eff C_in',\n expr: '2*pi*f_hi_Hz*R_eff_ohm*C_in_F',\n op: '<=',\n bound: 0.1,\n threshold: 'chosen threshold for ≪ 1: the RC low-pass then passes ≥ 99% of the density at f_hi',\n },\n {\n id: 'amplifier',\n premise: \"the resistor's noise is resolved above the amplifier's in t_avg\",\n quantity: '1/(φ √(B t_avg))',\n expr: '1/(resistor_fraction*sqrt(B_Hz*t_avg_s))',\n op: '<=',\n bound: 0.01,\n threshold:\n \"chosen threshold: after subtracting the amplifier's power (known exactly, e.g. from a long shorted-input run) the resistor's power scatters by ≤ 1%\",\n },\n ],\n 'case-lumped-cooling': [\n {\n id: 'lumped',\n premise: 'one temperature for the sphere: internal conduction fast beside surface loss, Bi ≪ 1',\n quantity: 'h (a/3)/k',\n expr: 'Bi',\n op: '<=',\n bound: 0.1,\n threshold:\n 'the conventional criterion Bi ≤ 0.1 with L_c = V/A (Incropera §5.2); parent_deviation shows the error it leaves at t',\n },\n {\n id: 'linear-loss',\n premise: 'the loss is linear in T − T∞: radiation small beside convection',\n quantity: 'εσ_SB(T_max + T∞)(T_max² + T∞²)/h',\n expr: 'h_rad_max_W_per_m2_K/h_W_per_m2_K',\n op: '<=',\n bound: 0.1,\n threshold:\n 'chosen threshold: the neglected radiative conductance is ≤ 10% of h at the hottest point of the run (Incropera eq. 1.9 linearization)',\n },\n ],\n 'case-brownian-sphere': [\n {\n id: 'creeping-flow',\n premise: 'creeping flow around the sphere, Re ≪ 1',\n quantity: 'ρ_f a max(√(k_BT/m), |v_s|)/η',\n expr: 'Re',\n op: '<=',\n bound: 0.1,\n threshold: 'the threshold ab-stokes-einstein states: a chosen machine form of Re ≪ 1',\n },\n {\n id: 'overdamped',\n premise: 'overdamped times t ≫ τ_p',\n quantity: '(m + m_f/2)/(γ t)',\n expr: 'tau_p_s/t_s',\n op: '<=',\n bound: 0.01,\n threshold: \"ab-stokes-einstein's m/(γt) ≤ 0.01, with the added mass m_f/2 included (stricter)\",\n },\n {\n id: 'memory',\n premise: 'past the hydrodynamic memory, t ≫ τ_f = ρ_f a²/η',\n quantity: '|MSD_H/MSD_OU − 1|',\n expr: 'abs(memory_correction)',\n op: '<=',\n bound: 0.01,\n threshold:\n 'chosen threshold: the Basset memory changes the MSD by ≤ 1% at t (computed, not estimated; ≈ 2√(τ_f/(πt)) at t ≫ τ_f)',\n },\n {\n id: 'faxen-range',\n premise: 'the Faxén series in a/h holds for D_∥',\n quantity: '(a/h)⁵/16 ÷ (D_∥/D)',\n expr: 'pow(a_m/h_m,5)/16/(D_parallel_m2_per_s/D_m2_per_s)',\n op: '<=',\n bound: 0.01,\n threshold:\n 'chosen threshold: the last retained term is ≤ 1% of the series — a size estimate of the truncation, not a bound; D_⊥ (Brenner) is exact at any h > a',\n },\n {\n id: 'wall',\n premise: 'the wall correction to the tracked MSD is negligible',\n quantity: '|MSD/MSD_w − 1|',\n expr: 'abs(wall_deviation)',\n op: '<=',\n bound: 0.01,\n threshold:\n 'chosen threshold: the unbounded-fluid D is then within 1% for the tracked axes; otherwise read MSD_wall_m2',\n },\n {\n id: 'wall-static',\n premise: 'the height barely changes over t',\n quantity: '(√(2 D_⊥ t) + |v_s| t/λ)/(h − a)',\n expr: '(sqrt(2*D_perp_m2_per_s*t_s)+abs(v_sed_m_per_s)*t_s/(D_m2_per_s/D_perp_m2_per_s))/(h_m-a_m)',\n op: '<=',\n bound: 0.1,\n threshold:\n 'chosen threshold: diffusion plus wall-slowed sedimentation normal to the wall move the sphere by ≤ 10% of the gap, so D_∥, D_⊥ taken at h hold over t',\n },\n {\n id: 'drift',\n premise: 'sedimentation drift negligible along gravity over t',\n quantity: '(v_s t)²/(2 D t)',\n expr: 'pow(v_sed_m_per_s*t_s,2)/(2*D_m2_per_s*t_s)',\n op: '<=',\n bound: 0.01,\n threshold: 'chosen threshold: the vertical MSD then carries ≤ 1% from the deterministic drift',\n },\n ],\n};\n"]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { JsonSchema } from '../core/json-schema.js';
|
|
2
|
+
import type { EvaluatorParameter } from '../bridges/evaluators.js';
|
|
3
|
+
import type { AppliedCase, CaseComparison, CaseExample } from './types.js';
|
|
4
|
+
/** One catalog check, evaluated through the formula grammar. @internal */
|
|
5
|
+
export interface AppliedCaseCheckRecord {
|
|
6
|
+
readonly id: string;
|
|
7
|
+
readonly premise: string;
|
|
8
|
+
readonly quantity: string;
|
|
9
|
+
readonly expr: string;
|
|
10
|
+
readonly op: '<=' | '>=' | '>';
|
|
11
|
+
readonly bound: number;
|
|
12
|
+
readonly threshold: string;
|
|
13
|
+
}
|
|
14
|
+
/** One catalog output before runtime wiring. @internal */
|
|
15
|
+
export interface AppliedCaseOutputRecord {
|
|
16
|
+
readonly key: string;
|
|
17
|
+
readonly symbol: string;
|
|
18
|
+
readonly unit: string;
|
|
19
|
+
readonly meaning: string;
|
|
20
|
+
readonly expr?: string;
|
|
21
|
+
readonly method?: string;
|
|
22
|
+
readonly relation?: {
|
|
23
|
+
readonly relation: string;
|
|
24
|
+
readonly inputs: Readonly<Record<string, string>>;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/** One applied-case record in the catalog file. @internal */
|
|
28
|
+
export interface AppliedCaseRecord {
|
|
29
|
+
readonly id: string;
|
|
30
|
+
readonly title: string;
|
|
31
|
+
readonly parameters: readonly EvaluatorParameter[];
|
|
32
|
+
readonly governing: AppliedCase['governing'];
|
|
33
|
+
readonly observable: string;
|
|
34
|
+
readonly outputs: readonly AppliedCaseOutputRecord[];
|
|
35
|
+
readonly checks: readonly AppliedCaseCheckRecord[];
|
|
36
|
+
readonly conditions: readonly string[];
|
|
37
|
+
readonly comparison?: CaseComparison;
|
|
38
|
+
readonly notIncluded: readonly string[];
|
|
39
|
+
readonly measurement: readonly string[];
|
|
40
|
+
readonly links: readonly {
|
|
41
|
+
readonly id: string;
|
|
42
|
+
readonly role: string;
|
|
43
|
+
}[];
|
|
44
|
+
readonly examples: {
|
|
45
|
+
readonly valid: CaseExample;
|
|
46
|
+
readonly failures: readonly CaseExample[];
|
|
47
|
+
};
|
|
48
|
+
readonly regimeAt?: string;
|
|
49
|
+
}
|
|
50
|
+
/** The on-disk catalog shape. @internal */
|
|
51
|
+
export interface AppliedCaseFile {
|
|
52
|
+
readonly schemaVersion: 1;
|
|
53
|
+
readonly cases: readonly AppliedCaseRecord[];
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Per-case module names B8 deleted. The published package has no `src/`, so
|
|
57
|
+
* this list is the loader's record; {@link isForbiddenCaseModule} and the
|
|
58
|
+
* directory test fail if one of these, or a new `case-*.ts`, comes back.
|
|
59
|
+
*/
|
|
60
|
+
export declare const FORBIDDEN_PER_CASE_MODULES: readonly ['skin-depth.ts', 'kepler-rv.ts', 'damped-resonator.ts', 'resistor-noise.ts', 'lumped-cooling.ts', 'brownian-sphere.ts'];
|
|
61
|
+
/** True for a deleted per-case file or a new `case-*.ts` under `src/cases/`. */
|
|
62
|
+
export declare function isForbiddenCaseModule(name: string): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Parse and validate catalog text. Schema problems and semantic problems throw
|
|
65
|
+
* with every message listed.
|
|
66
|
+
* @internal
|
|
67
|
+
*/
|
|
68
|
+
export declare function readAppliedCaseFile(text: string, schema?: JsonSchema): AppliedCaseFile;
|
|
69
|
+
/** Semantic rules a schema cannot state. @internal */
|
|
70
|
+
export declare function catalogSemanticProblems(file: AppliedCaseFile, methodNames?: ReadonlySet<string>): string[];
|
|
71
|
+
/** `data/applied-cases.json`, checked once per process. @internal */
|
|
72
|
+
export declare function appliedCaseCatalog(): AppliedCaseFile;
|
|
73
|
+
/** One record by id; throws when the id is absent. @internal */
|
|
74
|
+
export declare function appliedCaseRecord(id: string): AppliedCaseRecord;
|
|
75
|
+
/** Declarative fields of an {@link AppliedCase} as a catalog record (no `run`). @internal */
|
|
76
|
+
export declare function projectAppliedCaseRecord(c: AppliedCase, checks: readonly AppliedCaseCheckRecord[]): AppliedCaseRecord;
|
|
77
|
+
/** Attach a runtime implementation to a catalog record. @internal */
|
|
78
|
+
export declare function assembleAppliedCase(record: AppliedCaseRecord, impl: Pick<AppliedCase, 'run'> & {
|
|
79
|
+
regimeAt?: AppliedCase['regimeAt'];
|
|
80
|
+
}): AppliedCase;
|
|
81
|
+
/** Every catalog id in file order. @internal */
|
|
82
|
+
export declare function appliedCaseIds(): readonly string[];
|
|
83
|
+
//# sourceMappingURL=catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/cases/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The applied-case catalog: `data/applied-cases.json`, validated at load.
|
|
3
|
+
*
|
|
4
|
+
* @module cases/catalog
|
|
5
|
+
*/
|
|
6
|
+
import { checkedDataFile, dataSchema, parseDataFile } from '../core/data-file.js';
|
|
7
|
+
import { catalogRelations } from '../bridges/catalog-load.js';
|
|
8
|
+
const OPS = new Set(['<=', '>=', '>']);
|
|
9
|
+
/**
|
|
10
|
+
* Per-case module names B8 deleted. The published package has no `src/`, so
|
|
11
|
+
* this list is the loader's record; {@link isForbiddenCaseModule} and the
|
|
12
|
+
* directory test fail if one of these, or a new `case-*.ts`, comes back.
|
|
13
|
+
*/
|
|
14
|
+
export const FORBIDDEN_PER_CASE_MODULES = [
|
|
15
|
+
'skin-depth.ts',
|
|
16
|
+
'kepler-rv.ts',
|
|
17
|
+
'damped-resonator.ts',
|
|
18
|
+
'resistor-noise.ts',
|
|
19
|
+
'lumped-cooling.ts',
|
|
20
|
+
'brownian-sphere.ts',
|
|
21
|
+
];
|
|
22
|
+
/** True for a deleted per-case file or a new `case-*.ts` under `src/cases/`. */
|
|
23
|
+
export function isForbiddenCaseModule(name) {
|
|
24
|
+
return FORBIDDEN_PER_CASE_MODULES.includes(name)
|
|
25
|
+
|| /^case-.+\.ts$/.test(name);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Parse and validate catalog text. Schema problems and semantic problems throw
|
|
29
|
+
* with every message listed.
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
export function readAppliedCaseFile(text, schema = dataSchema('applied-cases.json')) {
|
|
33
|
+
const parsed = parseDataFile('applied-cases.json', text, schema);
|
|
34
|
+
catalogSemanticProblems(parsed).forEach((msg) => {
|
|
35
|
+
throw new Error(msg);
|
|
36
|
+
});
|
|
37
|
+
return parsed;
|
|
38
|
+
}
|
|
39
|
+
/** Semantic rules a schema cannot state. @internal */
|
|
40
|
+
export function catalogSemanticProblems(file, methodNames) {
|
|
41
|
+
const problems = [];
|
|
42
|
+
const seen = new Set();
|
|
43
|
+
for (const row of file.cases) {
|
|
44
|
+
if (row.id.length === 0)
|
|
45
|
+
problems.push('applied-cases: a case is missing id');
|
|
46
|
+
if (seen.has(row.id))
|
|
47
|
+
problems.push(`applied-cases: duplicate id '${row.id}'`);
|
|
48
|
+
seen.add(row.id);
|
|
49
|
+
for (const check of row.checks) {
|
|
50
|
+
if (!OPS.has(check.op))
|
|
51
|
+
problems.push(`${row.id}: check '${check.id}' has unknown op '${check.op}'`);
|
|
52
|
+
if (check.expr.trim().length === 0)
|
|
53
|
+
problems.push(`${row.id}: check '${check.id}' has no expr`);
|
|
54
|
+
}
|
|
55
|
+
if (methodNames !== undefined) {
|
|
56
|
+
for (const output of row.outputs) {
|
|
57
|
+
const kinds = [output.expr !== undefined, output.relation !== undefined, output.method !== undefined].filter(Boolean).length;
|
|
58
|
+
if (kinds !== 1) {
|
|
59
|
+
problems.push(`${row.id}: output '${output.key}' must have exactly one of expr, relation, method`);
|
|
60
|
+
}
|
|
61
|
+
else if (output.method !== undefined && !methodNames.has(output.method)) {
|
|
62
|
+
problems.push(`${row.id}: output '${output.key}' names unknown method '${output.method}'`);
|
|
63
|
+
}
|
|
64
|
+
else if (output.relation !== undefined) {
|
|
65
|
+
const rel = catalogRelations().find((r) => r.id === output.relation.relation);
|
|
66
|
+
if (rel === undefined) {
|
|
67
|
+
problems.push(`${row.id}: output '${output.key}' names unknown relation '${output.relation.relation}'`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return problems;
|
|
74
|
+
}
|
|
75
|
+
/** `data/applied-cases.json`, checked once per process. @internal */
|
|
76
|
+
export function appliedCaseCatalog() {
|
|
77
|
+
return checkedDataFile('applied-cases.json');
|
|
78
|
+
}
|
|
79
|
+
/** One record by id; throws when the id is absent. @internal */
|
|
80
|
+
export function appliedCaseRecord(id) {
|
|
81
|
+
const row = appliedCaseCatalog().cases.find((c) => c.id === id);
|
|
82
|
+
if (row === undefined)
|
|
83
|
+
throw new Error(`applied-cases.json: no case '${id}'`);
|
|
84
|
+
return row;
|
|
85
|
+
}
|
|
86
|
+
/** Declarative fields of an {@link AppliedCase} as a catalog record (no `run`). @internal */
|
|
87
|
+
export function projectAppliedCaseRecord(c, checks) {
|
|
88
|
+
const { run: _run, regimeAt: _regime, ...rest } = c;
|
|
89
|
+
return {
|
|
90
|
+
...rest,
|
|
91
|
+
outputs: rest.outputs.map((o) => ({ key: o.key, symbol: o.symbol, unit: o.unit, meaning: o.meaning })),
|
|
92
|
+
checks: [...checks],
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/** Attach a runtime implementation to a catalog record. @internal */
|
|
96
|
+
export function assembleAppliedCase(record, impl) {
|
|
97
|
+
return {
|
|
98
|
+
id: record.id,
|
|
99
|
+
title: record.title,
|
|
100
|
+
parameters: record.parameters,
|
|
101
|
+
governing: record.governing,
|
|
102
|
+
observable: record.observable,
|
|
103
|
+
outputs: record.outputs.map((o) => ({ key: o.key, symbol: o.symbol, unit: o.unit, meaning: o.meaning })),
|
|
104
|
+
conditions: record.conditions,
|
|
105
|
+
comparison: record.comparison,
|
|
106
|
+
notIncluded: record.notIncluded,
|
|
107
|
+
measurement: record.measurement,
|
|
108
|
+
links: record.links,
|
|
109
|
+
examples: record.examples,
|
|
110
|
+
regimeAt: impl.regimeAt,
|
|
111
|
+
run: impl.run,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/** Every catalog id in file order. @internal */
|
|
115
|
+
export function appliedCaseIds() {
|
|
116
|
+
return appliedCaseCatalog().cases.map((c) => c.id);
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/cases/catalog.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The applied-case catalog: `data/applied-cases.json`, validated at load.\n *\n * @module cases/catalog\n */\nimport { checkedDataFile, dataSchema, parseDataFile } from '../core/data-file.js';\nimport { catalogRelations } from '../bridges/catalog-load.js';\nimport type { JsonSchema } from '../core/json-schema.js';\nimport type { EvaluatorParameter } from '../bridges/evaluators.js';\nimport type { AppliedCase, CaseComparison, CaseExample } from './types.js';\n\n/** One catalog check, evaluated through the formula grammar. @internal */\nexport interface AppliedCaseCheckRecord {\n readonly id: string;\n readonly premise: string;\n readonly quantity: string;\n readonly expr: string;\n readonly op: '<=' | '>=' | '>';\n readonly bound: number;\n readonly threshold: string;\n}\n\n/** One catalog output before runtime wiring. @internal */\nexport interface AppliedCaseOutputRecord {\n readonly key: string;\n readonly symbol: string;\n readonly unit: string;\n readonly meaning: string;\n readonly expr?: string;\n readonly method?: string;\n readonly relation?: { readonly relation: string; readonly inputs: Readonly<Record<string, string>> };\n}\n\n/** One applied-case record in the catalog file. @internal */\nexport interface AppliedCaseRecord {\n readonly id: string;\n readonly title: string;\n readonly parameters: readonly EvaluatorParameter[];\n readonly governing: AppliedCase['governing'];\n readonly observable: string;\n readonly outputs: readonly AppliedCaseOutputRecord[];\n readonly checks: readonly AppliedCaseCheckRecord[];\n readonly conditions: readonly string[];\n readonly comparison?: CaseComparison;\n readonly notIncluded: readonly string[];\n readonly measurement: readonly string[];\n readonly links: readonly { readonly id: string; readonly role: string }[];\n readonly examples: { readonly valid: CaseExample; readonly failures: readonly CaseExample[] };\n readonly regimeAt?: string;\n}\n\n/** The on-disk catalog shape. @internal */\nexport interface AppliedCaseFile {\n readonly schemaVersion: 1;\n readonly cases: readonly AppliedCaseRecord[];\n}\n\nconst OPS = new Set<AppliedCaseCheckRecord['op']>(['<=', '>=', '>']);\n\n/**\n * Per-case module names B8 deleted. The published package has no `src/`, so\n * this list is the loader's record; {@link isForbiddenCaseModule} and the\n * directory test fail if one of these, or a new `case-*.ts`, comes back.\n */\nexport const FORBIDDEN_PER_CASE_MODULES = [\n 'skin-depth.ts',\n 'kepler-rv.ts',\n 'damped-resonator.ts',\n 'resistor-noise.ts',\n 'lumped-cooling.ts',\n 'brownian-sphere.ts',\n] as const;\n\n/** True for a deleted per-case file or a new `case-*.ts` under `src/cases/`. */\nexport function isForbiddenCaseModule(name: string): boolean {\n return (FORBIDDEN_PER_CASE_MODULES as readonly string[]).includes(name)\n || /^case-.+\\.ts$/.test(name);\n}\n\n/**\n * Parse and validate catalog text. Schema problems and semantic problems throw\n * with every message listed.\n * @internal\n */\nexport function readAppliedCaseFile(text: string, schema: JsonSchema = dataSchema('applied-cases.json')): AppliedCaseFile {\n const parsed = parseDataFile('applied-cases.json', text, schema) as AppliedCaseFile;\n catalogSemanticProblems(parsed).forEach((msg) => {\n throw new Error(msg);\n });\n return parsed;\n}\n\n/** Semantic rules a schema cannot state. @internal */\nexport function catalogSemanticProblems(file: AppliedCaseFile, methodNames?: ReadonlySet<string>): string[] {\n const problems: string[] = [];\n const seen = new Set<string>();\n for (const row of file.cases) {\n if (row.id.length === 0) problems.push('applied-cases: a case is missing id');\n if (seen.has(row.id)) problems.push(`applied-cases: duplicate id '${row.id}'`);\n seen.add(row.id);\n for (const check of row.checks) {\n if (!OPS.has(check.op)) problems.push(`${row.id}: check '${check.id}' has unknown op '${check.op}'`);\n if (check.expr.trim().length === 0) problems.push(`${row.id}: check '${check.id}' has no expr`);\n }\n if (methodNames !== undefined) {\n for (const output of row.outputs) {\n const kinds = [output.expr !== undefined, output.relation !== undefined, output.method !== undefined].filter(Boolean).length;\n if (kinds !== 1) {\n problems.push(`${row.id}: output '${output.key}' must have exactly one of expr, relation, method`);\n } else if (output.method !== undefined && !methodNames.has(output.method)) {\n problems.push(`${row.id}: output '${output.key}' names unknown method '${output.method}'`);\n } else if (output.relation !== undefined) {\n const rel = catalogRelations().find((r) => r.id === output.relation!.relation);\n if (rel === undefined) {\n problems.push(`${row.id}: output '${output.key}' names unknown relation '${output.relation.relation}'`);\n }\n }\n }\n }\n }\n return problems;\n}\n\n/** `data/applied-cases.json`, checked once per process. @internal */\nexport function appliedCaseCatalog(): AppliedCaseFile {\n return checkedDataFile('applied-cases.json') as AppliedCaseFile;\n}\n\n/** One record by id; throws when the id is absent. @internal */\nexport function appliedCaseRecord(id: string): AppliedCaseRecord {\n const row = appliedCaseCatalog().cases.find((c) => c.id === id);\n if (row === undefined) throw new Error(`applied-cases.json: no case '${id}'`);\n return row;\n}\n\n/** Declarative fields of an {@link AppliedCase} as a catalog record (no `run`). @internal */\nexport function projectAppliedCaseRecord(\n c: AppliedCase,\n checks: readonly AppliedCaseCheckRecord[],\n): AppliedCaseRecord {\n const { run: _run, regimeAt: _regime, ...rest } = c;\n return {\n ...rest,\n outputs: rest.outputs.map((o) => ({ key: o.key, symbol: o.symbol, unit: o.unit, meaning: o.meaning })),\n checks: [...checks],\n };\n}\n\n/** Attach a runtime implementation to a catalog record. @internal */\nexport function assembleAppliedCase(\n record: AppliedCaseRecord,\n impl: Pick<AppliedCase, 'run'> & { regimeAt?: AppliedCase['regimeAt'] },\n): AppliedCase {\n return {\n id: record.id,\n title: record.title,\n parameters: record.parameters,\n governing: record.governing,\n observable: record.observable,\n outputs: record.outputs.map((o) => ({ key: o.key, symbol: o.symbol, unit: o.unit, meaning: o.meaning })),\n conditions: record.conditions,\n comparison: record.comparison,\n notIncluded: record.notIncluded,\n measurement: record.measurement,\n links: record.links,\n examples: record.examples,\n regimeAt: impl.regimeAt,\n run: impl.run,\n };\n}\n\n/** Every catalog id in file order. @internal */\nexport function appliedCaseIds(): readonly string[] {\n return appliedCaseCatalog().cases.map((c) => c.id);\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AppliedCaseRecord } from './catalog.js';
|
|
2
|
+
import { type CaseResult } from './types.js';
|
|
3
|
+
/** Resolve a catalog output field through a named numeric method. */
|
|
4
|
+
export type CaseOutputMethod = (inputs: Readonly<Record<string, number>>, outputs: Readonly<Record<string, number | null>>) => number | null;
|
|
5
|
+
type CaseMethodMap = Record<string, CaseOutputMethod | ((...args: never[]) => unknown)>;
|
|
6
|
+
/** Wire catalog `method` names to implementations (called from `methods.ts` at load). @internal */
|
|
7
|
+
export declare function registerCaseMethods(map: CaseMethodMap): void;
|
|
8
|
+
/** True when the record drives outputs through the catalog engine rather than a legacy runner. @internal */
|
|
9
|
+
export declare function usesCatalogEngine(record: AppliedCaseRecord): boolean;
|
|
10
|
+
/** Run one catalog record whose outputs are wired as expressions or methods. @internal */
|
|
11
|
+
export declare function runAppliedCaseEngine(record: AppliedCaseRecord, inputs: Readonly<Record<string, number>>): CaseResult;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/cases/engine.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAmD,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACvG,OAAO,EAA0C,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAErF,qEAAqE;AACrE,MAAM,MAAM,gBAAgB,GAAG,CAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACxC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,KAC7C,MAAM,GAAG,IAAI,CAAC;AAEnB,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;AAGxF,mGAAmG;AACnG,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAE5D;AAMD,4GAA4G;AAC5G,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAYpE;AA+ID,0FAA0F;AAC1F,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,UAAU,CA8BpH"}
|