universal-physics-tensor 9.0.0 → 11.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 +21 -17
- package/bin/upt.mjs +13 -1
- package/data/atlas/atlas.json +79 -68
- package/data/atlas/atlas.jsonld +1 -1
- package/data/atlas/diffusion.json +24 -23
- package/data/atlas/oscillators.json +21 -16
- package/data/atlas/waves.json +36 -31
- package/data/atlas/witness-results.json +11 -11
- package/data/bridge-catalog.json +1192 -1636
- package/data/bridge-catalog.schema.json +390 -135
- package/data/quantities.json +53 -19
- package/data/schemas/atlas-record.v0.json +184 -46
- package/data/units.json +33 -4
- package/dist/atlas/applicability.d.ts.map +1 -1
- package/dist/atlas/applicability.js +35 -18
- package/dist/atlas/applicability.js.map +1 -1
- package/dist/atlas/association.js.map +1 -1
- package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -1
- package/dist/atlas/benchmark/backend-shapes.js +5 -1
- package/dist/atlas/benchmark/backend-shapes.js.map +1 -1
- package/dist/atlas/benchmark/baselines.d.ts.map +1 -1
- package/dist/atlas/benchmark/baselines.js +8 -0
- package/dist/atlas/benchmark/baselines.js.map +1 -1
- package/dist/atlas/benchmark/hybrid-retrieval.d.ts +12 -3
- package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
- package/dist/atlas/benchmark/hybrid-retrieval.js +30 -21
- package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
- package/dist/atlas/benchmark/leakage.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/run-atlas.d.ts.map +1 -1
- package/dist/atlas/benchmark/run-atlas.js +14 -2
- package/dist/atlas/benchmark/run-atlas.js.map +1 -1
- package/dist/atlas/benchmark/stats.d.ts +3 -3
- package/dist/atlas/benchmark/stats.d.ts.map +1 -1
- package/dist/atlas/benchmark/stats.js +16 -8
- package/dist/atlas/benchmark/stats.js.map +1 -1
- package/dist/atlas/benchmark/study.js.map +1 -1
- package/dist/atlas/benchmark/types.js.map +1 -1
- package/dist/atlas/bridge-record.d.ts +4 -4
- package/dist/atlas/bridge-record.d.ts.map +1 -1
- package/dist/atlas/bridge-record.js +6 -6
- package/dist/atlas/bridge-record.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 +0 -11
- package/dist/atlas/chain-pipeline.d.ts.map +1 -1
- package/dist/atlas/chain-pipeline.js +12 -24
- package/dist/atlas/chain-pipeline.js.map +1 -1
- package/dist/atlas/composition-table.js.map +1 -1
- package/dist/atlas/conventions.js.map +1 -1
- package/dist/atlas/coverage.d.ts +2 -2
- package/dist/atlas/coverage.js.map +1 -1
- package/dist/atlas/derivation.js.map +1 -1
- package/dist/atlas/derive-evidence.d.ts +6 -4
- package/dist/atlas/derive-evidence.d.ts.map +1 -1
- package/dist/atlas/derive-evidence.js +7 -2
- package/dist/atlas/derive-evidence.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 -17
- 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 -42
- 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/index.d.ts +1 -1
- package/dist/atlas/diffusion/index.d.ts.map +1 -1
- package/dist/atlas/diffusion/index.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/error-algebra.d.ts +6 -0
- package/dist/atlas/error-algebra.d.ts.map +1 -1
- package/dist/atlas/error-algebra.js +26 -0
- package/dist/atlas/error-algebra.js.map +1 -1
- package/dist/atlas/export.d.ts +18 -2
- package/dist/atlas/export.d.ts.map +1 -1
- package/dist/atlas/export.js +9 -3
- package/dist/atlas/export.js.map +1 -1
- package/dist/atlas/families.d.ts +19 -2
- package/dist/atlas/families.d.ts.map +1 -1
- package/dist/atlas/families.js +26 -3
- package/dist/atlas/families.js.map +1 -1
- package/dist/atlas/family.d.ts +27 -0
- package/dist/atlas/family.d.ts.map +1 -0
- package/dist/atlas/family.js +12 -0
- package/dist/atlas/family.js.map +1 -0
- package/dist/atlas/index.d.ts +3 -2
- package/dist/atlas/index.d.ts.map +1 -1
- package/dist/atlas/index.js +2 -1
- package/dist/atlas/index.js.map +1 -1
- package/dist/atlas/link-prediction.d.ts +107 -4
- 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/model.js.map +1 -1
- package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -1
- package/dist/atlas/oscillators/bridges-coarse.js +7 -12
- 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 -10
- 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 -36
- 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/index.d.ts +1 -16
- package/dist/atlas/oscillators/index.d.ts.map +1 -1
- package/dist/atlas/oscillators/index.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/norm-transport-witness.js.map +1 -1
- package/dist/atlas/oscillators/norm-transport.js.map +1 -1
- package/dist/atlas/oscillators/norms.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-carriage.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/path-bound.js.map +1 -1
- package/dist/atlas/physjs-entries.generated.d.ts +25 -24
- package/dist/atlas/physjs-entries.generated.d.ts.map +1 -1
- package/dist/atlas/physjs-entries.generated.js +25 -24
- package/dist/atlas/physjs-entries.generated.js.map +1 -1
- package/dist/atlas/physjs-ref.d.ts +107 -70
- package/dist/atlas/physjs-ref.d.ts.map +1 -1
- package/dist/atlas/physjs-ref.js +184 -101
- package/dist/atlas/physjs-ref.js.map +1 -1
- package/dist/atlas/physjs-reviewed.d.ts +31 -0
- package/dist/atlas/physjs-reviewed.d.ts.map +1 -0
- package/dist/atlas/physjs-reviewed.js +194 -0
- package/dist/atlas/physjs-reviewed.js.map +1 -0
- package/dist/atlas/poster/associations.js.map +1 -1
- package/dist/atlas/poster/derivations.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/public.d.ts +2 -1
- package/dist/atlas/public.d.ts.map +1 -1
- package/dist/atlas/public.js +2 -1
- package/dist/atlas/public.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/serialize.d.ts +18 -12
- package/dist/atlas/serialize.d.ts.map +1 -1
- package/dist/atlas/serialize.js +28 -18
- package/dist/atlas/serialize.js.map +1 -1
- package/dist/atlas/statement.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/translation-registry.js.map +1 -1
- package/dist/atlas/translation.js.map +1 -1
- package/dist/atlas/types.d.ts +9 -2
- package/dist/atlas/types.d.ts.map +1 -1
- package/dist/atlas/types.js +1 -1
- package/dist/atlas/types.js.map +1 -1
- package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
- package/dist/atlas/waves/bridges-closure.js +2 -9
- 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 -52
- package/dist/atlas/waves/bridges.js.map +1 -1
- package/dist/atlas/waves/index.d.ts +1 -1
- package/dist/atlas/waves/index.d.ts.map +1 -1
- package/dist/atlas/waves/index.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-artifact.js.map +1 -1
- package/dist/atlas/witness-dominance.d.ts +4 -3
- package/dist/atlas/witness-dominance.d.ts.map +1 -1
- package/dist/atlas/witness-dominance.js +15 -5
- package/dist/atlas/witness-dominance.js.map +1 -1
- package/dist/atlas/witness-numeric.d.ts +38 -4
- package/dist/atlas/witness-numeric.d.ts.map +1 -1
- package/dist/atlas/witness-numeric.js +80 -2
- package/dist/atlas/witness-numeric.js.map +1 -1
- package/dist/atlas/witness-result.d.ts +7 -1
- package/dist/atlas/witness-result.d.ts.map +1 -1
- package/dist/atlas/witness-result.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/atlas/witnesses/quantum-support.js.map +1 -1
- package/dist/bridges/caller-table.d.ts +1 -1
- package/dist/bridges/caller-table.d.ts.map +1 -1
- package/dist/bridges/caller-table.js.map +1 -1
- package/dist/bridges/carrier-sign.d.ts.map +1 -1
- package/dist/bridges/carrier-sign.js +8 -3
- package/dist/bridges/carrier-sign.js.map +1 -1
- package/dist/bridges/catalog-adapter.d.ts +12 -3
- package/dist/bridges/catalog-adapter.d.ts.map +1 -1
- package/dist/bridges/catalog-adapter.js +17 -9
- package/dist/bridges/catalog-adapter.js.map +1 -1
- package/dist/bridges/catalog-load.d.ts +12 -2
- package/dist/bridges/catalog-load.d.ts.map +1 -1
- package/dist/bridges/catalog-load.js +181 -13
- package/dist/bridges/catalog-load.js.map +1 -1
- package/dist/bridges/catalog-types.d.ts +74 -26
- 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/coefficient-statement.js +1 -5
- package/dist/bridges/coefficient-statement.js.map +1 -1
- package/dist/bridges/confrontation-coverage.js.map +1 -1
- package/dist/bridges/confrontations.d.ts +1 -1
- package/dist/bridges/confrontations.d.ts.map +1 -1
- package/dist/bridges/confrontations.js +1 -1
- package/dist/bridges/confrontations.js.map +1 -1
- package/dist/bridges/evaluation-errors.d.ts +46 -3
- package/dist/bridges/evaluation-errors.d.ts.map +1 -1
- package/dist/bridges/evaluation-errors.js +40 -4
- 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 +17 -2
- package/dist/bridges/evaluators.d.ts.map +1 -1
- package/dist/bridges/evaluators.js +76 -28
- package/dist/bridges/evaluators.js.map +1 -1
- package/dist/bridges/expr-parse.d.ts +38 -4
- package/dist/bridges/expr-parse.d.ts.map +1 -1
- package/dist/bridges/expr-parse.js +101 -12
- package/dist/bridges/expr-parse.js.map +1 -1
- package/dist/bridges/holds.d.ts +40 -4
- package/dist/bridges/holds.d.ts.map +1 -1
- package/dist/bridges/holds.js +128 -19
- package/dist/bridges/holds.js.map +1 -1
- package/dist/bridges/index.d.ts +15 -14
- package/dist/bridges/index.d.ts.map +1 -1
- package/dist/bridges/index.js +14 -15
- package/dist/bridges/index.js.map +1 -1
- package/dist/bridges/input-contract.js.map +1 -1
- package/dist/bridges/membership.d.ts +5 -3
- package/dist/bridges/membership.d.ts.map +1 -1
- package/dist/bridges/membership.js +5 -6
- package/dist/bridges/membership.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/observations/types.js.map +1 -1
- package/dist/bridges/rejected.d.ts +11 -17
- package/dist/bridges/rejected.d.ts.map +1 -1
- package/dist/bridges/rejected.js +13 -68
- package/dist/bridges/rejected.js.map +1 -1
- package/dist/bridges/relation-eval.d.ts +6 -7
- package/dist/bridges/relation-eval.d.ts.map +1 -1
- package/dist/bridges/relation-eval.js +20 -50
- package/dist/bridges/relation-eval.js.map +1 -1
- package/dist/bridges/rhs-registry.js.map +1 -1
- package/dist/bridges/sensitivity.d.ts +11 -3
- package/dist/bridges/sensitivity.d.ts.map +1 -1
- package/dist/bridges/sensitivity.js +27 -13
- package/dist/bridges/sensitivity.js.map +1 -1
- package/dist/bridges/tensor-index.js.map +1 -1
- package/dist/bridges/types.d.ts +1 -7
- package/dist/bridges/types.d.ts.map +1 -1
- package/dist/bridges/types.js +1 -4
- package/dist/bridges/types.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/canonical-equation.js.map +1 -1
- package/dist/canonical/dimensional-fields.js.map +1 -1
- package/dist/canonical/entries/_l1-build.js.map +1 -1
- 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 +8 -9
- 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 +5 -6
- 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 +6 -12
- 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 +38 -39
- 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/statistical-mechanics.js +5 -5
- package/dist/canonical/entries/statistical-mechanics.js.map +1 -1
- package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
- package/dist/canonical/entries/thermo-nuclear-cosmo.js +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 +29 -4
- package/dist/canonical/linkage.d.ts.map +1 -1
- package/dist/canonical/linkage.js +47 -64
- package/dist/canonical/linkage.js.map +1 -1
- package/dist/canonical/normal-form.d.ts +0 -8
- package/dist/canonical/normal-form.d.ts.map +1 -1
- package/dist/canonical/normal-form.js +22 -23
- package/dist/canonical/normal-form.js.map +1 -1
- package/dist/canonical/registry.js.map +1 -1
- package/dist/canonical/residual.js.map +1 -1
- package/dist/canonical/seed-l-layer.d.ts +7 -1
- package/dist/canonical/seed-l-layer.d.ts.map +1 -1
- package/dist/canonical/seed-l-layer.js +7 -1
- package/dist/canonical/seed-l-layer.js.map +1 -1
- package/dist/canonical/structural.d.ts +42 -21
- package/dist/canonical/structural.d.ts.map +1 -1
- package/dist/canonical/structural.js +64 -23
- package/dist/canonical/structural.js.map +1 -1
- package/dist/cases/brownian-sphere.d.ts +3 -3
- package/dist/cases/brownian-sphere.d.ts.map +1 -1
- package/dist/cases/brownian-sphere.js +10 -9
- package/dist/cases/brownian-sphere.js.map +1 -1
- package/dist/cases/damped-resonator.d.ts.map +1 -1
- package/dist/cases/damped-resonator.js +8 -11
- package/dist/cases/damped-resonator.js.map +1 -1
- package/dist/cases/index.js.map +1 -1
- package/dist/cases/kepler-rv.d.ts +1 -1
- package/dist/cases/kepler-rv.d.ts.map +1 -1
- package/dist/cases/kepler-rv.js +3 -2
- package/dist/cases/kepler-rv.js.map +1 -1
- package/dist/cases/lumped-cooling.d.ts +8 -3
- package/dist/cases/lumped-cooling.d.ts.map +1 -1
- package/dist/cases/lumped-cooling.js +22 -24
- package/dist/cases/lumped-cooling.js.map +1 -1
- 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/resistor-noise.js +7 -7
- package/dist/cases/resistor-noise.js.map +1 -1
- package/dist/cases/skin-depth.d.ts +0 -4
- package/dist/cases/skin-depth.d.ts.map +1 -1
- package/dist/cases/skin-depth.js +3 -7
- package/dist/cases/skin-depth.js.map +1 -1
- package/dist/cases/types.js.map +1 -1
- package/dist/cli/args.d.ts +30 -3
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +47 -9
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/bindings.d.ts +13 -0
- package/dist/cli/bindings.d.ts.map +1 -0
- package/dist/cli/bindings.js +33 -0
- package/dist/cli/bindings.js.map +1 -0
- package/dist/cli/closed-form-range.js.map +1 -1
- package/dist/cli/command.d.ts +8 -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 +2 -11
- package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
- package/dist/cli/commands/_atlas-map.js +50 -35
- 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.map +1 -1
- package/dist/cli/commands/_discovery-opts.js +48 -14
- 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 +9 -8
- 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 +20 -20
- 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/candidates.d.ts.map +1 -1
- package/dist/cli/commands/candidates.js +16 -8
- package/dist/cli/commands/candidates.js.map +1 -1
- package/dist/cli/commands/canonical.js.map +1 -1
- package/dist/cli/commands/chain.js +1 -1
- package/dist/cli/commands/chain.js.map +1 -1
- package/dist/cli/commands/confront.d.ts.map +1 -1
- package/dist/cli/commands/confront.js +22 -20
- package/dist/cli/commands/confront.js.map +1 -1
- package/dist/cli/commands/connectors.js.map +1 -1
- package/dist/cli/commands/coverage.js.map +1 -1
- package/dist/cli/commands/derive.d.ts.map +1 -1
- package/dist/cli/commands/derive.js +60 -35
- 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 +20 -10
- 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 +14 -10
- 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 +108 -58
- 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 +16 -8
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/frontier.js.map +1 -1
- package/dist/cli/commands/ground.d.ts.map +1 -1
- package/dist/cli/commands/ground.js +41 -10
- package/dist/cli/commands/ground.js.map +1 -1
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/map.d.ts.map +1 -1
- package/dist/cli/commands/map.js +155 -92
- 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 +58 -20
- 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 +29 -7
- package/dist/cli/commands/path.js.map +1 -1
- package/dist/cli/commands/predict.js.map +1 -1
- package/dist/cli/commands/priority.js.map +1 -1
- package/dist/cli/commands/probe.d.ts.map +1 -1
- package/dist/cli/commands/probe.js +105 -38
- package/dist/cli/commands/probe.js.map +1 -1
- package/dist/cli/commands/recover.js +1 -1
- package/dist/cli/commands/recover.js.map +1 -1
- package/dist/cli/commands/regime.d.ts +5 -4
- package/dist/cli/commands/regime.d.ts.map +1 -1
- package/dist/cli/commands/regime.js +25 -26
- 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 +23 -14
- 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 +9 -4
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/symbolic.js +31 -36
- 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 +5 -3
- package/dist/cli/commands/testplan.js.map +1 -1
- package/dist/cli/conventions.js.map +1 -1
- package/dist/cli/determination.js.map +1 -1
- package/dist/cli/errors.js.map +1 -1
- package/dist/cli/euler-guard.js.map +1 -1
- package/dist/cli/eval-numbers.js.map +1 -1
- package/dist/cli/expr-print.d.ts +28 -3
- package/dist/cli/expr-print.d.ts.map +1 -1
- package/dist/cli/expr-print.js +42 -22
- package/dist/cli/expr-print.js.map +1 -1
- package/dist/cli/flag-help.js.map +1 -1
- package/dist/cli/graphs.js.map +1 -1
- package/dist/cli/library-defaults.d.ts +19 -0
- package/dist/cli/library-defaults.d.ts.map +1 -0
- package/dist/cli/library-defaults.js +22 -0
- package/dist/cli/library-defaults.js.map +1 -0
- package/dist/cli/main.d.ts +7 -0
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +25 -6
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/map-evidence.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 +23 -6
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +15 -0
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/published-url.js.map +1 -1
- package/dist/cli/record-reach.d.ts +6 -0
- package/dist/cli/record-reach.d.ts.map +1 -1
- package/dist/cli/record-reach.js +17 -11
- 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 +7 -6
- 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 +40 -20
- package/dist/cli/record.js.map +1 -1
- package/dist/cli/search-index.d.ts +5 -0
- package/dist/cli/search-index.d.ts.map +1 -1
- package/dist/cli/search-index.js +19 -7
- 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 +0 -7
- 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/top-level-help.js.map +1 -1
- package/dist/cli/version.d.ts.map +1 -1
- package/dist/cli/version.js +7 -5
- package/dist/cli/version.js.map +1 -1
- package/dist/cli-api.d.ts +49 -14
- package/dist/cli-api.d.ts.map +1 -1
- package/dist/cli-api.js +42 -17
- package/dist/cli-api.js.map +1 -1
- package/dist/composition/adjudication.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/aliases.js.map +1 -1
- package/dist/composition/audit-coverage.d.ts +2 -0
- package/dist/composition/audit-coverage.d.ts.map +1 -1
- package/dist/composition/audit-coverage.js.map +1 -1
- package/dist/composition/axes.d.ts +6 -0
- package/dist/composition/axes.d.ts.map +1 -1
- package/dist/composition/axes.js +18 -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 +14 -15
- package/dist/composition/bridge-analysis.d.ts.map +1 -1
- package/dist/composition/bridge-analysis.js +148 -91
- package/dist/composition/bridge-analysis.js.map +1 -1
- package/dist/composition/bridge-prediction.d.ts +5 -1
- package/dist/composition/bridge-prediction.d.ts.map +1 -1
- package/dist/composition/bridge-prediction.js +12 -16
- package/dist/composition/bridge-prediction.js.map +1 -1
- package/dist/composition/buckingham-filter.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 +134 -26
- package/dist/composition/canonical-compare.js.map +1 -1
- package/dist/composition/canonical-graph.d.ts +9 -10
- package/dist/composition/canonical-graph.d.ts.map +1 -1
- package/dist/composition/canonical-graph.js +33 -102
- 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/canonical-prefactors.js.map +1 -1
- package/dist/composition/catalog-graph.d.ts.map +1 -1
- package/dist/composition/catalog-graph.js +8 -25
- package/dist/composition/catalog-graph.js.map +1 -1
- package/dist/composition/chain-candidate.d.ts +10 -0
- package/dist/composition/chain-candidate.d.ts.map +1 -1
- package/dist/composition/chain-candidate.js +11 -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-regime.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-surface.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 +166 -41
- 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.map +1 -1
- package/dist/composition/consequence.js +15 -6
- package/dist/composition/consequence.js.map +1 -1
- package/dist/composition/consistency.js.map +1 -1
- package/dist/composition/descriptor.d.ts +1 -1
- package/dist/composition/descriptor.d.ts.map +1 -1
- package/dist/composition/descriptor.js.map +1 -1
- package/dist/composition/dimension-adjacency.js.map +1 -1
- package/dist/composition/discovery.d.ts +77 -11
- package/dist/composition/discovery.d.ts.map +1 -1
- package/dist/composition/discovery.js +194 -80
- package/dist/composition/discovery.js.map +1 -1
- package/dist/composition/edge.d.ts +40 -10
- package/dist/composition/edge.d.ts.map +1 -1
- package/dist/composition/edge.js +47 -12
- package/dist/composition/edge.js.map +1 -1
- package/dist/composition/enumerate.d.ts +2 -2
- 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 +5 -9
- package/dist/composition/explain.d.ts.map +1 -1
- package/dist/composition/explain.js +38 -18
- package/dist/composition/explain.js.map +1 -1
- package/dist/composition/expr-eval.d.ts.map +1 -1
- package/dist/composition/expr-eval.js +2 -11
- package/dist/composition/expr-eval.js.map +1 -1
- package/dist/composition/expr-simplify.d.ts +16 -0
- package/dist/composition/expr-simplify.d.ts.map +1 -1
- package/dist/composition/expr-simplify.js +24 -59
- package/dist/composition/expr-simplify.js.map +1 -1
- package/dist/composition/expr-subst.js.map +1 -1
- package/dist/composition/formula-shape.d.ts +28 -0
- package/dist/composition/formula-shape.d.ts.map +1 -1
- package/dist/composition/formula-shape.js +96 -2
- package/dist/composition/formula-shape.js.map +1 -1
- package/dist/composition/frontier-account.d.ts +3 -2
- package/dist/composition/frontier-account.d.ts.map +1 -1
- package/dist/composition/frontier-account.js +7 -3
- package/dist/composition/frontier-account.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.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 +14 -8
- package/dist/composition/index.d.ts.map +1 -1
- package/dist/composition/index.js +7 -5
- package/dist/composition/index.js.map +1 -1
- package/dist/composition/mathts-quiet.d.ts +29 -0
- package/dist/composition/mathts-quiet.d.ts.map +1 -0
- package/dist/composition/mathts-quiet.js +57 -0
- package/dist/composition/mathts-quiet.js.map +1 -0
- package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -1
- package/dist/composition/mathts-scalar-symbols.js +20 -35
- package/dist/composition/mathts-scalar-symbols.js.map +1 -1
- package/dist/composition/not-composable-seeds.d.ts +3 -1
- package/dist/composition/not-composable-seeds.d.ts.map +1 -1
- package/dist/composition/not-composable-seeds.js +2 -0
- package/dist/composition/not-composable-seeds.js.map +1 -1
- package/dist/composition/probe/backend-protocol.js.map +1 -1
- package/dist/composition/probe/candidate-store.js.map +1 -1
- package/dist/composition/probe/corpus.d.ts +4 -2
- package/dist/composition/probe/corpus.d.ts.map +1 -1
- package/dist/composition/probe/corpus.js +20 -9
- package/dist/composition/probe/corpus.js.map +1 -1
- package/dist/composition/probe/dataset.d.ts +17 -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 +5 -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/expression-gaps.js.map +1 -1
- package/dist/composition/probe/falsify.d.ts +14 -3
- package/dist/composition/probe/falsify.d.ts.map +1 -1
- package/dist/composition/probe/falsify.js +16 -27
- package/dist/composition/probe/falsify.js.map +1 -1
- package/dist/composition/probe/fingerprint.js.map +1 -1
- package/dist/composition/probe/fit.d.ts +7 -1
- package/dist/composition/probe/fit.d.ts.map +1 -1
- package/dist/composition/probe/fit.js +48 -23
- 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 +27 -1
- package/dist/composition/probe/generator.d.ts.map +1 -1
- package/dist/composition/probe/generator.js +53 -30
- package/dist/composition/probe/generator.js.map +1 -1
- package/dist/composition/probe/index.d.ts +18 -2
- package/dist/composition/probe/index.d.ts.map +1 -1
- package/dist/composition/probe/index.js +10 -2
- package/dist/composition/probe/index.js.map +1 -1
- package/dist/composition/probe/limits.d.ts +24 -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/metadata.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 +22 -9
- 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 +255 -0
- package/dist/composition/probe/power-law.js.map +1 -0
- package/dist/composition/probe/problem.d.ts +12 -1
- package/dist/composition/probe/problem.d.ts.map +1 -1
- package/dist/composition/probe/problem.js +242 -48
- 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 +6 -1
- package/dist/composition/probe/residual.d.ts.map +1 -1
- package/dist/composition/probe/residual.js +9 -7
- package/dist/composition/probe/residual.js.map +1 -1
- package/dist/composition/probe/run-manifest.js +2 -2
- package/dist/composition/probe/run-manifest.js.map +1 -1
- package/dist/composition/probe/scoring.d.ts +2 -1
- package/dist/composition/probe/scoring.d.ts.map +1 -1
- package/dist/composition/probe/scoring.js +21 -7
- package/dist/composition/probe/scoring.js.map +1 -1
- package/dist/composition/probe/search-budget.js.map +1 -1
- package/dist/composition/probe/serialize.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 +35 -12
- package/dist/composition/probe/study.d.ts.map +1 -1
- package/dist/composition/probe/study.js +241 -184
- package/dist/composition/probe/study.js.map +1 -1
- package/dist/composition/probe/t-tail.d.ts +17 -0
- package/dist/composition/probe/t-tail.d.ts.map +1 -0
- package/dist/composition/probe/t-tail.js +32 -0
- package/dist/composition/probe/t-tail.js.map +1 -0
- package/dist/composition/probe/types.d.ts +6 -1
- package/dist/composition/probe/types.d.ts.map +1 -1
- package/dist/composition/probe/types.js +2 -0
- package/dist/composition/probe/types.js.map +1 -1
- package/dist/composition/proposed-bridges.d.ts +51 -13
- package/dist/composition/proposed-bridges.d.ts.map +1 -1
- package/dist/composition/proposed-bridges.js +110 -58
- package/dist/composition/proposed-bridges.js.map +1 -1
- package/dist/composition/quantities.d.ts +0 -4
- package/dist/composition/quantities.d.ts.map +1 -1
- package/dist/composition/quantities.js +5 -5
- package/dist/composition/quantities.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/quantity.d.ts +18 -2
- package/dist/composition/quantity.d.ts.map +1 -1
- package/dist/composition/quantity.js +35 -6
- package/dist/composition/quantity.js.map +1 -1
- 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 +23 -0
- package/dist/composition/representative-values.js.map +1 -1
- package/dist/composition/retrodiction.d.ts +16 -6
- package/dist/composition/retrodiction.d.ts.map +1 -1
- package/dist/composition/retrodiction.js +36 -10
- package/dist/composition/retrodiction.js.map +1 -1
- package/dist/composition/uncertainty.js.map +1 -1
- package/dist/composition/user-equation.d.ts.map +1 -1
- package/dist/composition/user-equation.js +2 -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/axes-registry.d.ts +8 -5
- package/dist/core/axes-registry.d.ts.map +1 -1
- package/dist/core/axes-registry.js.map +1 -1
- package/dist/core/cell.js.map +1 -1
- 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 +35 -35
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +52 -37
- 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/flux-rules.js +1 -1
- package/dist/core/flux-rules.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 +3 -1
- package/dist/core/json-schema.d.ts.map +1 -1
- package/dist/core/json-schema.js +41 -16
- package/dist/core/json-schema.js.map +1 -1
- package/dist/core/labeled-tensor.d.ts +6 -1
- package/dist/core/labeled-tensor.d.ts.map +1 -1
- package/dist/core/labeled-tensor.js +18 -16
- 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/regime-registry.d.ts +6 -2
- package/dist/core/regime-registry.d.ts.map +1 -1
- package/dist/core/regime-registry.js.map +1 -1
- package/dist/core/regime-rule-install.js.map +1 -1
- package/dist/core/regimes-builtins.js.map +1 -1
- package/dist/core/tensor.d.ts +7 -4
- package/dist/core/tensor.d.ts.map +1 -1
- package/dist/core/tensor.js +64 -8
- package/dist/core/tensor.js.map +1 -1
- package/dist/core/types.d.ts +5 -5
- package/dist/core/types.js.map +1 -1
- package/dist/core/universal-index.js.map +1 -1
- package/dist/diff/bridge-ast-gradient.d.ts +4 -5
- package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
- package/dist/diff/bridge-ast-gradient.js +10 -6
- package/dist/diff/bridge-ast-gradient.js.map +1 -1
- package/dist/diff/bridge-gradient.d.ts +43 -86
- package/dist/diff/bridge-gradient.d.ts.map +1 -1
- package/dist/diff/bridge-gradient.js +40 -109
- package/dist/diff/bridge-gradient.js.map +1 -1
- package/dist/diff/bridge-specs.d.ts +16 -5
- package/dist/diff/bridge-specs.d.ts.map +1 -1
- package/dist/diff/bridge-specs.js +19 -4
- 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 +12 -4
- package/dist/dimensional/ast-builders.d.ts.map +1 -1
- package/dist/dimensional/ast-builders.js +17 -5
- 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.js.map +1 -1
- package/dist/dimensional/bridge-check.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/connection-validators.d.ts +2 -1
- package/dist/dimensional/connection-validators.d.ts.map +1 -1
- package/dist/dimensional/connection-validators.js.map +1 -1
- package/dist/dimensional/connection.js.map +1 -1
- package/dist/dimensional/constant-rows.d.ts.map +1 -1
- package/dist/dimensional/constant-rows.js +17 -13
- package/dist/dimensional/constant-rows.js.map +1 -1
- package/dist/dimensional/constants.d.ts +5 -6
- package/dist/dimensional/constants.d.ts.map +1 -1
- package/dist/dimensional/constants.js +5 -6
- package/dist/dimensional/constants.js.map +1 -1
- package/dist/dimensional/curvature-composite.js.map +1 -1
- package/dist/dimensional/curvature-invariants.js.map +1 -1
- package/dist/dimensional/curvature.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/dimension-spec.d.ts +13 -7
- package/dist/dimensional/dimension-spec.d.ts.map +1 -1
- package/dist/dimensional/dimension-spec.js +49 -23
- package/dist/dimensional/dimension-spec.js.map +1 -1
- package/dist/dimensional/einstein-equation.js.map +1 -1
- package/dist/dimensional/errors.d.ts +4 -2
- package/dist/dimensional/errors.d.ts.map +1 -1
- package/dist/dimensional/errors.js +3 -17
- package/dist/dimensional/errors.js.map +1 -1
- package/dist/dimensional/exact-scale.d.ts +0 -17
- package/dist/dimensional/exact-scale.d.ts.map +1 -1
- package/dist/dimensional/exact-scale.js +8 -8
- package/dist/dimensional/exact-scale.js.map +1 -1
- package/dist/dimensional/field-equation-helpers.js.map +1 -1
- package/dist/dimensional/formula-names.js.map +1 -1
- package/dist/dimensional/fresh-label.js.map +1 -1
- package/dist/dimensional/friedmann-equation.d.ts +3 -3
- package/dist/dimensional/friedmann-equation.js +3 -3
- package/dist/dimensional/friedmann-equation.js.map +1 -1
- package/dist/dimensional/gauge-field.d.ts +2 -3
- package/dist/dimensional/gauge-field.d.ts.map +1 -1
- package/dist/dimensional/gauge-field.js +2 -3
- 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 +45 -12
- package/dist/dimensional/hyphen-names.js.map +1 -1
- package/dist/dimensional/killing-validators.js.map +1 -1
- package/dist/dimensional/klein-gordon-equation.js.map +1 -1
- package/dist/dimensional/metric-validators.d.ts +2 -1
- package/dist/dimensional/metric-validators.d.ts.map +1 -1
- package/dist/dimensional/metric-validators.js.map +1 -1
- 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/natural-units.js.map +1 -1
- package/dist/dimensional/quantity-registry.d.ts +13 -0
- package/dist/dimensional/quantity-registry.d.ts.map +1 -1
- package/dist/dimensional/quantity-registry.js +14 -6
- package/dist/dimensional/quantity-registry.js.map +1 -1
- package/dist/dimensional/rg-flow.js.map +1 -1
- package/dist/dimensional/stress-energy-validators.js.map +1 -1
- 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 +20 -3
- package/dist/dimensional/symbolic-constants.js.map +1 -1
- package/dist/dimensional/tensor-trace.js.map +1 -1
- package/dist/dimensional/tensor.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-convention.d.ts +0 -2
- package/dist/dimensional/unit-convention.d.ts.map +1 -1
- package/dist/dimensional/unit-convention.js +2 -2
- package/dist/dimensional/unit-convention.js.map +1 -1
- package/dist/dimensional/unit-data.d.ts.map +1 -1
- package/dist/dimensional/unit-data.js +11 -7
- package/dist/dimensional/unit-data.js.map +1 -1
- package/dist/dimensional/units.d.ts.map +1 -1
- package/dist/dimensional/units.js +38 -20
- package/dist/dimensional/units.js.map +1 -1
- package/dist/dimensional/validator-registry.js.map +1 -1
- package/dist/dimensional/validator.d.ts +0 -16
- package/dist/dimensional/validator.d.ts.map +1 -1
- package/dist/dimensional/validator.js +65 -29
- package/dist/dimensional/validator.js.map +1 -1
- package/dist/dimensional/weyl-validators.js.map +1 -1
- package/dist/index.d.ts +59 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -24
- package/dist/index.js.map +1 -1
- package/dist/numerical/bianchi-residual.js.map +1 -1
- package/dist/numerical/binding-value.d.ts +11 -6
- package/dist/numerical/binding-value.d.ts.map +1 -1
- package/dist/numerical/binding-value.js +126 -122
- package/dist/numerical/binding-value.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.js.map +1 -1
- package/dist/numerical/covariant-eikonal.d.ts.map +1 -1
- package/dist/numerical/covariant-eikonal.js +36 -13
- package/dist/numerical/covariant-eikonal.js.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.d.ts +20 -0
- package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.js +9 -5
- package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
- package/dist/numerical/derivative-lowering.js.map +1 -1
- package/dist/numerical/einstein-equation.js.map +1 -1
- package/dist/numerical/engine-registry.js.map +1 -1
- package/dist/numerical/errors.d.ts +7 -3
- package/dist/numerical/errors.d.ts.map +1 -1
- package/dist/numerical/errors.js +5 -8
- package/dist/numerical/errors.js.map +1 -1
- package/dist/numerical/evaluator-uncertainty.d.ts.map +1 -1
- package/dist/numerical/evaluator-uncertainty.js +19 -2
- package/dist/numerical/evaluator-uncertainty.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/formula-contract.d.ts +63 -7
- package/dist/numerical/formula-contract.d.ts.map +1 -1
- package/dist/numerical/formula-contract.js +61 -42
- package/dist/numerical/formula-contract.js.map +1 -1
- package/dist/numerical/formula-dimension.d.ts +8 -7
- package/dist/numerical/formula-dimension.d.ts.map +1 -1
- package/dist/numerical/formula-dimension.js +58 -36
- package/dist/numerical/formula-dimension.js.map +1 -1
- package/dist/numerical/formula-mathts.d.ts.map +1 -1
- package/dist/numerical/formula-mathts.js +5 -2
- package/dist/numerical/formula-mathts.js.map +1 -1
- package/dist/numerical/formula-registry.d.ts +13 -3
- package/dist/numerical/formula-registry.d.ts.map +1 -1
- package/dist/numerical/formula-registry.js +7 -2
- package/dist/numerical/formula-registry.js.map +1 -1
- package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
- package/dist/numerical/geodesic-integrator.js +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/gl4-integrator.d.ts +28 -27
- package/dist/numerical/gl4-integrator.d.ts.map +1 -1
- package/dist/numerical/gl4-integrator.js +41 -42
- package/dist/numerical/gl4-integrator.js.map +1 -1
- package/dist/numerical/grid-field.js.map +1 -1
- package/dist/numerical/index.js.map +1 -1
- package/dist/numerical/input-validation.d.ts +3 -6
- package/dist/numerical/input-validation.d.ts.map +1 -1
- package/dist/numerical/input-validation.js +4 -8
- package/dist/numerical/input-validation.js.map +1 -1
- package/dist/numerical/killing.d.ts +8 -5
- package/dist/numerical/killing.d.ts.map +1 -1
- package/dist/numerical/killing.js.map +1 -1
- package/dist/numerical/klein-gordon.js.map +1 -1
- package/dist/numerical/kretschmann.js.map +1 -1
- package/dist/numerical/lowering-utils.js.map +1 -1
- package/dist/numerical/lowering.d.ts.map +1 -1
- package/dist/numerical/lowering.js +7 -17
- package/dist/numerical/lowering.js.map +1 -1
- package/dist/numerical/mathts-engine.d.ts.map +1 -1
- package/dist/numerical/mathts-engine.js +16 -25
- 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-ic.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 +9 -2
- 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 +5 -2
- package/dist/numerical/quadrature.d.ts.map +1 -1
- package/dist/numerical/quadrature.js +19 -4
- 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 +25 -19
- package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
- package/dist/numerical/spacetime-metrics.js +180 -286
- 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.js.map +1 -1
- package/dist/numerical/tensor-engine.d.ts +30 -5
- 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/numerical/types.js.map +1 -1
- package/dist/numerical/weyl-lowering.js.map +1 -1
- package/dist/relations/category.js.map +1 -1
- package/dist/relations/composition-table.d.ts +4 -4
- package/dist/relations/composition-table.js +4 -4
- package/dist/relations/composition-table.js.map +1 -1
- package/dist/relations/conventions.js.map +1 -1
- package/dist/relations/domain-regimes.js.map +1 -1
- package/dist/relations/regime-registration.js.map +1 -1
- package/dist/relations/regime-vocabularies.js.map +1 -1
- package/dist/relations/regime.d.ts +28 -8
- package/dist/relations/regime.d.ts.map +1 -1
- package/dist/relations/regime.js +44 -15
- package/dist/relations/regime.js.map +1 -1
- package/dist/relations/types.d.ts +18 -5
- package/dist/relations/types.d.ts.map +1 -1
- package/dist/relations/types.js +5 -3
- package/dist/relations/types.js.map +1 -1
- package/package.json +16 -20
- package/dist/bridges/registry.d.ts +0 -60
- package/dist/bridges/registry.d.ts.map +0 -1
- package/dist/bridges/registry.js +0 -87
- package/dist/bridges/registry.js.map +0 -1
- package/dist/cli/poster-source.d.ts +0 -154
- package/dist/cli/poster-source.d.ts.map +0 -1
- package/dist/cli/poster-source.js +0 -184
- package/dist/cli/poster-source.js.map +0 -1
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*
|
|
16
16
|
* @module dimensional/constant-rows
|
|
17
17
|
*/
|
|
18
|
-
import { B_WIEN_SI, C_SI, E_SI, EPS0_SI, FARADAY_SI, G_SI, GM_SUN_SI, H_SI, HBAR_CODATA_DISPLAY, HBAR_SI, K_B_SI, LANE_EMDEN_OMEGA3, M_E_SI, M_PROTON_SI, M_SUN_IAU_SI, M_SUN_SI, M_U_SI, MU0_SI, N_A_SI, SIGMA_SB_SI, THOMSON_CROSS_SECTION_SI, } from '../core/constants.js';
|
|
18
|
+
import { B_WIEN_SI, C_SI, E_SI, EPS0_SI, EULER_GAMMA, FARADAY_SI, G_SI, GM_SUN_SI, H_SI, HBAR_CODATA_DISPLAY, HBAR_SI, K_B_SI, LANE_EMDEN_OMEGA3, M_E_SI, M_PROTON_SI, M_SUN_IAU_SI, M_SUN_SI, M_U_SI, MU0_SI, N_A_SI, SIGMA_SB_SI, THOMSON_CROSS_SECTION_SI, R_INF_SI } from '../core/constants.js';
|
|
19
19
|
const row = (input) => ({
|
|
20
20
|
...input,
|
|
21
21
|
spellings: input.spellings ?? [],
|
|
@@ -25,16 +25,18 @@ const OWNER = 'core/constants.ts';
|
|
|
25
25
|
/** Every registered constant as written. Order is the order the tables print. @internal */
|
|
26
26
|
export const CONSTANT_ROWS = [
|
|
27
27
|
// ── universal constants a canonical equation may bake ──────────────────
|
|
28
|
-
row({ name: 'hbar', spellings: ['ℏ'], value: HBAR_SI, unit: 'J*s', canonical: true, mathts: 'reducedPlanckConstant', exact: true,
|
|
28
|
+
row({ name: 'hbar', spellings: ['ℏ', 'reduced-planck-constant'], value: HBAR_SI, unit: 'J*s', canonical: true, mathts: 'reducedPlanckConstant', exact: true,
|
|
29
29
|
meaning: 'reduced Planck constant h/(2π)', source: `exact H_SI/(2π) (${OWNER} HBAR_SI)`,
|
|
30
30
|
note: `hbar is HBAR_SI = H_SI/(2π), the exact reduced Planck constant. The CODATA display ${HBAR_CODATA_DISPLAY} ` +
|
|
31
31
|
`is that quotient truncated (relative difference ${(Math.abs(HBAR_CODATA_DISPLAY - HBAR_SI) / HBAR_SI).toExponential(3)}).` }),
|
|
32
32
|
row({ name: 'h', quantity: 'planck-constant', value: H_SI, unit: 'J*s', canonical: true, mathts: 'planckConstant', exact: true,
|
|
33
33
|
meaning: 'Planck constant', source: `exact SI, 2019 redefinition (${OWNER} H_SI)` }),
|
|
34
|
-
row({ name: 'c', value: C_SI, unit: 'm/s', canonical: true, mathts: 'speedOfLight', exact: true,
|
|
34
|
+
row({ name: 'c', spellings: ['speed-of-light', 'speed_of_light'], value: C_SI, unit: 'm/s', canonical: true, mathts: 'speedOfLight', exact: true,
|
|
35
35
|
meaning: 'speed of light in vacuum', source: `exact SI (${OWNER} C_SI)` }),
|
|
36
|
+
row({ name: 'R_inf', spellings: ['Rinf', 'R_infinity', 'rydberg'], quantity: 'rydberg-constant', value: R_INF_SI, unit: '1/m', canonical: true, mathts: 'rydberg',
|
|
37
|
+
meaning: 'Rydberg constant R∞, infinite nuclear mass (the reduced-mass correction R_M = R∞/(1 + m_e/M) is not applied)', source: `CODATA 2022, MathTS (${OWNER} R_INF_SI)` }),
|
|
36
38
|
row({ name: 'G', value: G_SI, unit: 'm^3/(kg*s^2)', canonical: true, mathts: 'gravitationConstant',
|
|
37
|
-
meaning: 'Newtonian gravitational constant', source: `CODATA
|
|
39
|
+
meaning: 'Newtonian gravitational constant', source: `CODATA 2022, MathTS (${OWNER} G_SI)` }),
|
|
38
40
|
row({ name: 'k_B', spellings: ['kB', 'boltzmann'], quantity: 'boltzmann-constant', value: K_B_SI, unit: 'J/K', canonical: true, mathts: 'boltzmann', exact: true,
|
|
39
41
|
meaning: 'Boltzmann constant', source: `exact SI, 2019 redefinition (${OWNER} K_B_SI)` }),
|
|
40
42
|
row({ name: 'ln2', value: Math.LN2, unit: '1', canonical: true, irrational: true,
|
|
@@ -50,26 +52,26 @@ export const CONSTANT_ROWS = [
|
|
|
50
52
|
// dimensionless governing name e.
|
|
51
53
|
row({ name: 'e', spellings: ['e_charge'], value: E_SI, unit: 'C', canonical: true, mathts: 'elementaryCharge', exact: true,
|
|
52
54
|
meaning: 'elementary charge', source: `exact SI, 2019 redefinition (${OWNER} E_SI)` }),
|
|
53
|
-
row({ name: 'epsilon_0', spellings: ['epsilon0', 'eps0'], value: EPS0_SI, unit: 'F/m', canonical: true,
|
|
54
|
-
meaning: 'vacuum permittivity', source: `CODATA
|
|
55
|
+
row({ name: 'epsilon_0', spellings: ['epsilon0', 'eps0', 'vacuum-permittivity'], value: EPS0_SI, unit: 'F/m', canonical: true,
|
|
56
|
+
meaning: 'vacuum permittivity', source: `CODATA 2022, MathTS (${OWNER} EPS0_SI)` }),
|
|
55
57
|
row({ name: 'sigma_sb', spellings: ['stefan-boltzmann-constant'], value: SIGMA_SB_SI, unit: 'W/(m^2*K^4)', canonical: true, mathts: 'stefanBoltzmann',
|
|
56
|
-
meaning: 'Stefan–Boltzmann constant', source: `CODATA
|
|
58
|
+
meaning: 'Stefan–Boltzmann constant', source: `CODATA 2022, MathTS (${OWNER} SIGMA_SB_SI)` }),
|
|
57
59
|
row({ name: 'b', spellings: ['wien-constant'], value: B_WIEN_SI, unit: 'm*K', canonical: true, mathts: 'wienDisplacement',
|
|
58
|
-
meaning: 'Wien displacement constant', source: `CODATA
|
|
60
|
+
meaning: 'Wien displacement constant', source: `CODATA 2022, MathTS (${OWNER} B_WIEN_SI)` }),
|
|
59
61
|
// IAU 2015 nominal solar parameter. M_sun in eval stays the rounded kilogram M_SUN_SI.
|
|
60
62
|
row({ name: 'GM_sun', value: GM_SUN_SI, unit: 'm^3/s^2', canonical: true,
|
|
61
63
|
meaning: 'IAU nominal solar gravitational parameter (GM)☉', source: `IAU 2015 Resolution B3 (${OWNER} GM_SUN_SI)` }),
|
|
62
64
|
row({ name: 'Msun_iau', value: M_SUN_IAU_SI, unit: 'kg', canonical: true,
|
|
63
65
|
meaning: 'IAU solar mass (GM)☉/G, the mass that reproduces GM_sun with G_SI', source: `GM_SUN_SI/G_SI (${OWNER} M_SUN_IAU_SI)` }),
|
|
64
66
|
row({ name: 'm_u', value: M_U_SI, unit: 'kg', canonical: true, mathts: 'atomicMass',
|
|
65
|
-
meaning: 'unified atomic mass unit (atomic mass constant)', source: `CODATA
|
|
66
|
-
row({ name: 'm_e', spellings: ['electron_mass'], value: M_E_SI, unit: 'kg', canonical: true, mathts: 'electronMass',
|
|
67
|
-
meaning: 'electron mass', source: `CODATA
|
|
67
|
+
meaning: 'unified atomic mass unit (atomic mass constant)', source: `CODATA 2022, MathTS (${OWNER} M_U_SI)` }),
|
|
68
|
+
row({ name: 'm_e', spellings: ['electron_mass', 'electron-mass'], value: M_E_SI, unit: 'kg', canonical: true, mathts: 'electronMass',
|
|
69
|
+
meaning: 'electron mass', source: `CODATA 2022, MathTS (${OWNER} M_E_SI)` }),
|
|
68
70
|
// ── overlay names for `upt eval` and the dimensional assignment only ────
|
|
69
71
|
row({ name: 'mu_0', spellings: ['mu0'], value: MU0_SI, unit: 'H/m', mathts: 'magneticConstant',
|
|
70
72
|
meaning: 'vacuum permeability 1/(ε₀ c²)', source: `1/(EPS0_SI·C_SI²) (${OWNER} MU0_SI)` }),
|
|
71
73
|
row({ name: 'm_p', spellings: ['m_proton'], value: M_PROTON_SI, unit: 'kg', mathts: 'protonMass',
|
|
72
|
-
meaning: 'proton mass', source: `CODATA
|
|
74
|
+
meaning: 'proton mass', source: `CODATA 2022, MathTS (${OWNER} M_PROTON_SI)` }),
|
|
73
75
|
row({ name: 'N_A', value: N_A_SI, unit: 'mol^-1', mathts: 'avogadro', exact: true,
|
|
74
76
|
meaning: 'Avogadro constant', source: `exact SI, 2019 redefinition (${OWNER} N_A_SI)` }),
|
|
75
77
|
row({ name: 'F', value: FARADAY_SI, unit: 'C/mol', mathts: 'faraday', exact: true,
|
|
@@ -86,9 +88,11 @@ export const CONSTANT_ROWS = [
|
|
|
86
88
|
row({ name: 'scale_factor', value: 1, unit: 'm',
|
|
87
89
|
meaning: 'Friedmann scale factor, unit by default', source: 'this registry (default 1)' }),
|
|
88
90
|
row({ name: 'sigma_T', value: THOMSON_CROSS_SECTION_SI, unit: 'm^2', mathts: 'thomsonCrossSection',
|
|
89
|
-
meaning: 'Thomson cross section', source: `CODATA
|
|
91
|
+
meaning: 'Thomson cross section', source: `CODATA 2022, MathTS (${OWNER} THOMSON_CROSS_SECTION_SI)` }),
|
|
90
92
|
row({ name: 'lane_emden_omega_3', quantity: 'lane-emden-omega-3', value: LANE_EMDEN_OMEGA3, unit: '1',
|
|
91
93
|
meaning: 'Lane–Emden n = 3 dimensionless radius', source: `${OWNER} LANE_EMDEN_OMEGA3` }),
|
|
94
|
+
row({ name: 'euler_gamma', value: EULER_GAMMA, unit: '1',
|
|
95
|
+
meaning: 'Euler–Mascheroni constant γ', source: `${OWNER} EULER_GAMMA` }),
|
|
92
96
|
// GRW mass amplification: λ = λ₀ · (m / m₀), with λ₀ a rate and m₀ a mass.
|
|
93
97
|
// The two numbers are the catalog expression's, so the rate is unchanged.
|
|
94
98
|
row({ name: 'grw_lambda0', value: 1e-16, unit: 'Hz',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constant-rows.js","sourceRoot":"","sources":["../../src/dimensional/constant-rows.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constant-rows.js","sourceRoot":"","sources":["../../src/dimensional/constant-rows.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The constant registry's rows as written: name, spellings, SI value, SI unit\n * text, meaning, source and flags, one row per physical constant a formula or\n * the unit table may name.\n *\n * `symbolic-constants.ts` derives each row's dimension from its unit with\n * `parseUnit` and owns every projection. The rows live here, apart from that\n * derivation, because the unit table reads constants too: `data/units.json`\n * names `c`, `e`, `m_u`, `M_sun`, `Msun_iau` and `ln2` by these spellings, and\n * the unit parser cannot import a module that imports the unit parser. This\n * module imports only `core/constants.ts`, the owner of every value, so the\n * unit loader and the registry read one set of spellings with no cycle.\n *\n * INTERNAL — not on the public surface.\n *\n * @module dimensional/constant-rows\n */\n\nimport {\n B_WIEN_SI,\n C_SI,\n E_SI,\n EPS0_SI,\n EULER_GAMMA,\n FARADAY_SI,\n G_SI,\n GM_SUN_SI,\n H_SI,\n HBAR_CODATA_DISPLAY,\n HBAR_SI,\n K_B_SI,\n LANE_EMDEN_OMEGA3,\n M_E_SI,\n M_PROTON_SI,\n M_SUN_IAU_SI,\n M_SUN_SI,\n M_U_SI,\n MU0_SI,\n N_A_SI,\n SIGMA_SB_SI,\n THOMSON_CROSS_SECTION_SI, R_INF_SI } from '../core/constants.js';\n\n/** One registered constant as written: everything but the dimension, which `symbolic-constants.ts` derives from `unit`. @internal */\nexport interface ConstantRow {\n /** The formula name; the first spelling, and the key of every projection. */\n readonly name: string;\n /** Other exact-case spellings a caller may type. */\n readonly spellings: readonly string[];\n readonly value: number;\n /** The SI unit, in the syntax `parseUnit` reads. The dimension is derived from it. */\n readonly unit: string;\n readonly meaning: string;\n readonly source: string;\n /** A universal constant a canonical `governing` list may bake. */\n readonly canonical: boolean;\n /** A caveat printed wherever the constant is used (`upt eval`, a relation that names it). */\n readonly note?: string;\n /** The `@danielsimonjr/mathts-functions` export that states the same constant (CODATA 2022 there), when one exists. The second method. */\n readonly mathts?: string;\n /** The two libraries agree to the last bit: exact in the 2019 SI, or a product of exact constants. */\n readonly exact?: true;\n /**\n * The `data/quantities.json` id this constant is also a quantity of. The\n * quantity registry takes the constant's spellings as that row's aliases;\n * the file does not repeat them, so a spelling has one owner.\n */\n readonly quantity?: string;\n /**\n * A mathematical constant no rational states (ln 2, 2π, 4π, 8π). An exact\n * reader (`data/units.json`'s scale expressions) carries `value` as the\n * irrational factor instead of reading its decimal as a rational.\n */\n readonly irrational?: true;\n}\n\ntype RowInput = Omit<ConstantRow, 'spellings' | 'canonical' | 'note' | 'mathts' | 'exact' | 'quantity' | 'irrational'> & {\n readonly quantity?: string;\n readonly irrational?: true;\n readonly note?: string;\n readonly mathts?: string;\n readonly exact?: true;\n readonly spellings?: readonly string[];\n readonly canonical?: boolean;\n};\n\nconst row = (input: RowInput): ConstantRow => ({\n ...input,\n spellings: input.spellings ?? [],\n canonical: input.canonical ?? false,\n});\n\nconst OWNER = 'core/constants.ts';\n\n/** Every registered constant as written. Order is the order the tables print. @internal */\nexport const CONSTANT_ROWS: readonly ConstantRow[] = [\n // ── universal constants a canonical equation may bake ──────────────────\n row({ name: 'hbar', spellings: ['ℏ', 'reduced-planck-constant'], value: HBAR_SI, unit: 'J*s', canonical: true, mathts: 'reducedPlanckConstant', exact: true,\n meaning: 'reduced Planck constant h/(2π)', source: `exact H_SI/(2π) (${OWNER} HBAR_SI)`,\n note:\n `hbar is HBAR_SI = H_SI/(2π), the exact reduced Planck constant. The CODATA display ${HBAR_CODATA_DISPLAY} ` +\n `is that quotient truncated (relative difference ${(Math.abs(HBAR_CODATA_DISPLAY - HBAR_SI) / HBAR_SI).toExponential(3)}).` }),\n row({ name: 'h', quantity: 'planck-constant', value: H_SI, unit: 'J*s', canonical: true, mathts: 'planckConstant', exact: true,\n meaning: 'Planck constant', source: `exact SI, 2019 redefinition (${OWNER} H_SI)` }),\n row({ name: 'c', spellings: ['speed-of-light', 'speed_of_light'], value: C_SI, unit: 'm/s', canonical: true, mathts: 'speedOfLight', exact: true,\n meaning: 'speed of light in vacuum', source: `exact SI (${OWNER} C_SI)` }),\n row({ name: 'R_inf', spellings: ['Rinf', 'R_infinity', 'rydberg'], quantity: 'rydberg-constant', value: R_INF_SI, unit: '1/m', canonical: true, mathts: 'rydberg',\n meaning: 'Rydberg constant R∞, infinite nuclear mass (the reduced-mass correction R_M = R∞/(1 + m_e/M) is not applied)', source: `CODATA 2022, MathTS (${OWNER} R_INF_SI)` }),\n row({ name: 'G', value: G_SI, unit: 'm^3/(kg*s^2)', canonical: true, mathts: 'gravitationConstant',\n meaning: 'Newtonian gravitational constant', source: `CODATA 2022, MathTS (${OWNER} G_SI)` }),\n row({ name: 'k_B', spellings: ['kB', 'boltzmann'], quantity: 'boltzmann-constant', value: K_B_SI, unit: 'J/K', canonical: true, mathts: 'boltzmann', exact: true,\n meaning: 'Boltzmann constant', source: `exact SI, 2019 redefinition (${OWNER} K_B_SI)` }),\n row({ name: 'ln2', value: Math.LN2, unit: '1', canonical: true, irrational: true,\n meaning: 'natural logarithm of 2', source: 'mathematical constant (Math.LN2)' }),\n row({ name: '8pi', value: 8 * Math.PI, unit: '1', canonical: true, irrational: true,\n meaning: '8π', source: 'mathematical constant (8·Math.PI)' }),\n row({ name: '4pi', value: 4 * Math.PI, unit: '1', canonical: true, irrational: true,\n meaning: '4π', source: 'mathematical constant (4·Math.PI)' }),\n row({ name: '2pi', value: 2 * Math.PI, unit: '1', canonical: true, irrational: true,\n meaning: '2π', source: 'mathematical constant (2·Math.PI)' }),\n // ISO 80000 / CODATA: a bare e is the elementary charge. Eccentricity is\n // one_minus_e_sq. The canonical dimension guard still refuses to bake a\n // dimensionless governing name e.\n row({ name: 'e', spellings: ['e_charge'], value: E_SI, unit: 'C', canonical: true, mathts: 'elementaryCharge', exact: true,\n meaning: 'elementary charge', source: `exact SI, 2019 redefinition (${OWNER} E_SI)` }),\n row({ name: 'epsilon_0', spellings: ['epsilon0', 'eps0', 'vacuum-permittivity'], value: EPS0_SI, unit: 'F/m', canonical: true,\n meaning: 'vacuum permittivity', source: `CODATA 2022, MathTS (${OWNER} EPS0_SI)` }),\n row({ name: 'sigma_sb', spellings: ['stefan-boltzmann-constant'], value: SIGMA_SB_SI, unit: 'W/(m^2*K^4)', canonical: true, mathts: 'stefanBoltzmann',\n meaning: 'Stefan–Boltzmann constant', source: `CODATA 2022, MathTS (${OWNER} SIGMA_SB_SI)` }),\n row({ name: 'b', spellings: ['wien-constant'], value: B_WIEN_SI, unit: 'm*K', canonical: true, mathts: 'wienDisplacement',\n meaning: 'Wien displacement constant', source: `CODATA 2022, MathTS (${OWNER} B_WIEN_SI)` }),\n // IAU 2015 nominal solar parameter. M_sun in eval stays the rounded kilogram M_SUN_SI.\n row({ name: 'GM_sun', value: GM_SUN_SI, unit: 'm^3/s^2', canonical: true,\n meaning: 'IAU nominal solar gravitational parameter (GM)☉', source: `IAU 2015 Resolution B3 (${OWNER} GM_SUN_SI)` }),\n row({ name: 'Msun_iau', value: M_SUN_IAU_SI, unit: 'kg', canonical: true,\n meaning: 'IAU solar mass (GM)☉/G, the mass that reproduces GM_sun with G_SI', source: `GM_SUN_SI/G_SI (${OWNER} M_SUN_IAU_SI)` }),\n row({ name: 'm_u', value: M_U_SI, unit: 'kg', canonical: true, mathts: 'atomicMass',\n meaning: 'unified atomic mass unit (atomic mass constant)', source: `CODATA 2022, MathTS (${OWNER} M_U_SI)` }),\n row({ name: 'm_e', spellings: ['electron_mass', 'electron-mass'], value: M_E_SI, unit: 'kg', canonical: true, mathts: 'electronMass',\n meaning: 'electron mass', source: `CODATA 2022, MathTS (${OWNER} M_E_SI)` }),\n // ── overlay names for `upt eval` and the dimensional assignment only ────\n row({ name: 'mu_0', spellings: ['mu0'], value: MU0_SI, unit: 'H/m', mathts: 'magneticConstant',\n meaning: 'vacuum permeability 1/(ε₀ c²)', source: `1/(EPS0_SI·C_SI²) (${OWNER} MU0_SI)` }),\n row({ name: 'm_p', spellings: ['m_proton'], value: M_PROTON_SI, unit: 'kg', mathts: 'protonMass',\n meaning: 'proton mass', source: `CODATA 2022, MathTS (${OWNER} M_PROTON_SI)` }),\n row({ name: 'N_A', value: N_A_SI, unit: 'mol^-1', mathts: 'avogadro', exact: true,\n meaning: 'Avogadro constant', source: `exact SI, 2019 redefinition (${OWNER} N_A_SI)` }),\n row({ name: 'F', value: FARADAY_SI, unit: 'C/mol', mathts: 'faraday', exact: true,\n meaning: 'Faraday constant N_A e', source: `N_A_SI·E_SI (${OWNER} FARADAY_SI)` }),\n // R = N_A k_B, the molar gas constant the thermochemical records state in their titles.\n row({ name: 'R', value: N_A_SI * K_B_SI, unit: 'J/(mol*K)', mathts: 'gasConstant', exact: true,\n meaning: 'molar gas constant N_A k_B', source: `N_A_SI·K_B_SI (${OWNER})` }),\n row({ name: 'M_sun', value: M_SUN_SI, unit: 'kg',\n meaning: 'solar mass, the repo-conventional kilogram value', source: `${OWNER} M_SUN_SI` }),\n // `curvature_k` and `scale_factor` are the Friedmann curvature extension\n // (the frozen `CE-friedmann` entry is the flat term).\n row({ name: 'curvature_k', value: 0, unit: '1',\n meaning: 'Friedmann curvature index, flat by default', source: 'this registry (flat default 0)' }),\n row({ name: 'scale_factor', value: 1, unit: 'm',\n meaning: 'Friedmann scale factor, unit by default', source: 'this registry (default 1)' }),\n row({ name: 'sigma_T', value: THOMSON_CROSS_SECTION_SI, unit: 'm^2', mathts: 'thomsonCrossSection',\n meaning: 'Thomson cross section', source: `CODATA 2022, MathTS (${OWNER} THOMSON_CROSS_SECTION_SI)` }),\n row({ name: 'lane_emden_omega_3', quantity: 'lane-emden-omega-3', value: LANE_EMDEN_OMEGA3, unit: '1',\n meaning: 'Lane–Emden n = 3 dimensionless radius', source: `${OWNER} LANE_EMDEN_OMEGA3` }),\n row({ name: 'euler_gamma', value: EULER_GAMMA, unit: '1',\n meaning: 'Euler–Mascheroni constant γ', source: `${OWNER} EULER_GAMMA` }),\n // GRW mass amplification: λ = λ₀ · (m / m₀), with λ₀ a rate and m₀ a mass.\n // The two numbers are the catalog expression's, so the rate is unchanged.\n row({ name: 'grw_lambda0', value: 1e-16, unit: 'Hz',\n meaning: 'GRW localization rate λ₀', source: 'catalog expression (Ghirardi–Rimini–Weber 1986)' }),\n row({ name: 'grw_m0', value: 1.67e-27, unit: 'kg',\n meaning: 'GRW reference mass m₀ (a nucleon)', source: 'catalog expression (Ghirardi–Rimini–Weber 1986)' }),\n];\n\nconst BY_SPELLING = new Map<string, ConstantRow>();\nfor (const constant of CONSTANT_ROWS) {\n for (const spelling of [constant.name, ...constant.spellings]) {\n if (BY_SPELLING.has(spelling)) throw new Error(`constant registry: '${spelling}' is spelled twice`);\n BY_SPELLING.set(spelling, constant);\n }\n}\n\n/** The registered constant row `spelling` names, or undefined. @internal */\nexport function constantRow(spelling: string): ConstantRow | undefined {\n return BY_SPELLING.get(spelling);\n}\n"]}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* SI dimensional signatures of fundamental
|
|
3
|
-
*
|
|
2
|
+
* SI dimensional signatures of a few fundamental constants, projected from
|
|
3
|
+
* the constant registry (`symbolic-constants.ts`), which derives each
|
|
4
4
|
* dimension from the constant's SI unit. Values live in `core/constants.ts`.
|
|
5
|
+
* Only the names the tests read are projected; a projection nothing reads is
|
|
6
|
+
* a second copy of a registry row, and `constantRecord(name).dim` is the
|
|
7
|
+
* owner (`G` and `e` were withdrawn for that reason).
|
|
5
8
|
*
|
|
6
9
|
* @module dimensional/constants
|
|
7
10
|
*/
|
|
@@ -10,12 +13,8 @@ import { type Dimension } from './types.js';
|
|
|
10
13
|
export declare const hbar: Dimension;
|
|
11
14
|
/** Speed of light c — velocity [L T^-1]. */
|
|
12
15
|
export declare const c: Dimension;
|
|
13
|
-
/** Newton's gravitational constant G — [L^3 M^-1 T^-2]. */
|
|
14
|
-
export declare const G: Dimension;
|
|
15
16
|
/** Boltzmann constant k_B — energy / temperature [M L^2 T^-2 Θ^-1]. */
|
|
16
17
|
export declare const k_B: Dimension;
|
|
17
|
-
/** Elementary charge e — [T I] (coulombs). */
|
|
18
|
-
export declare const e: Dimension;
|
|
19
18
|
/** Planck length ℓ_P — [L]. */
|
|
20
19
|
export declare const l_P: Dimension;
|
|
21
20
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/dimensional/constants.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/dimensional/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAKpD,uDAAuD;AACvD,eAAO,MAAM,IAAI,EAAE,SAAsB,CAAC;AAE1C,4CAA4C;AAC5C,eAAO,MAAM,CAAC,EAAE,SAAmB,CAAC;AAEpC,uEAAuE;AACvE,eAAO,MAAM,GAAG,EAAE,SAAqB,CAAC;AAExC,+BAA+B;AAC/B,eAAO,MAAM,GAAG,EAAE,SAAkB,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* SI dimensional signatures of fundamental
|
|
3
|
-
*
|
|
2
|
+
* SI dimensional signatures of a few fundamental constants, projected from
|
|
3
|
+
* the constant registry (`symbolic-constants.ts`), which derives each
|
|
4
4
|
* dimension from the constant's SI unit. Values live in `core/constants.ts`.
|
|
5
|
+
* Only the names the tests read are projected; a projection nothing reads is
|
|
6
|
+
* a second copy of a registry row, and `constantRecord(name).dim` is the
|
|
7
|
+
* owner (`G` and `e` were withdrawn for that reason).
|
|
5
8
|
*
|
|
6
9
|
* @module dimensional/constants
|
|
7
10
|
*/
|
|
@@ -12,12 +15,8 @@ const of = (name) => constantRecord(name).dim;
|
|
|
12
15
|
export const hbar = of('hbar');
|
|
13
16
|
/** Speed of light c — velocity [L T^-1]. */
|
|
14
17
|
export const c = of('c');
|
|
15
|
-
/** Newton's gravitational constant G — [L^3 M^-1 T^-2]. */
|
|
16
|
-
export const G = of('G');
|
|
17
18
|
/** Boltzmann constant k_B — energy / temperature [M L^2 T^-2 Θ^-1]. */
|
|
18
19
|
export const k_B = of('k_B');
|
|
19
|
-
/** Elementary charge e — [T I] (coulombs). */
|
|
20
|
-
export const e = of('e');
|
|
21
20
|
/** Planck length ℓ_P — [L]. */
|
|
22
21
|
export const l_P = LENGTH;
|
|
23
22
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/dimensional/constants.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/dimensional/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAkB,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,EAAE,GAAG,CAAC,IAAY,EAAa,EAAE,CAAC,cAAc,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC;AAElE,uDAAuD;AACvD,MAAM,CAAC,MAAM,IAAI,GAAc,EAAE,CAAC,MAAM,CAAC,CAAC;AAE1C,4CAA4C;AAC5C,MAAM,CAAC,MAAM,CAAC,GAAc,EAAE,CAAC,GAAG,CAAC,CAAC;AAEpC,uEAAuE;AACvE,MAAM,CAAC,MAAM,GAAG,GAAc,EAAE,CAAC,KAAK,CAAC,CAAC;AAExC,+BAA+B;AAC/B,MAAM,CAAC,MAAM,GAAG,GAAc,MAAM,CAAC","sourcesContent":["/**\n * SI dimensional signatures of a few fundamental constants, projected from\n * the constant registry (`symbolic-constants.ts`), which derives each\n * dimension from the constant's SI unit. Values live in `core/constants.ts`.\n * Only the names the tests read are projected; a projection nothing reads is\n * a second copy of a registry row, and `constantRecord(name).dim` is the\n * owner (`G` and `e` were withdrawn for that reason).\n *\n * @module dimensional/constants\n */\n\nimport { LENGTH, type Dimension } from './types.js';\nimport { constantRecord } from './symbolic-constants.js';\n\nconst of = (name: string): Dimension => constantRecord(name)!.dim;\n\n/** Reduced Planck constant ℏ — action [M L^2 T^-1]. */\nexport const hbar: Dimension = of('hbar');\n\n/** Speed of light c — velocity [L T^-1]. */\nexport const c: Dimension = of('c');\n\n/** Boltzmann constant k_B — energy / temperature [M L^2 T^-2 Θ^-1]. */\nexport const k_B: Dimension = of('k_B');\n\n/** Planck length ℓ_P — [L]. */\nexport const l_P: Dimension = LENGTH;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curvature-composite.js","sourceRoot":"","sources":["../../src/dimensional/curvature-composite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAwDH,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA6C;IAC/E,gBAAgB,EAAE;QAChB,gBAAgB,EAAE,sBAAsB;QACxC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KAChE;IACD,cAAc,EAAE;QACd,gBAAgB,EAAE,oBAAoB;QACtC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KAChE;IACD,iBAAiB,EAAE;QACjB,gBAAgB,EAAE,oBAAoB;QACtC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KAChE;IACD,kBAAkB,EAAE;QAClB,yFAAyF;QACzF,gBAAgB,EAAE,cAAc;QAChC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KAChE;IACD,aAAa,EAAE;QACb,gBAAgB,EAAE,sBAAsB;QACxC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KAChE;IACD,oBAAoB,EAAE;QACpB,gBAAgB,EAAE,QAAQ;QAC1B,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KAChE;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"curvature-composite.js","sourceRoot":"","sources":["../../src/dimensional/curvature-composite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAwDH,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA6C;IAC/E,gBAAgB,EAAE;QAChB,gBAAgB,EAAE,sBAAsB;QACxC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KAChE;IACD,cAAc,EAAE;QACd,gBAAgB,EAAE,oBAAoB;QACtC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KAChE;IACD,iBAAiB,EAAE;QACjB,gBAAgB,EAAE,oBAAoB;QACtC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KAChE;IACD,kBAAkB,EAAE;QAClB,yFAAyF;QACzF,gBAAgB,EAAE,cAAc;QAChC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KAChE;IACD,aAAa,EAAE;QACb,gBAAgB,EAAE,sBAAsB;QACxC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KAChE;IACD,oBAAoB,EAAE;QACpB,gBAAgB,EAAE,QAAQ;QAC1B,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KAChE;CACF,CAAC","sourcesContent":["/**\n * Curvature composite-AST factory (v0.6.0 Phase 3, Task 3.9).\n *\n * PD-6 trigger fires: Weyl is the 5th curvature primitive (after\n * Riemann/Ricci/Einstein/Bianchi from v0.5.0). The 4-kind parallel\n * duplication is now extracted into a shared factory.\n *\n * Net LOC change: −180 (per design Decision #5).\n *\n * P-1 fix: `CurvatureCompositeNode<K, S>` is an intersection type, not an\n * interface with an unused S. Without the intersection, the per-kind\n * slot type-safety would silently drop (the S parameter would be\n * decorative and TypeScript would not compose it into the result).\n *\n * @module dimensional/curvature-composite\n */\n\nimport type { Dimension } from './types.js';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// CurvatureKind discriminant union\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Discriminant union of all curvature-composite AST node kinds in UPT v0.6.0.\n *\n * Six curvature primitives:\n * - `riemann-tensor` — R^ρ_{σμν} (rank-4, 1-up 3-down, [L⁻²])\n * - `ricci-tensor` — R_{μν} (rank-2 lower-lower, [L⁻²])\n * - `einstein-tensor` — G_{μν} (rank-2 lower-lower, [L⁻²])\n * - `bianchi-residual` — B_{λμνρσ} (rank-5 lower, [L⁻³])\n * - `weyl-tensor` — C^ρ_{σμν} (rank-4, 1-up 3-down, [L⁻²])\n * - `kretschmann-scalar` — K (scalar, [L⁻⁴])\n *\n * @public\n */\nexport type CurvatureKind =\n | 'riemann-tensor'\n | 'ricci-tensor'\n | 'einstein-tensor'\n | 'bianchi-residual'\n | 'weyl-tensor'\n | 'kretschmann-scalar';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// CurvatureKindSpec — per-kind shape + dim descriptor\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Per-kind specification record used by the registry.\n *\n * `freeIndicesShape` is a human-readable summary of the free-index structure:\n * - `'rank-4-1upper-3lower'` — 1 upper + 3 lower (Riemann, Weyl)\n * - `'rank-2-lower-lower'` — 2 lower (Ricci, Einstein)\n * - `'rank-3-lower'` — the Bianchi residual B_{λμνρσ}, which has FIVE lower\n * indices. The \"3\" is not the rank: it counts the three\n * cyclic terms over (λ, μ, ν) in\n * B_{λμνρσ} = ∇_λ R_{μνρσ} + ∇_μ R_{νλρσ} + ∇_ν R_{λμρσ}.\n * The name stays because the registry is public.\n * - `'scalar'` — 0 free indices (Kretschmann)\n *\n * `componentDim` is the SI dimension of each component in the F8/I3 convention\n * (metric is dimensionless, coordinates carry [L]).\n *\n * @public\n */\ninterface CurvatureKindSpec {\n readonly freeIndicesShape: 'rank-4-1upper-3lower' | 'rank-2-lower-lower' | 'rank-3-lower' | 'scalar';\n readonly componentDim: Dimension;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// CURVATURE_KIND_REGISTRY\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Registry mapping each `CurvatureKind` to its shape + dimensional spec.\n *\n * Used by:\n * - Tests: to assert all 6 kinds are registered and that Riemann + Weyl\n * share the rank-4 shape (refactor-only invariant).\n * - Future lowering consolidation: `CURVATURE_KIND_REGISTRY[node.kind]`\n * can supply common validation data without per-kind duplication.\n *\n * @public\n */\nexport const CURVATURE_KIND_REGISTRY: Record<CurvatureKind, CurvatureKindSpec> = {\n 'riemann-tensor': {\n freeIndicesShape: 'rank-4-1upper-3lower',\n componentDim: { L: -2, M: 0, T: 0, I: 0, Theta: 0, N: 0, J: 0 },\n },\n 'ricci-tensor': {\n freeIndicesShape: 'rank-2-lower-lower',\n componentDim: { L: -2, M: 0, T: 0, I: 0, Theta: 0, N: 0, J: 0 },\n },\n 'einstein-tensor': {\n freeIndicesShape: 'rank-2-lower-lower',\n componentDim: { L: -2, M: 0, T: 0, I: 0, Theta: 0, N: 0, J: 0 },\n },\n 'bianchi-residual': {\n // Five lower indices; '3' counts the cyclic terms, not the rank (see CurvatureKindSpec).\n freeIndicesShape: 'rank-3-lower',\n componentDim: { L: -3, M: 0, T: 0, I: 0, Theta: 0, N: 0, J: 0 },\n },\n 'weyl-tensor': {\n freeIndicesShape: 'rank-4-1upper-3lower',\n componentDim: { L: -2, M: 0, T: 0, I: 0, Theta: 0, N: 0, J: 0 },\n },\n 'kretschmann-scalar': {\n freeIndicesShape: 'scalar',\n componentDim: { L: -4, M: 0, T: 0, I: 0, Theta: 0, N: 0, J: 0 },\n },\n};\n\n// ─────────────────────────────────────────────────────────────────────────────\n// CurvatureCompositeNode<K, S> — shared factory type\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Generic factory type for all curvature-composite AST nodes.\n *\n * **P-1 fix (v0.6.0 plan-vet):** Must be an intersection type, not an\n * interface with an unused type parameter. The intersection `{ kind: K } & S`\n * ensures TypeScript actually composes the kind-specific slot type `S` into\n * the resulting type, giving real discriminant + kind-specific type safety.\n *\n * Usage (type alias):\n * ```typescript\n * type RicciTensorNode = CurvatureCompositeNode<'ricci-tensor', {\n * readonly riemann: RiemannTensorNode;\n * }>;\n * ```\n *\n * The intersection produces:\n * ```typescript\n * { readonly kind: 'ricci-tensor' } & { readonly riemann: RiemannTensorNode }\n * // ≡ { readonly kind: 'ricci-tensor'; readonly riemann: RiemannTensorNode }\n * ```\n *\n * @public\n */\nexport type CurvatureCompositeNode<K extends CurvatureKind, S extends object> = {\n readonly kind: K;\n} & S;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curvature-invariants.js","sourceRoot":"","sources":["../../src/dimensional/curvature-invariants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAQH,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAwCnE;;;GAGG;AACH,MAAM,UAAU,GAAc,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAEhF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAA2B;IAE3B,qEAAqE;IACrE,yEAAyE;IACzE,yEAAyE;IACzE,oEAAoE;IACpE,iEAAiE;IACjE,oCAAoC;IACpC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEpC,kCAAkC;IAClC,OAAO;QACL,GAAG,EAAE,UAAU;QACf,WAAW,EAAE,IAAI,GAAG,EAAE;KACvB,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"curvature-invariants.js","sourceRoot":"","sources":["../../src/dimensional/curvature-invariants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAQH,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAwCnE;;;GAGG;AACH,MAAM,UAAU,GAAc,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAEhF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAA2B;IAE3B,qEAAqE;IACrE,yEAAyE;IACzE,yEAAyE;IACzE,oEAAoE;IACpE,iEAAiE;IACjE,oCAAoC;IACpC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEpC,kCAAkC;IAClC,OAAO;QACL,GAAG,EAAE,UAAU;QACf,WAAW,EAAE,IAAI,GAAG,EAAE;KACvB,CAAC;AACJ,CAAC","sourcesContent":["/**\n * Kretschmann scalar AST node + validator (v0.6.0 Phase 3, Task 3.5).\n *\n * The Kretschmann scalar (also spelled \"Kretschner\") is the quadratic\n * curvature invariant:\n *\n * K = R_{ρσμν} R^{ρσμν}\n *\n * formed by full contraction of the Riemann tensor with itself (all four\n * indices raised on the second factor via the inverse metric). K is a\n * genuine spacetime scalar — coordinate-independent, diff-invariant — and\n * the canonical diagnostic for curvature-singularity detection: K diverges\n * at genuine singularities (Schwarzschild r→0) but is finite at coordinate\n * singularities (Schwarzschild r=r_s).\n *\n * Closed-form for Schwarzschild: K(r) = 48 G² M² / (c⁴ r⁶).\n *\n * Dimensional analysis:\n * - Riemann component: [L⁻²] (F8/I3 convention in connection-validators.ts)\n * - K = R × R: [L⁻²] × [L⁻²] = [L⁻⁴]\n *\n * Mirrors the WeylTensorNode pattern in weyl-validators.ts — own validator\n * function; wired via case arm in validator.ts + lowering stub in lowering.ts.\n *\n * @module dimensional/curvature-invariants\n */\n\nimport type { Dimension } from './types.js';\nimport type {\n RiemannTensorNode,\n MetricTensorNode,\n KretschmannScalarNode,\n} from './ast-types.js';\nimport { validateRiemannTensor } from './connection-validators.js';\n\n// The Kretschmann node now lives in the leaf `ast-types.ts`; re-exported.\nexport type { KretschmannScalarNode } from './ast-types.js';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// KretschmannScalarNode — ExprNode kind 'kretschmann-scalar'\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * AST node for the Kretschmann scalar K = R_{ρσμν} R^{ρσμν}.\n *\n * `riemann`: the Riemann tensor being contracted with itself. The validator\n * re-enters its own validator so structural checks (index variance,\n * metric signature) fire for the embedded sub-node.\n *\n * `metric`: the metric tensor used to raise all four indices on the second\n * copy of Riemann. Present for downstream numerical consumers\n * (computeKretschmann in src/numerical/kretschmann.ts). Its free indices\n * are NOT propagated by the validator (H1 — consumed internally).\n *\n * `componentDim`: [L⁻⁴] — Riemann [L⁻²] squared, hard-coded per F8/I3.\n *\n * @public\n */\n/**\n * v0.6.0 Task 3.10d: KretschmannScalarNode expressed via CurvatureCompositeNode<K, S>.\n * The runtime shape is identical — pure type-alias migration.\n */\n/**\n * Result of validating a KretschmannScalarNode.\n * @public\n */\nexport interface KretschmannScalarValidationResult {\n /** [L⁻⁴] — Kretschmann is Riemann-squared in dimension. */\n readonly dim: Dimension;\n /** Empty: K is a scalar (rank-0, all indices contracted). */\n readonly freeIndices: Map<string, { upper: number; lower: number }>;\n}\n\n/**\n * Dimension literal for [L⁻⁴].\n * Kept module-private; callers receive it through the return value.\n */\nconst DIM_L_NEG4: Dimension = { L: -4, M: 0, T: 0, I: 0, Theta: 0, N: 0, J: 0 };\n\n/**\n * Validate a `kretschmann-scalar` node.\n *\n * Re-enters `validateRiemannTensor` for the embedded `riemann` sub-node\n * (so its index-variance, metric-signature, and label-disjointness checks\n * all fire). Discards the Riemann's free-index map — K is a full contraction\n * and every index disappears. Mirrors the `validateRicciTensor` pattern in\n * curvature.ts for embedded-Riemann structural validation.\n *\n * Throws:\n * - Everything `validateRiemannTensor` throws (PartialDerivativeIndexVarianceError,\n * MetricSignatureError, IndexLabelCollisionError) propagated from the\n * embedded Riemann check.\n *\n * Returns:\n * - `{ dim: [L⁻⁴], freeIndices: empty Map }` — scalar, no free indices.\n *\n * @public\n */\nexport function validateKretschmannScalar(\n node: KretschmannScalarNode,\n): KretschmannScalarValidationResult {\n // Re-validate the embedded Riemann. We pass node.riemann directly to\n // validateRiemannTensor (not via a callback, since KretschmannScalarNode\n // does not need to thread an infer() context for its sub-nodes — it only\n // needs the structural checks to fire, and the Riemann validator is\n // self-contained). Mirrors the validateRicciTensor invocation in\n // curvature.ts:validateRicciTensor.\n validateRiemannTensor(node.riemann);\n\n // K is a scalar: no free indices.\n return {\n dim: DIM_L_NEG4,\n freeIndices: new Map(),\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curvature.js","sourceRoot":"","sources":["../../src/dimensional/curvature.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"curvature.js","sourceRoot":"","sources":["../../src/dimensional/curvature.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Curvature-derived helpers — Ricci and Einstein (v0.5.0 Phase 1d).\n *\n * Module hosts the layer of GR objects derived by contraction of a\n * `RiemannTensorNode`:\n *\n * - `ricci(R)` → R_μν = R^λ_{λμν}\n * - `einstein(R)` → G_μν = R_μν − ½ g_μν R\n *\n * The Bianchi validator stays here. `bianchiResidual`, the evaluator that\n * calls `evaluateNumerical`, lives in `numerical/bianchi-residual.ts` so\n * this module does not import `numerical`.\n *\n * Separation rationale (Design §3 Task 1d): the bare `RiemannTensorNode`\n * stays in `connection-validators.ts` next to `CovariantDerivativeNode`\n * (both are *primary* curvature objects: connection + first-derivative).\n * Everything *contracted from* Riemann lives here — keeps the module\n * graph: tensor → metric → connection-validators → curvature.\n *\n * @module dimensional/curvature\n */\n\nimport type { Dimension } from './types.js';\n// Node/index types + ExprNode now live in the leaf `ast-types.ts` — no longer\n// imported from validator.ts (that back-edge formed a type-only cycle). The\n// curvature node types are re-exported below for existing importers.\nimport type {\n ExprNode,\n CovariantIndex,\n RiemannTensorNode,\n MetricTensorNode,\n RicciTensorNode,\n EinsteinTensorNode,\n BianchiResidualNode,\n} from './ast-types.js';\nimport { IndexLabelCollisionError } from './errors.js';\n\nexport type { RicciTensorNode, EinsteinTensorNode, BianchiResidualNode } from './ast-types.js';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Shared pattern-B callback type\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Shared callback shape used by every pattern-B validator (`validate\n * RicciTensor`, `validateEinsteinTensor`, `validateBianchiResidual`).\n *\n * The callback re-enters the Riemann validator for an embedded\n * `RiemannTensorNode`, returning the validated `{dim, freeIndices}`\n * pair without the surrounding validator-result envelope (the caller\n * is responsible for merging or discarding the free-index map per\n * the contraction it is performing).\n *\n * Co-located here with the three consumer functions (rather than in\n * `validator-registry.ts`) to avoid a `curvature.ts ↔ validator-\n * registry.ts` import cycle — the registry imports the validators\n * from this module, so this module must own the callback type.\n *\n * @internal\n */\nexport type RiemannChildCallback = (child: RiemannTensorNode) => {\n dim: Dimension;\n freeIndices: Map<string, { upper: number; lower: number }>;\n};\n\n// ─────────────────────────────────────────────────────────────────────────────\n// RicciTensorNode — new ExprNode kind\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * v0.5.0 Task 7: Ricci tensor AST node R_μν.\n *\n * Internally wraps a RiemannTensorNode and represents the contraction\n *\n * R_μν = R^λ_{μλν} (Carroll Eq. 3.91)\n *\n * Index-map on the wrapped Riemann (R^ρ_σμν per RiemannTensorNode):\n *\n * R^ρ σ μ ν\n * │ │ │ │\n * │ │ └── lowerIndices[1] = the dummy contraction slot (λ)\n * │ │ contracts against upperIndex.label (ρ ↔ λ)\n * │ └── lowerIndices[0] = free output index #1 (μ_out, lower)\n * └── upperIndex (ρ) — contracts against lowerIndices[1]\n * lowerIndices[2] = free output index #2 (ν_out, lower)\n *\n * After contraction: R_μν free indices = {μ_out: lower, ν_out: lower}, dim {L: -2}.\n *\n * NOTE (post-S1 correction, commit `76628c4`): prior to v0.5.0 Task 7 this\n * docstring incorrectly said `lowerIndices[0]` was the dummy slot. Carroll\n * Eq. 3.91 contracts on the SECOND lower (the μ slot in R^ρ_σμν), giving\n * R_σν after the contraction. The implementation in `validateRicciTensor`\n * below (lines ~87-101) is the authoritative reference. See memory entry\n * `feedback_v0_5_0_ricci_contraction_bug.md` for the bug history.\n *\n * The node is its own validation arm in validator.ts and its own lowering\n * arm in numerical/lowering.ts — same pattern as RiemannTensorNode (no\n * AST-rewrite; the contraction is a single primitive walked directly).\n *\n * @public\n */\n/**\n * v0.6.0 Task 3.10b: RicciTensorNode expressed via CurvatureCompositeNode<K, S>.\n * The runtime shape is identical — pure type-alias migration.\n */\n/**\n * Result of validating a RicciTensorNode.\n * @public\n */\ninterface RicciTensorValidationResult {\n readonly dim: Dimension;\n readonly freeIndices: Map<string, { upper: number; lower: number }>;\n}\n\n/**\n * Validate a `ricci-tensor` node.\n *\n * Throws:\n * - IndexLabelCollisionError if the embedded Riemann's two free output\n * labels (the σ slot — lowerIndices[0] — and the ν slot —\n * lowerIndices[2]) collide. (The contracted middle slot\n * lowerIndices[1] is invisible to this check; any label is allowed\n * there because it's a dummy.)\n *\n * The Riemann sub-node is validated structurally by re-entering its own\n * validator via the `validateRiemannChild` callback (so its signature\n * checks fire), but its free indices are NOT propagated — the ρ slot\n * collapses into the contraction with the μ slot (Carroll Eq. 3.91:\n * `R_μν = R^λ_{μλν}`), and the surviving σ / ν slots become the new\n * free indices of the Ricci tensor.\n */\nexport function validateRicciTensor(\n node: RicciTensorNode,\n validateRiemannChild: RiemannChildCallback,\n): RicciTensorValidationResult {\n // Re-validate the embedded Riemann so its signature checks (upperIndex /\n // lowerIndices variance, gLower / gInverse signature, free-index\n // disjointness) fire here too. We discard its freeIndices map: the ρ slot\n // and the μ slot (lowerIndices[1]) are the contraction; the surviving σ\n // (lowerIndices[0]) and ν (lowerIndices[2]) are reconstructed below from\n // the authoritative axis source.\n const rResult = validateRiemannChild(node.riemann);\n\n // Dim is inherited 1:1 from the Riemann (contraction does not change\n // per-component units — multiplying by δ^ρ_μ is dimensionless).\n const dim = rResult.dim;\n\n // Surviving free indices: Ricci's μ_out ← lowerIndices[0] (σ slot),\n // Ricci's ν_out ← lowerIndices[2] (ν slot). Contracted middle slot\n // (lowerIndices[1]) is dummied and not surfaced as free.\n const muOutIdx: CovariantIndex = node.riemann.lowerIndices[0];\n const nuOutIdx: CovariantIndex = node.riemann.lowerIndices[2];\n if (muOutIdx.label === nuOutIdx.label) {\n throw new IndexLabelCollisionError(muOutIdx.label, 2, ['ricci-tensor']);\n }\n\n const freeIndices = new Map<string, { upper: number; lower: number }>();\n freeIndices.set(muOutIdx.label, { upper: 0, lower: 1 });\n freeIndices.set(nuOutIdx.label, { upper: 0, lower: 1 });\n\n return { dim, freeIndices };\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// ricci() — user-facing constructor\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Build the Ricci tensor R_μν = R^λ_{μλν} as a composite ExprNode.\n *\n * **Convention (Carroll Eq. 3.91).** Contract upper-ρ against the SECOND\n * lower slot — the μ position in R^ρ_σμν, i.e., `lowerIndices[1]` in the\n * RiemannTensorNode storage. The surviving free indices are the σ slot\n * (`lowerIndices[0]`) → Ricci's first free output μ_out, and the ν slot\n * (`lowerIndices[2]`) → Ricci's second free output ν_out.\n *\n * Index mapping after contraction:\n * - upperIndex (ρ) → contracted with lowerIndices[1] (the μ slot, λ dummy)\n * - lowerIndices[0] (σ) → Ricci's free output index 0 (μ_out)\n * - lowerIndices[2] (ν) → Ricci's free output index 1 (ν_out)\n * Result: R_μν with free indices {σ_label: lower, ν_label: lower}\n *\n * Index-map diagram:\n * R^ρ _ σ _ μ _ ν (RiemannTensorNode slots)\n * ↑ ↑\n * upper lower[1] <- contract these two (ρ = μ = λ)\n * lower[0] lower[2] <- become R_μν free indices\n *\n * **Why not \"upper ↔ lowerIndices[0]\" (the first-lower trace)?** The trace\n * `R^λ_{λμν}` over the first pair (ρ ↔ σ) is identically zero by the\n * first-pair antisymmetry of the (lowered) Riemann tensor — for any\n * metric, including non-vacuum solutions like de Sitter. The\n * constant-curvature identity `R_μν = (n-1) K g_μν` (Carroll §8.1,\n * `R = 4Λ` in n=4) only matches the upper↔second-lower contraction.\n * The de-Sitter Ricci-scalar test in `tests/dimensional/ricci.test.ts`\n * is the discriminating fixture that pins this convention.\n *\n * The returned tree is a single `ricci-tensor` node wrapping the supplied\n * Riemann. Validator and numerical lowering each have a dedicated arm —\n * no AST rewrite into a `tensor-product`-of-Riemann happens here (the\n * RiemannTensorNode is not contractable in the v0.3.5 tensor-product\n * einsum sense; the contraction is a primitive operation walked directly).\n *\n * @public\n */\nexport function ricci(R: RiemannTensorNode): ExprNode {\n return { kind: 'ricci-tensor', riemann: R };\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// EinsteinTensorNode — new ExprNode kind (Task 8)\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * v0.5.0 Task 8: Einstein tensor AST node G_μν = R_μν − ½ R g_μν.\n *\n * Wraps a `RiemannTensorNode` (contracted via the same Carroll-Eq.-3.91\n * convention as `RicciTensorNode` — see ricci()'s JSDoc) plus the metric\n * pair needed for the scalar trace `R = g^μν R_μν` and the `½ R g_μν`\n * subtraction term. Storage mirrors the `RicciTensorNode` pattern: own\n * validator + lowering arms, no AST rewrite into op('-', ricci, scale·g).\n *\n * Free indices match `R.lowerIndices[0]` and `R.lowerIndices[2]` — same as\n * ricci(R), with the same Carroll-Eq.-3.91 contraction; the embedded\n * Riemann's middle slot lowerIndices[1] is the dummy λ.\n *\n * Dim: {L: -2} — inherited from Riemann/Ricci (both `R_μν` and `R · g_μν`\n * carry 1/L²; subtraction preserves dim).\n *\n * @public\n */\n/**\n * v0.6.0 Task 3.10b: EinsteinTensorNode expressed via CurvatureCompositeNode<K, S>.\n * The runtime shape is identical — pure type-alias migration.\n */\n/**\n * Result of validating an EinsteinTensorNode.\n * @public\n */\ninterface EinsteinTensorValidationResult {\n readonly dim: Dimension;\n readonly freeIndices: Map<string, { upper: number; lower: number }>;\n}\n\n/**\n * Validate an `einstein-tensor` node.\n *\n * Delegates structural checks to the embedded Riemann via the\n * `validateRiemannChild` callback (same pattern as `validateRicciTensor`)\n * and reuses `validateRicciTensor` for the surviving free-index labels —\n * an Einstein tensor's free indices are exactly the Ricci tensor's free\n * indices (subtracting `½ R g_μν` with matching {μ_out, ν_out} labels\n * preserves the index structure).\n *\n * The `gLower` / `gInverse` sub-nodes are deliberately NOT propagated as\n * free indices — they are consumed internally by the scalar-trace\n * contraction and the `½ R g_μν` multiplication (same H1 discipline as\n * RiemannTensorNode for its gLower/gInverse fields).\n *\n * Throws:\n * - Everything `validateRicciTensor` throws (IndexLabelCollisionError on\n * surviving free-index collision; MetricSignatureError /\n * PartialDerivativeIndexVarianceError from the inner Riemann).\n */\nexport function validateEinsteinTensor(\n node: EinsteinTensorNode,\n validateRiemannChild: RiemannChildCallback,\n): EinsteinTensorValidationResult {\n // Delegate to Ricci validation — the surviving free-index labels and dim\n // are identical (R_μν has the same {μ_out, ν_out} as G_μν, dim {L:-2}).\n const ricciNode: RicciTensorNode = { kind: 'ricci-tensor', riemann: node.riemann };\n const r = validateRicciTensor(ricciNode, validateRiemannChild);\n\n // Defense in depth: the `½ R g_μν` term involves g_μν, but its free\n // indices are NOT propagated — they are the same {μ_out, ν_out} as Ricci\n // by construction (we contract them down to a 4×4 in the same axis order\n // during lowering). Mirrors H1: gLower / gInverse on RiemannTensorNode.\n return { dim: r.dim, freeIndices: r.freeIndices };\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// einstein() — user-facing constructor\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Build the Einstein tensor G_μν = R_μν − ½ R g_μν as a composite ExprNode.\n *\n * **Convention.** The Einstein tensor adds the scalar-trace subtraction\n * term `½ R g_μν` to Ricci — it does NOT introduce a new contraction\n * convention. The inner Ricci `R_μν` inherits Carroll Eq. 3.91 from\n * `ricci(R)` (contraction on `lowerIndices[1]`, the middle/μ slot in\n * R^ρ_σμν; see RicciTensorNode JSDoc for the index-map diagram). The\n * scalar trace is `R = g^μν R_μν`. The result `G_μν` shares free indices\n * {μ_out, ν_out} with `ricci(R)`.\n *\n * **Algebra (sanity check).**\n * - de Sitter (n=4): `R_μν = Λ g_μν`, `R = 4Λ` ⇒\n * `G_μν = Λ g_μν − ½·4Λ·g_μν = −Λ g_μν`. Vacuum Einstein equation\n * `G_μν + Λ g_μν = 0` holds.\n * - Schwarzschild (vacuum): `R_μν ≡ 0`, `R = 0` ⇒ `G_μν ≡ 0`.\n * - Trace identity (any metric, n=4): `g^μν G_μν = R − ½·R·4 = −R`.\n *\n * **AST shape.** Single `einstein-tensor` node wrapping `R`, `gLower`,\n * `gInverse`. Validator and numerical lowering each have a dedicated arm;\n * no AST rewrite into `ricci(R) − ½ R g_μν` happens (the subtraction term\n * would need a tensor-valued scalar-multiply that the v0.3.5 tensor-product\n * einsum does not support directly). Same walk-directly pattern as Ricci.\n *\n * **Matter coupling is out of scope.** The vacuum / cosmological-constant\n * tests pin G_μν only; `G_μν = κ T_μν` (Einstein field equations with a\n * stress-energy source) is deferred to v0.6.0+.\n *\n * @public\n */\nexport function einstein(\n R: RiemannTensorNode,\n g: MetricTensorNode,\n gInverse: MetricTensorNode,\n): ExprNode {\n return { kind: 'einstein-tensor', riemann: R, gLower: g, gInverse };\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// BianchiResidualNode — new ExprNode kind (Task 9)\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * v0.5.0 Task 9: Second-Bianchi-identity residual AST node.\n *\n * Represents the cyclic-over-first-three-indices sum that vanishes by the\n * second Bianchi identity (Carroll Eq. 3.95):\n *\n * B_{λμνρσ} = ∇_λ R_{μνρσ} + ∇_μ R_{νλρσ} + ∇_ν R_{λμρσ} ≡ 0\n *\n * Storage: wraps the originating RiemannTensorNode. Lowering computes B\n * numerically by:\n * 1. Lowering the upper-ρ of the Riemann tensor JS-side via g_{aρ}.\n * 2. Computing ∂_λ R_{αβγδ} via a 4th-order centered FD (one MORE layer\n * on top of the Riemann lowering's already-FD-laden Γ + ∂Γ stack).\n * 3. Adding Christoffel-correction terms to form ∇_λ R_{μνρσ} (Approach 1:\n * canonical, not partial-only).\n * 4. Summing cyclically over (λ, μ, ν) with (ρ, σ) fixed.\n *\n * **Dim L⁻³.** R_{μνρσ} has dim L⁻² (inherited from R^ρ_{σμν}, since lowering\n * with the dimensionless metric preserves dim per our convention). One ∂/∂x\n * divides by L, giving L⁻³ on ∇R and on the cyclic sum B.\n *\n * **Free indices (5 lower):** λ, μ, ν, ρ, σ — taken from the same axis\n * convention as RiemannTensorNode.lowerIndices plus a fresh λ slot. To avoid\n * label collisions we synthesise `lambda` as the 5th index and reuse\n * R.lowerIndices[0..2] for {μ_out, ν_out, ρ_out}; the 4th wrapped slot\n * surfaces as `sigma_out`. (See `validateBianchiResidual` below for the\n * label-collision rule.)\n *\n * **Why not lower via the v0.3.0 `lower()` AST function?** lower() returns a\n * `tensor-product` node referencing the metric and operand by label/free-\n * index merge, intended for compositional expressions. The lowered Riemann\n * here is consumed point-wise by the FD stencil; building an AST product +\n * re-validating + re-lowering on every of the 25 FD samples is needless\n * machinery for a closed JS-side contraction. Matches the walk-directly\n * philosophy of Tasks 6, 7, 8.\n *\n * @public\n */\n/**\n * v0.6.0 Task 3.10c: BianchiResidualNode expressed via CurvatureCompositeNode<K, S>.\n * The runtime shape is identical — pure type-alias migration.\n */\n/**\n * Result of validating a BianchiResidualNode.\n * @public\n */\ninterface BianchiResidualValidationResult {\n readonly dim: Dimension;\n readonly freeIndices: Map<string, { upper: number; lower: number }>;\n}\n\n/**\n * Validate a `bianchi-residual` node.\n *\n * Inherits all structural checks from the embedded Riemann via\n * `validateRiemannChild`. The output freeIndices are 5 lower labels:\n *\n * - `lambda` — the synthesised FIRST cyclic-derivative axis (a new label;\n * must not collide with the wrapped Riemann's free labels)\n * - The Riemann's `lowerIndices[0]` label → μ_out\n * - The Riemann's `lowerIndices[1]` label → ν_out\n * - The Riemann's `lowerIndices[2]` label → ρ_out\n * - A synthesised `sigma_out` — the fourth Riemann index after lowering ρ.\n *\n * Throws:\n * - IndexLabelCollisionError if the synthesised `lambda` / `sigma_out`\n * labels collide with any wrapped-Riemann label.\n */\nexport function validateBianchiResidual(\n node: BianchiResidualNode,\n validateRiemannChild: RiemannChildCallback,\n): BianchiResidualValidationResult {\n // Re-validate the embedded Riemann for its own signature/index checks.\n validateRiemannChild(node.riemann);\n\n // Build the 5 free-index labels. The Riemann's lowerIndices[0..2] become\n // the μ_out, ν_out, ρ_out of the all-lower Riemann (after lowering ρ to a\n // synthesised 'sigma_out'... wait — the convention here is:\n // ∇_λ R_{αβγδ} has 5 indices: λ + 4 from the lowered Riemann.\n // The 4 from the lowered Riemann are: the freshly-lowered ρ (renamed\n // from `upperIndex.label`) + lowerIndices[0..2].\n // We use literal label `lambda` for the cyclic-deriv axis. The freshly-\n // lowered ρ takes a literal `alpha_lower` label.\n //\n // Collision rule: `lambda` and `alpha_lower` must not collide with any of\n // {upperIndex.label, lowerIndices[0..2].label}.\n const wrappedLabels = new Set<string>([\n node.riemann.upperIndex.label,\n node.riemann.lowerIndices[0].label,\n node.riemann.lowerIndices[1].label,\n node.riemann.lowerIndices[2].label,\n ]);\n const synthesised = ['lambda', 'alpha_lower'];\n for (const s of synthesised) {\n if (wrappedLabels.has(s)) {\n throw new IndexLabelCollisionError(s, 2, ['bianchi-residual']);\n }\n }\n\n // Per Design §3 Task 1f / F8 / I3: Bianchi residual carries 1/L³ (one\n // covariant derivative on R, which is 1/L²).\n const dim: Dimension = { L: -3, M: 0, T: 0, I: 0, Theta: 0, N: 0, J: 0 };\n\n // 5 free indices, all lower.\n const freeIndices = new Map<string, { upper: number; lower: number }>();\n freeIndices.set('lambda', { upper: 0, lower: 1 });\n freeIndices.set('alpha_lower', { upper: 0, lower: 1 });\n freeIndices.set(node.riemann.lowerIndices[0].label, { upper: 0, lower: 1 });\n freeIndices.set(node.riemann.lowerIndices[1].label, { upper: 0, lower: 1 });\n freeIndices.set(node.riemann.lowerIndices[2].label, { upper: 0, lower: 1 });\n\n return { dim, freeIndices };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dimension-inference.d.ts","sourceRoot":"","sources":["../../src/dimensional/dimension-inference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"dimension-inference.d.ts","sourceRoot":"","sources":["../../src/dimensional/dimension-inference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,GAAG,QAAQ,CAa1F;AAQD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,SAAS,GACnB,SAAS,GAAG,IAAI,CAyBlB"}
|
|
@@ -18,9 +18,8 @@
|
|
|
18
18
|
* @module dimensional/dimension-inference
|
|
19
19
|
*/
|
|
20
20
|
import { DIMENSIONLESS, LENGTH } from './types.js';
|
|
21
|
-
import { divide, power, EXPONENT_TOL } from './algebra.js';
|
|
21
|
+
import { BASES, divide, power, EXPONENT_TOL } from './algebra.js';
|
|
22
22
|
import { validate } from './validator.js';
|
|
23
|
-
const BASES = ['L', 'M', 'T', 'I', 'Theta', 'N', 'J'];
|
|
24
23
|
/**
|
|
25
24
|
* Rebuild `node`, replacing the dimension of every `symbol` named `name` with
|
|
26
25
|
* `dim`. Walks the scalar arms (`symbol`/`op`/`transcendental`/`abs`); other
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dimension-inference.js","sourceRoot":"","sources":["../../src/dimensional/dimension-inference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"dimension-inference.js","sourceRoot":"","sources":["../../src/dimensional/dimension-inference.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Single-unknown dimensional inference.\n *\n * Given a parsed scalar `ExprNode` (e.g. the RHS of a user equation) in which\n * exactly one symbol's dimension is unknown, and the known dimension the whole\n * expression must equal (the target), recover the unknown's dimension from\n * dimensional homogeneity — or abstain (`null`) when it is not uniquely pinned\n * (the unknown is sum-constrained, absent, or appears non-cleanly).\n *\n * Method (no symbolic differentiation): probe the unknown with two dimensions\n * and read off its net power. With the unknown set to `DIMENSIONLESS` the\n * expression has dimension `D0`; set to `LENGTH` it has `D1`. The unknown enters\n * the dimension as a single power `p`, so `D1 / D0 = LENGTH^p`; if that quotient\n * is a clean power of the probe (only the `L` component nonzero), then from\n * `target = D0 · unknown^p` we get `unknown = (target / D0)^(1/p)`. Pure; reuses\n * the dimensional `algebra`.\n *\n * @module dimensional/dimension-inference\n */\n\nimport type { Dimension } from './types.js';\nimport { DIMENSIONLESS, LENGTH } from './types.js';\nimport { BASES, divide, power, EXPONENT_TOL } from './algebra.js';\nimport type { ExprNode } from './validator.js';\nimport { validate } from './validator.js';\n\n/**\n * Rebuild `node`, replacing the dimension of every `symbol` named `name` with\n * `dim`. Walks the scalar arms (`symbol`/`op`/`transcendental`/`abs`); other\n * arms are returned unchanged (they do not occur in parsed scalar expressions).\n *\n * @public\n */\nexport function substituteSymbolDim(node: ExprNode, name: string, dim: Dimension): ExprNode {\n switch (node.kind) {\n case 'symbol':\n return node.name === name ? { ...node, dim } : node;\n case 'op':\n return { ...node, args: node.args.map((a) => substituteSymbolDim(a, name, dim)) };\n case 'transcendental':\n return { ...node, arg: substituteSymbolDim(node.arg, name, dim) };\n case 'abs':\n return { ...node, arg: substituteSymbolDim(node.arg, name, dim) };\n default:\n return node;\n }\n}\n\n/** Homogeneous dimension of `node`, or `null` if it is not well-formed. */\nfunction dimensionOrNull(node: ExprNode): Dimension | null {\n const r = validate(node);\n return r.ok && r.inferredDimension !== null ? r.inferredDimension : null;\n}\n\n/**\n * Infer the dimension of `unknown` in `expr` such that `expr` has dimension\n * `targetDim`, or `null` when it is not uniquely determined.\n *\n * @public\n */\nexport function inferUnknownDimension(\n expr: ExprNode,\n unknown: string,\n targetDim: Dimension,\n): Dimension | null {\n const d0 = dimensionOrNull(substituteSymbolDim(expr, unknown, DIMENSIONLESS));\n const d1 = dimensionOrNull(substituteSymbolDim(expr, unknown, LENGTH));\n if (d0 === null || d1 === null) return null;\n\n // D1 / D0 must be a clean power of the probe (LENGTH): only the L exponent.\n const quotient = divide(d1, d0);\n const p = quotient.L;\n if (p === 0) return null; // the unknown does not affect the dimension\n for (const base of BASES) {\n if (base !== 'L' && quotient[base] !== 0) return null; // not a clean power\n }\n const result = power(divide(targetDim, d0), 1 / p);\n // Snap each exponent to its nearest integer within tolerance, then abstain if\n // any is GENUINELY fractional (e.g. x^2 = [length] ⟹ [length]^½ is not a real\n // physical dimension). The tolerance absorbs FP round-off that arrives in the\n // target from a v0.20 fractional-power computation, so a real integer answer\n // (L = 2 + ε) is not spuriously rejected — consistent with `equals` (bb15432).\n const snapped = { ...result };\n for (const base of BASES) {\n const rounded = Math.round(result[base]);\n if (Math.abs(result[base] - rounded) > EXPONENT_TOL) return null;\n snapped[base] = rounded;\n }\n return snapped;\n}\n"]}
|
|
@@ -3,9 +3,14 @@
|
|
|
3
3
|
* so CLI users can declare a quantity's dimensions without TypeScript.
|
|
4
4
|
*
|
|
5
5
|
* Accepts (in priority order):
|
|
6
|
-
* 1. a named dimension —
|
|
7
|
-
* `
|
|
8
|
-
* `temperature`, `entropy`, `charge`, `area`,
|
|
6
|
+
* 1. a named dimension — the `types.ts` constants (`length`, `time`,
|
|
7
|
+
* `mass`, `velocity`, `acceleration`, `force`, `energy`, `power`,
|
|
8
|
+
* `action`, `frequency`, `temperature`, `entropy`, `charge`, `area`,
|
|
9
|
+
* `dimensionless`, `density`) and the dimensions of the SI units
|
|
10
|
+
* `m^3`, `Pa`, `Pa*s`, `ohm`, `T`, `H/m`, `A`, `mol`, `cd` under the
|
|
11
|
+
* names `volume`, `pressure`, `viscosity`, `resistance`,
|
|
12
|
+
* `magnetic-field`, `permeability`, `current`, `amount` (or
|
|
13
|
+
* `amount-of-substance`), `luminous-intensity`;
|
|
9
14
|
* 2. a fundamental constant by name — `hbar`/`ℏ`, `c`, `G`, `k_B`/`kB`,
|
|
10
15
|
* `e` (its SI dimension);
|
|
11
16
|
* 3. a product/quotient of named dimensions or constants — `power/area`,
|
|
@@ -22,10 +27,11 @@
|
|
|
22
27
|
* ({@link parseFormulaPNode}). The dimension notation differs from a formula
|
|
23
28
|
* only in spelling, and {@link formulaSyntax} rewrites those spellings
|
|
24
29
|
* before the parse: a `.` between factors is `*`, a space between factors is
|
|
25
|
-
* `*`, a glued exponent (`L2`, `T-2`) takes its
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
30
|
+
* `*`, a glued exponent (`L2`, `T-2`) takes its `^` unless the letters and
|
|
31
|
+
* the digit together spell a registered atom (`mu0`, `eps0`), a fractional
|
|
32
|
+
* exponent (`T^1/2`) is parenthesized, and a hyphen inside a name
|
|
33
|
+
* (`magnetic-field`) is `_`. There is no subtraction in a dimension, so `-`
|
|
34
|
+
* after a name is always an exponent's sign.
|
|
29
35
|
*
|
|
30
36
|
* @module dimensional/dimension-spec
|
|
31
37
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dimension-spec.d.ts","sourceRoot":"","sources":["../../src/dimensional/dimension-spec.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"dimension-spec.d.ts","sourceRoot":"","sources":["../../src/dimensional/dimension-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAyB5C,4BAA4B;AAC5B,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAqCD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAA;CAAE,EACf,CAAC;AAkI1F,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAkB1D"}
|
|
@@ -3,9 +3,14 @@
|
|
|
3
3
|
* so CLI users can declare a quantity's dimensions without TypeScript.
|
|
4
4
|
*
|
|
5
5
|
* Accepts (in priority order):
|
|
6
|
-
* 1. a named dimension —
|
|
7
|
-
* `
|
|
8
|
-
* `temperature`, `entropy`, `charge`, `area`,
|
|
6
|
+
* 1. a named dimension — the `types.ts` constants (`length`, `time`,
|
|
7
|
+
* `mass`, `velocity`, `acceleration`, `force`, `energy`, `power`,
|
|
8
|
+
* `action`, `frequency`, `temperature`, `entropy`, `charge`, `area`,
|
|
9
|
+
* `dimensionless`, `density`) and the dimensions of the SI units
|
|
10
|
+
* `m^3`, `Pa`, `Pa*s`, `ohm`, `T`, `H/m`, `A`, `mol`, `cd` under the
|
|
11
|
+
* names `volume`, `pressure`, `viscosity`, `resistance`,
|
|
12
|
+
* `magnetic-field`, `permeability`, `current`, `amount` (or
|
|
13
|
+
* `amount-of-substance`), `luminous-intensity`;
|
|
9
14
|
* 2. a fundamental constant by name — `hbar`/`ℏ`, `c`, `G`, `k_B`/`kB`,
|
|
10
15
|
* `e` (its SI dimension);
|
|
11
16
|
* 3. a product/quotient of named dimensions or constants — `power/area`,
|
|
@@ -22,17 +27,19 @@
|
|
|
22
27
|
* ({@link parseFormulaPNode}). The dimension notation differs from a formula
|
|
23
28
|
* only in spelling, and {@link formulaSyntax} rewrites those spellings
|
|
24
29
|
* before the parse: a `.` between factors is `*`, a space between factors is
|
|
25
|
-
* `*`, a glued exponent (`L2`, `T-2`) takes its
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
30
|
+
* `*`, a glued exponent (`L2`, `T-2`) takes its `^` unless the letters and
|
|
31
|
+
* the digit together spell a registered atom (`mu0`, `eps0`), a fractional
|
|
32
|
+
* exponent (`T^1/2`) is parenthesized, and a hyphen inside a name
|
|
33
|
+
* (`magnetic-field`) is `_`. There is no subtraction in a dimension, so `-`
|
|
34
|
+
* after a name is always an exponent's sign.
|
|
29
35
|
*
|
|
30
36
|
* @module dimensional/dimension-spec
|
|
31
37
|
*/
|
|
32
|
-
import { DIMENSIONLESS, LENGTH, AREA, TIME, FREQUENCY, MASS, VELOCITY, ACCELERATION, FORCE, ENERGY, POWER, ACTION, TEMPERATURE, ENTROPY, CHARGE, } from './types.js';
|
|
38
|
+
import { DIMENSIONLESS, LENGTH, AREA, TIME, FREQUENCY, MASS, MASS_DENSITY, VELOCITY, ACCELERATION, FORCE, ENERGY, POWER, ACTION, TEMPERATURE, ENTROPY, CHARGE, } from './types.js';
|
|
33
39
|
import { divide, multiply, power } from './algebra.js';
|
|
34
40
|
import { dim } from './ast-builders.js';
|
|
35
41
|
import { CONSTANT_REGISTRY } from './symbolic-constants.js';
|
|
42
|
+
import { unitDimension } from './units.js';
|
|
36
43
|
import { parseFormulaPNode } from '../numerical/formula-dimension.js';
|
|
37
44
|
/** A bad dimension spec. */
|
|
38
45
|
export class DimensionSpecError extends Error {
|
|
@@ -41,16 +48,20 @@ export class DimensionSpecError extends Error {
|
|
|
41
48
|
this.name = 'DimensionSpecError';
|
|
42
49
|
}
|
|
43
50
|
}
|
|
44
|
-
/**
|
|
45
|
-
|
|
46
|
-
|
|
51
|
+
/**
|
|
52
|
+
* Named dimensions — matched case-insensitively. Each is a `types.ts`
|
|
53
|
+
* constant or the dimension of an SI unit read by the one unit reader; no
|
|
54
|
+
* exponent tuple is typed here.
|
|
55
|
+
*/
|
|
47
56
|
const NAMED_DIMS = {
|
|
48
57
|
dimensionless: DIMENSIONLESS,
|
|
49
58
|
length: LENGTH,
|
|
50
59
|
area: AREA,
|
|
60
|
+
volume: unitDimension('m^3'),
|
|
51
61
|
time: TIME,
|
|
52
62
|
frequency: FREQUENCY,
|
|
53
63
|
mass: MASS,
|
|
64
|
+
density: MASS_DENSITY,
|
|
54
65
|
velocity: VELOCITY,
|
|
55
66
|
acceleration: ACCELERATION,
|
|
56
67
|
force: FORCE,
|
|
@@ -60,13 +71,16 @@ const NAMED_DIMS = {
|
|
|
60
71
|
temperature: TEMPERATURE,
|
|
61
72
|
entropy: ENTROPY,
|
|
62
73
|
charge: CHARGE,
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
74
|
+
current: unitDimension('A'),
|
|
75
|
+
electric_current: unitDimension('A'),
|
|
76
|
+
amount: unitDimension('mol'),
|
|
77
|
+
amount_of_substance: unitDimension('mol'),
|
|
78
|
+
luminous_intensity: unitDimension('cd'),
|
|
79
|
+
pressure: unitDimension('Pa'),
|
|
80
|
+
viscosity: unitDimension('Pa*s'),
|
|
81
|
+
resistance: unitDimension('ohm'),
|
|
82
|
+
magnetic_field: unitDimension('T'),
|
|
83
|
+
permeability: unitDimension('H/m'),
|
|
70
84
|
};
|
|
71
85
|
/**
|
|
72
86
|
* One constant's exact-case spellings, projected from the constant registry.
|
|
@@ -101,10 +115,20 @@ function resolveAtom(raw) {
|
|
|
101
115
|
return NAMED_DIMS[key] ?? NAMED_DIMS[s.toLowerCase()] ?? null;
|
|
102
116
|
}
|
|
103
117
|
function baseAtom(id) {
|
|
104
|
-
|
|
118
|
+
// A single base letter is read in its own case: `m` is the metre's symbol, not mass,
|
|
119
|
+
// and `t`, `i`, `n`, `j` are not bases either (Tom's second round; it read `m^3` as M³).
|
|
120
|
+
// `Theta`/`THETA`/`Θ` are the one multi-letter base and stay case-insensitive.
|
|
121
|
+
if (id.length === 1 && /[a-z]/.test(id)) {
|
|
122
|
+
const upper = id.toUpperCase();
|
|
123
|
+
if (BASES[upper] !== undefined) {
|
|
124
|
+
throw new DimensionSpecError(`'${id}' is not a base letter: the bases are L M T I Θ N J in that case (mass is M, length is L); a unit symbol is not a dimension`);
|
|
125
|
+
}
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
const baseKey = id.length > 1 ? BASES[id.toUpperCase()] ?? BASES[id] : BASES[id];
|
|
105
129
|
if (!baseKey)
|
|
106
130
|
return null;
|
|
107
|
-
const out =
|
|
131
|
+
const out = dim();
|
|
108
132
|
out[baseKey] = 1;
|
|
109
133
|
return out;
|
|
110
134
|
}
|
|
@@ -120,8 +144,10 @@ function formulaSyntax(spec) {
|
|
|
120
144
|
// Spaces around an operator carry nothing; between two factors they multiply.
|
|
121
145
|
.replace(/\s*([*/^().])\s*/g, '$1')
|
|
122
146
|
.replace(/\s+/g, '*')
|
|
123
|
-
// A glued exponent: `L2`, `T-2`, `T-2.5
|
|
124
|
-
|
|
147
|
+
// A glued exponent: `L2`, `T-2`, `T-2.5`. The letters and the digit
|
|
148
|
+
// together may spell a registered atom (`mu0`, `eps0`, `mu_0`); that
|
|
149
|
+
// token is a name, not a base with an exponent.
|
|
150
|
+
.replace(/([A-Za-zΘ_]+)([+-]?\d)/g, (token, word, digit) => resolveAtom(token) !== null ? token : `${word}^${digit}`)
|
|
125
151
|
// A fractional exponent: `T^1/2` is `T^(1/2)`.
|
|
126
152
|
.replace(/\^([+-]?\d+(?:\.\d+)?)\/(\d+(?:\.\d+)?)/g, '^($1/$2)')
|
|
127
153
|
// A dot between factors is a product; a dot before a digit is a decimal point.
|
|
@@ -164,7 +190,7 @@ function dimensionOf(node, spec) {
|
|
|
164
190
|
case 'num':
|
|
165
191
|
// A literal 1 is the dimensionless numerator: `1/time`.
|
|
166
192
|
if (node.value === 1)
|
|
167
|
-
return
|
|
193
|
+
return dim();
|
|
168
194
|
throw new DimensionSpecError(`a number is not a dimension term ('${node.value}' in '${spec}')`);
|
|
169
195
|
case 'pow': {
|
|
170
196
|
const exponent = exponentOf(node.exp, spec);
|