universal-physics-tensor 9.0.0 → 10.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 +19 -16
- package/data/atlas/atlas.json +55 -44
- package/data/atlas/atlas.jsonld +1 -1
- package/data/atlas/diffusion.json +19 -18
- package/data/atlas/oscillators.json +15 -10
- package/data/atlas/waves.json +23 -18
- package/data/bridge-catalog.json +886 -1473
- package/data/bridge-catalog.schema.json +349 -132
- 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 +14 -3
- 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 +3 -2
- package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
- package/dist/atlas/benchmark/hybrid-retrieval.js +15 -8
- 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.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 +1 -1
- package/dist/atlas/benchmark/stats.d.ts.map +1 -1
- package/dist/atlas/benchmark/stats.js +1 -1
- 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.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 +5 -16
- 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.map +1 -1
- package/dist/atlas/diffusion/bridges-closure.js +0 -5
- 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 +0 -3
- package/dist/atlas/diffusion/bridges.js.map +1 -1
- 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.js.map +1 -1
- 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 +1 -1
- package/dist/atlas/link-prediction.d.ts.map +1 -1
- 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 +0 -1
- 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 +0 -3
- package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
- package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
- package/dist/atlas/oscillators/bridges-limits.js +0 -2
- package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
- 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.js.map +1 -1
- 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.js.map +1 -1
- package/dist/atlas/oscillators/phase-carriage.js.map +1 -1
- package/dist/atlas/oscillators/phase-translation.js.map +1 -1
- package/dist/atlas/oscillators/position-translation.js.map +1 -1
- package/dist/atlas/oscillators/rejections.js.map +1 -1
- package/dist/atlas/path-bound.js.map +1 -1
- package/dist/atlas/physjs-entries.generated.js.map +1 -1
- package/dist/atlas/physjs-ref.d.ts +79 -45
- package/dist/atlas/physjs-ref.d.ts.map +1 -1
- package/dist/atlas/physjs-ref.js +143 -62
- 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.js.map +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.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/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 +0 -3
- 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 +0 -4
- 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.js.map +1 -1
- 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 +8 -4
- package/dist/atlas/witness-numeric.d.ts.map +1 -1
- package/dist/atlas/witness-numeric.js +27 -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.js.map +1 -1
- 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 +171 -8
- package/dist/bridges/catalog-load.js.map +1 -1
- package/dist/bridges/catalog-types.d.ts +48 -24
- package/dist/bridges/catalog-types.d.ts.map +1 -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 +15 -2
- package/dist/bridges/evaluation-errors.d.ts.map +1 -1
- package/dist/bridges/evaluation-errors.js +20 -2
- package/dist/bridges/evaluation-errors.js.map +1 -1
- package/dist/bridges/evaluator-inputs.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 +49 -16
- package/dist/bridges/evaluators.js.map +1 -1
- package/dist/bridges/expr-parse.d.ts +27 -4
- package/dist/bridges/expr-parse.d.ts.map +1 -1
- package/dist/bridges/expr-parse.js +90 -10
- package/dist/bridges/expr-parse.js.map +1 -1
- package/dist/bridges/holds.d.ts +5 -1
- package/dist/bridges/holds.d.ts.map +1 -1
- package/dist/bridges/holds.js +18 -3
- 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.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 +5 -6
- package/dist/bridges/relation-eval.d.ts.map +1 -1
- package/dist/bridges/relation-eval.js +9 -38
- 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 +24 -10
- 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/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.map +1 -1
- package/dist/canonical/entries/condensed-matter.js +4 -4
- package/dist/canonical/entries/condensed-matter.js.map +1 -1
- package/dist/canonical/entries/dimensional-classics.js +2 -2
- package/dist/canonical/entries/dimensional-classics.js.map +1 -1
- package/dist/canonical/entries/electromagnetism.js +2 -2
- package/dist/canonical/entries/electromagnetism.js.map +1 -1
- package/dist/canonical/entries/fluids-waves.js.map +1 -1
- 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 +29 -22
- package/dist/canonical/entries/nonmonomial.js.map +1 -1
- 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.js.map +1 -1
- package/dist/canonical/linkage.d.ts +29 -4
- package/dist/canonical/linkage.d.ts.map +1 -1
- package/dist/canonical/linkage.js +31 -29
- 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 +17 -12
- 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 +21 -0
- package/dist/canonical/structural.d.ts.map +1 -1
- package/dist/canonical/structural.js +24 -4
- package/dist/canonical/structural.js.map +1 -1
- package/dist/cases/brownian-sphere.js +4 -4
- package/dist/cases/brownian-sphere.js.map +1 -1
- package/dist/cases/damped-resonator.js +2 -2
- package/dist/cases/damped-resonator.js.map +1 -1
- package/dist/cases/index.js.map +1 -1
- package/dist/cases/kepler-rv.js.map +1 -1
- package/dist/cases/lumped-cooling.js +1 -1
- package/dist/cases/lumped-cooling.js.map +1 -1
- package/dist/cases/quadrature.js.map +1 -1
- package/dist/cases/resistor-noise.js +3 -3
- package/dist/cases/resistor-noise.js.map +1 -1
- package/dist/cases/skin-depth.js.map +1 -1
- package/dist/cases/types.js.map +1 -1
- package/dist/cli/args.d.ts +7 -2
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +18 -2
- 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 +32 -0
- package/dist/cli/bindings.js.map +1 -0
- package/dist/cli/closed-form-range.js.map +1 -1
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/commands/_atlas-map.d.ts +3 -3
- package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
- package/dist/cli/commands/_atlas-map.js +43 -18
- package/dist/cli/commands/_atlas-map.js.map +1 -1
- 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 +42 -7
- 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 +1 -3
- 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 +13 -20
- package/dist/cli/commands/audit.js.map +1 -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 -14
- 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 +42 -17
- 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 +15 -9
- 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 +13 -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 +53 -31
- 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 +14 -7
- 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 +40 -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 +82 -89
- 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 +53 -18
- package/dist/cli/commands/metric.js.map +1 -1
- package/dist/cli/commands/path.js +4 -4
- 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 +50 -26
- 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 +24 -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 +22 -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 +8 -4
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/symbolic.d.ts.map +1 -1
- package/dist/cli/commands/symbolic.js +13 -9
- package/dist/cli/commands/symbolic.js.map +1 -1
- package/dist/cli/commands/testplan.js +1 -1
- 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 +29 -2
- package/dist/cli/expr-print.d.ts.map +1 -1
- package/dist/cli/expr-print.js +46 -2
- 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.js +7 -3
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/map-evidence.js.map +1 -1
- package/dist/cli/output.d.ts +3 -6
- package/dist/cli/output.d.ts.map +1 -1
- 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 +16 -10
- package/dist/cli/record-reach.js.map +1 -1
- package/dist/cli/record-tables.js +1 -1
- package/dist/cli/record-tables.js.map +1 -1
- package/dist/cli/record.d.ts.map +1 -1
- package/dist/cli/record.js +31 -12
- 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 +12 -1
- package/dist/cli/search-index.js.map +1 -1
- package/dist/cli/statuses.js.map +1 -1
- package/dist/cli/top-level-help.js.map +1 -1
- package/dist/cli/version.js.map +1 -1
- package/dist/cli-api.d.ts +15 -9
- package/dist/cli-api.d.ts.map +1 -1
- package/dist/cli-api.js +14 -13
- package/dist/cli-api.js.map +1 -1
- package/dist/composition/adjudication.js.map +1 -1
- 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 +12 -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.js.map +1 -1
- package/dist/composition/bridge-analysis.d.ts +0 -18
- package/dist/composition/bridge-analysis.d.ts.map +1 -1
- package/dist/composition/bridge-analysis.js +57 -47
- 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.map +1 -1
- package/dist/composition/canonical-compare.js +12 -2
- package/dist/composition/canonical-compare.js.map +1 -1
- package/dist/composition/canonical-graph.d.ts +8 -9
- package/dist/composition/canonical-graph.d.ts.map +1 -1
- package/dist/composition/canonical-graph.js +25 -67
- package/dist/composition/canonical-graph.js.map +1 -1
- 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 +6 -20
- package/dist/composition/catalog-graph.js.map +1 -1
- package/dist/composition/chain-candidate.d.ts +2 -0
- package/dist/composition/chain-candidate.d.ts.map +1 -1
- package/dist/composition/chain-candidate.js +2 -0
- package/dist/composition/chain-candidate.js.map +1 -1
- package/dist/composition/chain-match.js.map +1 -1
- package/dist/composition/chain-regime.js.map +1 -1
- package/dist/composition/chain-result.js.map +1 -1
- package/dist/composition/compose-surface.js.map +1 -1
- package/dist/composition/compose-symbolic.js.map +1 -1
- package/dist/composition/compose.d.ts.map +1 -1
- package/dist/composition/compose.js +153 -36
- package/dist/composition/compose.js.map +1 -1
- 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 +21 -11
- package/dist/composition/discovery.d.ts.map +1 -1
- package/dist/composition/discovery.js +81 -21
- package/dist/composition/discovery.js.map +1 -1
- package/dist/composition/edge.d.ts +19 -8
- package/dist/composition/edge.d.ts.map +1 -1
- package/dist/composition/edge.js +24 -11
- 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.map +1 -1
- package/dist/composition/evaluate-relation.js.map +1 -1
- package/dist/composition/explain.d.ts +14 -9
- package/dist/composition/explain.d.ts.map +1 -1
- package/dist/composition/explain.js +46 -13
- package/dist/composition/explain.js.map +1 -1
- package/dist/composition/expr-eval.js.map +1 -1
- package/dist/composition/expr-simplify.d.ts.map +1 -1
- package/dist/composition/expr-simplify.js +9 -39
- 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 +9 -0
- package/dist/composition/formula-shape.d.ts.map +1 -1
- package/dist/composition/formula-shape.js +54 -0
- 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-viz-svg.js.map +1 -1
- package/dist/composition/graph-viz.js.map +1 -1
- package/dist/composition/grounding.js.map +1 -1
- package/dist/composition/identifiability.js.map +1 -1
- package/dist/composition/index.d.ts +6 -4
- package/dist/composition/index.d.ts.map +1 -1
- package/dist/composition/index.js +4 -3
- package/dist/composition/index.js.map +1 -1
- package/dist/composition/mathts-quiet.d.ts +28 -0
- package/dist/composition/mathts-quiet.d.ts.map +1 -0
- package/dist/composition/mathts-quiet.js +56 -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 +18 -34
- 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.js.map +1 -1
- package/dist/composition/probe/dataset.js.map +1 -1
- 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 +14 -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 +1 -1
- package/dist/composition/probe/fit.d.ts.map +1 -1
- package/dist/composition/probe/fit.js +2 -1
- package/dist/composition/probe/fit.js.map +1 -1
- package/dist/composition/probe/frontier.js.map +1 -1
- package/dist/composition/probe/generator.js.map +1 -1
- package/dist/composition/probe/index.d.ts +4 -2
- package/dist/composition/probe/index.d.ts.map +1 -1
- package/dist/composition/probe/index.js +4 -2
- package/dist/composition/probe/index.js.map +1 -1
- 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 +13 -6
- package/dist/composition/probe/pipeline.js.map +1 -1
- package/dist/composition/probe/problem.d.ts +8 -0
- package/dist/composition/probe/problem.d.ts.map +1 -1
- package/dist/composition/probe/problem.js +78 -12
- package/dist/composition/probe/problem.js.map +1 -1
- package/dist/composition/probe/report.js.map +1 -1
- 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.js.map +1 -1
- package/dist/composition/probe/study.d.ts +4 -3
- package/dist/composition/probe/study.d.ts.map +1 -1
- package/dist/composition/probe/study.js +5 -3
- package/dist/composition/probe/study.js.map +1 -1
- package/dist/composition/probe/types.d.ts +3 -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 +11 -4
- package/dist/composition/proposed-bridges.d.ts.map +1 -1
- package/dist/composition/proposed-bridges.js +11 -4
- 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.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/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 +34 -9
- package/dist/composition/retrodiction.js.map +1 -1
- package/dist/composition/uncertainty.js.map +1 -1
- package/dist/composition/user-equation.js.map +1 -1
- 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/constants.d.ts +8 -8
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +8 -10
- package/dist/core/constants.js.map +1 -1
- 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/json-schema.d.ts +1 -1
- package/dist/core/json-schema.d.ts.map +1 -1
- package/dist/core/json-schema.js +31 -7
- 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 -8
- package/dist/core/labeled-tensor.js.map +1 -1
- 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 +40 -8
- package/dist/core/tensor.js.map +1 -1
- 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 +24 -80
- package/dist/diff/bridge-gradient.d.ts.map +1 -1
- package/dist/diff/bridge-gradient.js +21 -98
- 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 +16 -4
- package/dist/diff/bridge-specs.js.map +1 -1
- package/dist/dimensional/algebra.js.map +1 -1
- package/dist/dimensional/ast-builders.d.ts +5 -4
- package/dist/dimensional/ast-builders.d.ts.map +1 -1
- package/dist/dimensional/ast-builders.js +6 -5
- package/dist/dimensional/ast-builders.js.map +1 -1
- package/dist/dimensional/ast-types.js.map +1 -1
- package/dist/dimensional/bridge-check.js.map +1 -1
- 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 +9 -5
- 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.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 +3 -1
- package/dist/dimensional/errors.d.ts.map +1 -1
- package/dist/dimensional/errors.js +2 -2
- package/dist/dimensional/errors.js.map +1 -1
- 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 +0 -1
- package/dist/dimensional/gauge-field.js.map +1 -1
- package/dist/dimensional/hyphen-names.d.ts.map +1 -1
- package/dist/dimensional/hyphen-names.js +8 -0
- 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.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.map +1 -1
- package/dist/dimensional/symbolic-constants.js +7 -2
- 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.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 +9 -5
- 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 +50 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -20
- 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.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 +2 -2
- 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 +6 -3
- 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 -5
- 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/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.js.map +1 -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 +11 -6
- package/dist/numerical/mathts-engine.js.map +1 -1
- package/dist/numerical/metric-inverse.js.map +1 -1
- package/dist/numerical/null-ic.js.map +1 -1
- package/dist/numerical/null-ray-integrator.js +4 -4
- package/dist/numerical/null-ray-integrator.js.map +1 -1
- 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.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 +20 -3
- package/dist/numerical/quadrature.js.map +1 -1
- package/dist/numerical/spacetime-metrics.d.ts +13 -19
- package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
- package/dist/numerical/spacetime-metrics.js +126 -248
- package/dist/numerical/spacetime-metrics.js.map +1 -1
- package/dist/numerical/strides.js.map +1 -1
- package/dist/numerical/tensor-engine.d.ts +9 -5
- package/dist/numerical/tensor-engine.d.ts.map +1 -1
- 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 +18 -8
- package/dist/relations/regime.d.ts.map +1 -1
- package/dist/relations/regime.js +26 -14
- 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 +10 -14
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buckingham.js","sourceRoot":"","sources":["../../src/dimensional/buckingham.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"buckingham.js","sourceRoot":"","sources":["../../src/dimensional/buckingham.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Buckingham-π enumerator (build target 1 of\n * docs/planning/Bridge-Inference-Epistemics-Note.md — the principled\n * primitive for the classifier's EXACTLY-DETERMINED case).\n *\n * Given a set of dimensional variables presumed to obey one\n * dimensionally-homogeneous relation, the Buckingham-π theorem says that\n * relation re-expresses as F(π₁,…,π_{n−r}) = 0, where each πᵢ is a\n * dimensionless power-product of the variables and there are exactly\n * n − r of them (n = variables, r = rank of the dimension matrix). The\n * π-groups are a basis of the NULL SPACE of the dimension matrix.\n *\n * THE HONEST BOUNDARY (enforced by the result types — there is no value\n * or constant field anywhere): this returns the FORM only. It yields the\n * π-groups and, for a target, the monomial that determines it UP TO A\n * DIMENSIONLESS CONSTANT (the 2π, the ½, α). It does NOT and cannot\n * supply that constant, nor the function F. That boundary is exactly what\n * separates dimensional analysis from numerology — see the epistemics\n * note.\n *\n * Computation is EXACT (rational arithmetic), not floating Gaussian\n * elimination: physics dimension exponents are small rationals, and the\n * null-space basis must be exact to be trustworthy.\n *\n * @module dimensional/buckingham\n */\n\nimport { Fraction } from '@danielsimonjr/mathts-core';\nimport { rationalNullspace } from '@danielsimonjr/mathts-functions';\nimport type { Dimension } from './types.js';\n\nconst BASES = ['L', 'M', 'T', 'I', 'Theta', 'N', 'J'] as const;\n\n/** A named physical quantity with a dimension — the enumerator's input.\n * Structurally satisfied by a composition `Quantity`. @public */\nexport interface DimensionalVariable {\n readonly name: string;\n readonly dim: Dimension;\n}\n\n/** A dimensionless power-product of the input variables (integer\n * exponents; the conventional form). No value — π-groups carry FORM,\n * not magnitude. @public */\nexport interface PiGroup {\n /** Integer exponent of each variable in this dimensionless product. */\n readonly exponents: Readonly<Record<string, number>>;\n /** Display form, e.g. `period^2 · gravity · length^-1`. */\n readonly formula: string;\n}\n\n/** The dimensional closure of a variable set. @public */\nexport type BuckinghamVerdict =\n | 'dimensionally-independent' // 0 π-groups: no dimensionless product exists\n | 'single-invariant' // 1 π-group: one dimensionless invariant\n | 'multiple-invariants'; // ≥2 π-groups: a family F(π₁,…)\n\n/** Result of {@link buckinghamPi}. @public */\nexport interface BuckinghamResult {\n readonly variables: readonly string[];\n /** Base SI dimensions actually spanned by the inputs. */\n readonly baseDimensions: readonly string[];\n /** n — the number of variables. */\n readonly variableCount: number;\n /** r — the rank of the dimension matrix. */\n readonly rank: number;\n /** n − r — the number of independent dimensionless groups. */\n readonly piGroupCount: number;\n readonly piGroups: readonly PiGroup[];\n readonly verdict: BuckinghamVerdict;\n}\n\n/** Result of {@link dimensionallyDetermines}. @public */\nexport interface DimensionalDeterminationResult {\n readonly target: string;\n readonly governing: readonly string[];\n /** True iff the target is fixed by the governing variables UP TO A\n * DIMENSIONLESS CONSTANT (unique monomial). */\n readonly determined: boolean;\n /**\n * When determined: target = const · Π(governingⱼ ^ monomial[j]). The\n * exponents may be rational (e.g. 0.5 for a √ law). Always read with\n * `upToDimensionlessConstant` — the leading constant is NOT supplied.\n */\n readonly monomial?: Readonly<Record<string, number>>;\n /** Always true when `monomial` is present — a standing reminder. */\n readonly upToDimensionlessConstant?: true;\n /**\n * True only when the target's dimension is not in the span of the governing\n * variables, so a monomial needs dimensionful constants the inputs do not\n * name. False when the governing variables are dimensionally dependent or\n * leave more than one π-group: that failure is not a missing constant.\n */\n readonly outsideGoverningSpan: boolean;\n /** Plain-language reason for the verdict. */\n readonly reason: string;\n}\n\n/** Rationalization failed: a dimension exponent is not a small rational.\n * @public */\nexport class RationalizationError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'RationalizationError';\n }\n}\n\n// ---------------------------------------------------------------------------\n// Exact rational arithmetic (number-backed; dimension exponents are small\n// rationals, so reduced fractions never overflow in practice).\n// ---------------------------------------------------------------------------\n\ninterface Frac {\n readonly n: number;\n readonly d: number;\n}\n\nfunction gcd(a: number, b: number): number {\n a = Math.abs(a);\n b = Math.abs(b);\n while (b) {\n [a, b] = [b, a % b];\n }\n return a || 1;\n}\n\nfunction frac(n: number, d: number): Frac {\n if (d === 0) throw new RationalizationError('zero denominator');\n if (d < 0) {\n n = -n;\n d = -d;\n }\n const g = gcd(n, d);\n return { n: n / g, d: d / g };\n}\n\nconst MAX_DEN = 720;\n\n/** Convert a (possibly rational) exponent to an exact fraction by scanning\n * small denominators; throws if none matches within tolerance. */\nfunction toFrac(x: number): Frac {\n if (Number.isInteger(x)) return { n: x, d: 1 };\n for (let d = 2; d <= MAX_DEN; d++) {\n const n = x * d;\n if (Math.abs(n - Math.round(n)) < 1e-9 * Math.max(1, Math.abs(n))) {\n return frac(Math.round(n), d);\n }\n }\n throw new RationalizationError(\n `dimension exponent ${x} is not a rational with denominator ≤ ${MAX_DEN}`,\n );\n}\n\nconst fZero = (a: Frac): boolean => a.n === 0;\n\n/**\n * Exact null space of the dimension matrix. Exponents pass through as\n * {@link Fraction} values after {@link toFrac}, so an irrational is still\n * {@link RationalizationError} and is not accepted by a continued fraction.\n * A matrix with no rows is `0×n`: `{ columns: n }` is the standard basis.\n * MathTS integerizes each vector (content 1, first nonzero entry positive).\n */\nfunction nullSpace(matrix: Frac[][], cols: number): { basis: number[][]; rank: number } {\n const entries = matrix.map((row) => row.map((f) => new Fraction(f.n, f.d)));\n const solved = rationalNullspace(entries, { columns: cols });\n const basis = solved.basis.map((vec) =>\n vec.map((entry) => {\n if (entry.denominator !== 1n) {\n throw new RationalizationError(\n `null-space entry ${entry.toString()} is not an integer`,\n );\n }\n return Number(entry.numerator);\n }),\n );\n return { basis, rank: solved.rank };\n}\n\nfunction buildMatrix(variables: readonly DimensionalVariable[]): {\n matrix: Frac[][];\n spannedBases: string[];\n} {\n const spannedBases: string[] = [];\n const matrix: Frac[][] = [];\n for (const base of BASES) {\n const row = variables.map((v) => toFrac(v.dim[base]));\n if (row.some((f) => !fZero(f))) {\n spannedBases.push(base);\n matrix.push(row);\n }\n }\n return { matrix, spannedBases };\n}\n\nfunction formatPiGroup(\n exponents: Record<string, number>,\n order: readonly string[],\n): string {\n const parts: string[] = [];\n for (const name of order) {\n const e = exponents[name];\n if (e === 0) continue;\n parts.push(e === 1 ? name : `${name}^${e}`);\n }\n return parts.join(' · ') || '1';\n}\n\n/**\n * Enumerate the Buckingham-π groups of a dimensional variable set. Returns\n * the rank, the count n − r, and a null-space basis of dimensionless\n * groups. FORM only — no constants (see module docs).\n *\n * @public\n */\nexport function buckinghamPi(\n variables: readonly DimensionalVariable[],\n): BuckinghamResult {\n if (variables.length === 0) {\n throw new RationalizationError('buckinghamPi requires at least one variable');\n }\n const names = variables.map((v) => v.name);\n if (new Set(names).size !== names.length) {\n throw new RationalizationError(\n `buckinghamPi requires unique variable names; got [${names.join(', ')}]`,\n );\n }\n\n const n = variables.length;\n const { matrix, spannedBases } = buildMatrix(variables);\n\n const { basis, rank } = nullSpace(matrix, n);\n const piGroups: PiGroup[] = basis.map((vec) => {\n const exponents: Record<string, number> = {};\n for (let j = 0; j < n; j++) exponents[names[j]] = vec[j];\n return { exponents, formula: formatPiGroup(exponents, names) };\n });\n\n const piGroupCount = n - rank;\n const verdict: BuckinghamVerdict =\n piGroupCount === 0\n ? 'dimensionally-independent'\n : piGroupCount === 1\n ? 'single-invariant'\n : 'multiple-invariants';\n\n return {\n variables: names,\n baseDimensions: spannedBases,\n variableCount: n,\n rank,\n piGroupCount,\n piGroups,\n verdict,\n };\n}\n\n/**\n * Does the governing set fix the target UP TO A DIMENSIONLESS CONSTANT?\n *\n * True iff the governing variables are dimensionally independent and the\n * target's dimension lies in their span — equivalently, the full set has\n * exactly one π-group and the governing set has none. When determined,\n * returns the (possibly rational) monomial exponents such that\n * target = const · Π(governingⱼ ^ monomial[j]). The constant is NOT\n * supplied — dimensional analysis cannot.\n *\n * @public\n */\nexport function dimensionallyDetermines(\n target: DimensionalVariable,\n governing: readonly DimensionalVariable[],\n): DimensionalDeterminationResult {\n const governingNames = governing.map((v) => v.name);\n\n const governingPi = buckinghamPi(\n governing.length > 0 ? governing : [target],\n );\n // A redundancy among the governing variables means the monomial is not\n // unique (any dimensionless governing combo can be folded into the\n // constant) → not determined.\n if (governing.length > 0 && governingPi.piGroupCount > 0) {\n return {\n target: target.name,\n governing: governingNames,\n determined: false,\n outsideGoverningSpan: false,\n reason:\n 'governing variables are dimensionally dependent ' +\n `(${governingPi.piGroupCount} dimensionless combination(s) among them); ` +\n 'the determining monomial is not unique',\n };\n }\n\n const full = buckinghamPi([target, ...governing]);\n if (full.piGroupCount !== 1) {\n return {\n target: target.name,\n governing: governingNames,\n determined: false,\n outsideGoverningSpan: full.piGroupCount === 0,\n reason:\n full.piGroupCount === 0\n ? \"the target's dimension is not in the span of the governing \" +\n 'variables — no dimensionless group exists, so no monomial determines it'\n : `${full.piGroupCount} independent π-groups — the target is fixed ` +\n 'only as a function of several dimensionless ratios (under-constrained)',\n };\n }\n\n // The single π-group involves the target; solve it for the target.\n const group = full.piGroups[0].exponents;\n const targetExp = group[target.name];\n if (!targetExp) {\n return {\n target: target.name,\n governing: governingNames,\n determined: false,\n outsideGoverningSpan: false,\n reason:\n 'the sole dimensionless group does not involve the target ' +\n '(the target is dimensionally redundant with the governing set)',\n };\n }\n const monomial: Record<string, number> = {};\n for (const name of governingNames) {\n monomial[name] = -(group[name] ?? 0) / targetExp;\n }\n\n return {\n target: target.name,\n governing: governingNames,\n determined: true,\n monomial,\n upToDimensionlessConstant: true,\n outsideGoverningSpan: false,\n reason:\n 'unique dimensionless group fixes the target up to a dimensionless constant',\n };\n}\n"]}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* @module dimensional/connection-validators
|
|
12
12
|
*/
|
|
13
13
|
import type { Dimension } from './types.js';
|
|
14
|
+
import type { ExprNode } from './ast-types.js';
|
|
14
15
|
import type { Role, CovariantDerivativeNode, RiemannTensorNode } from './ast-types.js';
|
|
15
16
|
import type { PartialDerivativeChildResult } from './metric-validators.js';
|
|
16
17
|
export type { UpperIndex, CovariantDerivativeNode, RiemannTensorNode } from './ast-types.js';
|
|
@@ -37,7 +38,7 @@ interface CovariantDerivativeValidationResult {
|
|
|
37
38
|
* output freeIndices is just `of.freeIndices ∪ {wrtIndex.label: lower}`
|
|
38
39
|
* (same structural rule as tensor-partial-derivative).
|
|
39
40
|
*/
|
|
40
|
-
export declare function validateCovariantDerivative(node: CovariantDerivativeNode, validateChild: (child:
|
|
41
|
+
export declare function validateCovariantDerivative(node: CovariantDerivativeNode, validateChild: (child: ExprNode) => PartialDerivativeChildResult): CovariantDerivativeValidationResult;
|
|
41
42
|
/**
|
|
42
43
|
* v0.5.0 (Task 1c-i): Riemann curvature tensor AST node R^ρ_{σμν}.
|
|
43
44
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-validators.d.ts","sourceRoot":"","sources":["../../src/dimensional/connection-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EACV,IAAI,EAKJ,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAU3E,YAAY,EAAE,UAAU,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAG7F,UAAU,mCAAmC;IAC3C,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;CACtB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,uBAAuB,EAC7B,aAAa,EAAE,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"connection-validators.d.ts","sourceRoot":"","sources":["../../src/dimensional/connection-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EACV,IAAI,EAKJ,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAU3E,YAAY,EAAE,UAAU,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAG7F,UAAU,mCAAmC;IAC3C,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;CACtB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,uBAAuB,EAC7B,aAAa,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,4BAA4B,GAC/D,mCAAmC,CAqErC;AAMD;;;;;;;;;;;;;;;GAeG;AAEH,UAAU,6BAA6B;IACrC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,iBAAiB,GACtB,6BAA6B,CAyE/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-validators.js","sourceRoot":"","sources":["../../src/dimensional/connection-validators.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"connection-validators.js","sourceRoot":"","sources":["../../src/dimensional/connection-validators.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Per-kind validation for v0.4.0 connection-layer AST nodes.\n *\n * Mirrors the pattern of `metric-validators.ts`: each validator is a pure\n * function returning a local `{dim, freeIndices, role?}` carrier that\n * validator.ts merges into its InferContext accumulator.\n *\n * Per v0.4.0-Design.md §4 + §7 (docs/specification/Part-IX-Connection-Layer.md\n * — pending).\n *\n * @module dimensional/connection-validators\n */\n\nimport type { Dimension } from './types.js';\nimport type { ExprNode } from './ast-types.js';\nimport type {\n Role,\n TensorSymbolNode,\n MetricTensorNode,\n CovariantIndex,\n UpperIndex,\n CovariantDerivativeNode,\n RiemannTensorNode,\n} from './ast-types.js';\nimport { divide } from './algebra.js';\nimport type { PartialDerivativeChildResult } from './metric-validators.js';\nimport {\n PartialDerivativeIndexVarianceError,\n MetricSignatureError,\n DuplicateCoordinateWarning,\n IndexLabelCollisionError,\n} from './errors.js';\n\n// Node/index types now live in the leaf `ast-types.ts`; re-exported so existing\n// importers of `… from './connection-validators.js'` are unchanged.\nexport type { UpperIndex, CovariantDerivativeNode, RiemannTensorNode } from './ast-types.js';\n\n// v0.6.1: dropped export — internal-only validation-result shape.\ninterface CovariantDerivativeValidationResult {\n readonly dim: Dimension;\n readonly freeIndices: Map<string, { upper: number; lower: number }>;\n readonly role?: Role;\n}\n\n/**\n * Validate a covariant-derivative node. Pure-function module-cycle-free\n * pattern (matches validatePartialDerivative). Recursion via the\n * `validateChild` callback supplied by the caller (validator.ts's\n * `infer()` dispatch).\n *\n * Throws:\n * - PartialDerivativeIndexVarianceError if wrtIndex.variance !== 'lower'\n * - MetricSignatureError if gLower is not both-lower or gInverse is not both-upper\n *\n * Note: the gLower / gInverse free indices are CONSUMED INTERNALLY by the\n * Christoffel formula's contractions and do NOT propagate upward. The\n * output freeIndices is just `of.freeIndices ∪ {wrtIndex.label: lower}`\n * (same structural rule as tensor-partial-derivative).\n */\nexport function validateCovariantDerivative(\n node: CovariantDerivativeNode,\n validateChild: (child: ExprNode) => PartialDerivativeChildResult,\n): CovariantDerivativeValidationResult {\n if (node.wrtIndex.variance !== 'lower') {\n throw new PartialDerivativeIndexVarianceError(node.wrtIndex.label);\n }\n if (\n node.gLower.indices[0].variance !== 'lower' ||\n node.gLower.indices[1].variance !== 'lower'\n ) {\n throw new MetricSignatureError(\n node.gLower.name,\n `covariant-derivative requires gLower to be both-lower (got ` +\n `[${node.gLower.indices[0].variance}, ${node.gLower.indices[1].variance}])`,\n );\n }\n if (\n node.gInverse.indices[0].variance !== 'upper' ||\n node.gInverse.indices[1].variance !== 'upper'\n ) {\n throw new MetricSignatureError(\n node.gInverse.name,\n `covariant-derivative requires gInverse to be both-upper (got ` +\n `[${node.gInverse.indices[0].variance}, ${node.gInverse.indices[1].variance}])`,\n );\n }\n\n const ofResult = validateChild(node.of);\n const wrtResult = validateChild(node.wrt);\n\n // gLower and gInverse are NOT validated via validateChild — their dims are\n // structurally fixed (known from the signature checks above at lines 71-88),\n // and any malformed metric would have already thrown there. Their free\n // indices are deliberately discarded: the Christoffel contractions inside\n // ∇_μ consume them internally.\n\n // Per §VIII.4 (pderiv-label-collision-rejected analog):\n // wrtIndex.label must not collide with of.freeIndices.\n //\n // I1 HYBRID DECISION: throw by default (soundness > friendliness);\n // env var UPT_ALLOW_COORD_SHADOW=1 downgrades to process.emitWarning.\n // Task 13 covers BOTH paths (default throws; env=1 warns).\n if (ofResult.freeIndices.has(node.wrtIndex.label)) {\n const conflict = node.wrtIndex.label;\n if (typeof process !== 'undefined' && process.env?.UPT_ALLOW_COORD_SHADOW === '1') {\n process.emitWarning(new DuplicateCoordinateWarning(conflict, conflict));\n } else {\n throw new MetricSignatureError(\n `covariant-derivative`,\n `wrt='${conflict}' shadows an existing free index '${conflict}'. ` +\n `Rename the operand's free index or set UPT_ALLOW_COORD_SHADOW=1 to ` +\n `downgrade to a warning.`,\n );\n }\n }\n\n // Output freeIndices = of.freeIndices ∪ {wrtIndex.label: lower}.\n const freeIndices = new Map<string, { upper: number; lower: number }>();\n for (const [label, counts] of ofResult.freeIndices) freeIndices.set(label, counts);\n freeIndices.set(node.wrtIndex.label, { upper: 0, lower: 1 });\n\n // Output dim = divide(of.dim, wrt.dim) — same as pderiv.\n const dim = divide(ofResult.dim, wrtResult.dim);\n\n // Role passthrough: propagate of.role only when the child has one; omit\n // otherwise. Mirrors the `role?: Role` optional declaration on\n // CovariantDerivativeValidationResult — don't force a 'field' default when\n // the child has no role (e.g. a plain scalar operand).\n return ofResult.role !== undefined\n ? { dim, freeIndices, role: ofResult.role }\n : { dim, freeIndices };\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// v0.5.0 Task 5: RiemannTensorNode\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * v0.5.0 (Task 1c-i): Riemann curvature tensor AST node R^ρ_{σμν}.\n *\n * Index convention per Carroll Ch. 3 §3.4 (Adam+Eve F4/S3):\n * R^ρ_σμν = ∂_μ Γ^ρ_σν − ∂_ν Γ^ρ_σμ + Γ^ρ_λμ Γ^λ_σν − Γ^ρ_λν Γ^λ_σμ\n * (σ in SECOND lower slot of each Γ.)\n *\n * Dimension F8/I3: Riemann is 1/L² (inverse length squared), NOT\n * dimensionless. Carroll Ch. 3 §3.4: R^ρ_σμν has units of (∂Γ) where\n * Γ ~ 1/L and ∂ ~ 1/L → R ~ 1/L².\n *\n * H1 (v0.4.0 pattern): gLower, gInverse, xCoord sub-nodes are present for\n * downstream consumers (numerical lowering at Task 6), but their free\n * indices are NOT propagated — the Riemann formula's contractions consume\n * them internally. Same rule as CovariantDerivativeNode.\n */\n// v0.6.1: dropped export — internal-only validation-result shape.\ninterface RiemannTensorValidationResult {\n readonly dim: Dimension;\n readonly freeIndices: Map<string, { upper: number; lower: number }>;\n}\n\n/**\n * Validate a riemann-tensor node.\n *\n * Throws:\n * - PartialDerivativeIndexVarianceError if upperIndex.variance !== 'upper'\n * or any lowerIndices[i].variance !== 'lower'\n * - MetricSignatureError if gLower / gInverse signature is wrong (reuses\n * CovariantDerivativeNode's structural checks)\n * - IndexLabelCollisionError if the 4 free-index labels {ρ, σ, μ, ν} are\n * not pairwise distinct (M9: disjointness only on the riemann node's\n * own free labels; raise/lower aliasing in surrounding algebra remains\n * legal — we do NOT compare against gLower/gInverse/xCoord labels).\n *\n * H1 (v0.4.0 pattern): gLower/gInverse/xCoord are NOT validated via the\n * validateChild callback, so their free indices do not propagate. They are\n * signature-checked here for early structural error reporting; their\n * numerical contents are consumed by Task 6's lowering helper.\n */\nexport function validateRiemannTensor(\n node: RiemannTensorNode,\n): RiemannTensorValidationResult {\n if (node.upperIndex.variance !== 'upper') {\n throw new PartialDerivativeIndexVarianceError(\n `riemann-tensor: upperIndex '${node.upperIndex.label}' must be 'upper', ` +\n `got '${(node.upperIndex as { variance: string }).variance}'`,\n );\n }\n for (let i = 0; i < 3; i++) {\n const idx = node.lowerIndices[i] as { label: string; variance: string };\n if (idx.variance !== 'lower') {\n throw new PartialDerivativeIndexVarianceError(\n `riemann-tensor: lowerIndices[${i}] '${idx.label}' must be 'lower', ` +\n `got '${idx.variance}'`,\n );\n }\n }\n if (\n node.gLower.indices[0].variance !== 'lower' ||\n node.gLower.indices[1].variance !== 'lower'\n ) {\n throw new MetricSignatureError(\n node.gLower.name,\n `riemann-tensor requires gLower to be both-lower (got ` +\n `[${node.gLower.indices[0].variance}, ${node.gLower.indices[1].variance}])`,\n );\n }\n if (\n node.gInverse.indices[0].variance !== 'upper' ||\n node.gInverse.indices[1].variance !== 'upper'\n ) {\n throw new MetricSignatureError(\n node.gInverse.name,\n `riemann-tensor requires gInverse to be both-upper (got ` +\n `[${node.gInverse.indices[0].variance}, ${node.gInverse.indices[1].variance}])`,\n );\n }\n\n // M9: disjointness on the riemann-tensor's own 4 free labels only.\n // Repeated labels across {ρ, σ, μ, ν} would imply an implicit contraction\n // (e.g. R^μ_μνλ = R_νλ), which is the Ricci-tensor node's job — not the\n // bare Riemann node's. We deliberately do NOT compare against gLower /\n // gInverse / xCoord labels: those are H1-suppressed dummies, and legal\n // post-raise/lower algebra may reuse those labels (see plan §M9).\n const labels = [\n node.upperIndex.label,\n node.lowerIndices[0].label,\n node.lowerIndices[1].label,\n node.lowerIndices[2].label,\n ];\n const seen = new Set<string>();\n for (const label of labels) {\n if (seen.has(label)) {\n throw new IndexLabelCollisionError(label, 2, ['riemann-tensor']);\n }\n seen.add(label);\n }\n\n const freeIndices = new Map<string, { upper: number; lower: number }>();\n freeIndices.set(node.upperIndex.label, { upper: 1, lower: 0 });\n for (const idx of node.lowerIndices) {\n freeIndices.set(idx.label, { upper: 0, lower: 1 });\n }\n\n // F8/I3: Riemann carries inverse-length-squared. Hard-coded — same shape\n // as the dim is structurally fixed for every Riemann tensor regardless of\n // metric dim. (The metric is treated as dimensionless per our convention.)\n const dim: Dimension = { L: -2, M: 0, T: 0, I: 0, Theta: 0, N: 0, J: 0 };\n\n // Role intentionally omitted — Riemann is a derived curvature object,\n // not a primary field; downstream tensor-product / equation consumers\n // don't need a role tag here. Mirrors CovariantDerivativeNode's\n // role-on-passthrough-only pattern.\n return { dim, freeIndices };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/dimensional/connection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/dimensional/connection.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * v0.4.0 connection-layer helpers (composite-formula builders that produce\n * trees of v0.3.0 AST nodes). The substantive new operator (∇_μ) is a\n * dedicated ExprNode kind defined in connection-validators.ts; this module\n * holds the Christoffel formula builder (a composite, like raise/lower).\n *\n * Per docs/specification/Part-IX-Connection-Layer.md (Task 18) and\n * v0.4.0-Design.md §5.\n *\n * @module dimensional/connection\n */\n\nimport { DIMENSIONLESS } from './types.js';\nimport { equals, format } from './algebra.js';\nimport { contract, tsym } from './tensor.js';\nimport type { TensorSymbolNode } from './tensor.js';\nimport { metric, pderiv } from './metric.js';\nimport type { MetricTensorNode } from './metric-validators.js';\nimport type { ExprNode } from './validator.js';\nimport { freshLabel } from './fresh-label.js';\n\n/**\n * Christoffel symbol Γ^λ_μν = (1/2) g^λρ (∂_μ g_ρν + ∂_ν g_ρμ − ∂_ρ g_μν).\n *\n * Builds a composite tree of v0.3.0 nodes. The negation is encoded as binary\n * subtraction at the outer level: (∂_μ g_ρν + ∂_ν g_ρμ) − ∂_ρ g_μν.\n * Unary minus is NOT supported in v0.4.0 (validator special-cases '-' as\n * binary-only).\n *\n * The fresh dummy label ρ is generated via the deterministic freshLabel scheme\n * (Part-VIII §VIII.5 TENSOR-RULE raise-lower-fresh-label-deterministic):\n * tries 'ρ' first; falls back to 'ρ_1', 'ρ_2', … until non-colliding.\n *\n * Per v0.4.0-Design.md §5; Levi-Civita connection only.\n *\n * @param gLower Covariant metric g_ab (both indices lower).\n * @param gInverse Contravariant inverse metric g^ab (both indices upper).\n * @param upper Free upper index label λ.\n * @param lowerA First free lower index label μ.\n * @param lowerB Second free lower index label ν.\n * @param xCoord Coordinate tensor x^α — used as the wrt argument for pderiv.\n *\n * @public\n */\nexport function christoffel(\n gLower: MetricTensorNode,\n gInverse: MetricTensorNode,\n upper: string, // λ\n lowerA: string, // μ\n lowerB: string, // ν\n xCoord: TensorSymbolNode,\n): ExprNode {\n // Geometrized-convention precondition: this builder's Γ ~ 1/LENGTH dimension\n // and the numerical lowering both assume a DIMENSIONLESS metric. A dimensionful\n // metric would silently produce a wrong-dimensioned connection — assert rather\n // than let it through.\n if (!equals(gLower.dim, DIMENSIONLESS) || !equals(gInverse.dim, DIMENSIONLESS)) {\n throw new TypeError(\n `christoffel: requires a geometrized (dimensionless) metric — got ` +\n `gLower.dim=${format(gLower.dim)}, gInverse.dim=${format(gInverse.dim)}.`,\n );\n }\n\n // Collect labels in use to generate a fresh dummy.\n const taken = new Set<string>([upper, lowerA, lowerB]);\n for (const idx of gLower.indices) taken.add(idx.label);\n for (const idx of gInverse.indices) taken.add(idx.label);\n // Finding #2 fix: include xCoord's own index labels so the fresh dummy\n // cannot alias a coordinate-tensor index (e.g. xCoord with label 'ρ').\n for (const idx of xCoord.indices) taken.add(idx.label);\n const rho = freshLabel('ρ', taken);\n\n // Renamed inverse metric so its indices match: g^{λ rho}.\n const gInverseRenamed: MetricTensorNode = metric(\n gInverse.name,\n [\n { label: upper, variance: 'upper' },\n { label: rho, variance: 'upper' },\n ],\n gInverse.dim,\n gInverse.signature,\n gInverse.derivativeStrategy,\n );\n\n // The three lowered metrics: g_{ρ ν}, g_{ρ μ}, g_{μ ν}.\n const gRho_nu: MetricTensorNode = metric(gLower.name,\n [{ label: rho, variance: 'lower' }, { label: lowerB, variance: 'lower' }],\n gLower.dim, gLower.signature, gLower.derivativeStrategy);\n const gRho_mu: MetricTensorNode = metric(gLower.name,\n [{ label: rho, variance: 'lower' }, { label: lowerA, variance: 'lower' }],\n gLower.dim, gLower.signature, gLower.derivativeStrategy);\n const gMu_nu: MetricTensorNode = metric(gLower.name,\n [{ label: lowerA, variance: 'lower' }, { label: lowerB, variance: 'lower' }],\n gLower.dim, gLower.signature, gLower.derivativeStrategy);\n\n // The three pderiv terms: ∂_μ g_{ρν}, ∂_ν g_{ρμ}, ∂_ρ g_{μν}.\n const dmu_gRhoNu = pderiv(gRho_nu, xCoord, { label: lowerA, variance: 'lower' });\n const dnu_gRhoMu = pderiv(gRho_mu, xCoord, { label: lowerB, variance: 'lower' });\n const drho_gMuNu = pderiv(gMu_nu, xCoord, { label: rho, variance: 'lower' });\n\n // Sum: (∂_μ g_{ρν} + ∂_ν g_{ρμ}) − ∂_ρ g_{μν}.\n // Binary subtraction — unary minus is NOT supported in v0.4.0.\n const innerSum: ExprNode = {\n kind: 'op', op: '+',\n args: [dmu_gRhoNu, dnu_gRhoMu],\n };\n const sumExpr: ExprNode = {\n kind: 'op', op: '-',\n args: [innerSum, drho_gMuNu], // binary subtraction\n };\n\n // Half-factor: dimensionless scalar.\n const half: ExprNode = { kind: 'symbol', name: '(1/2)', dim: DIMENSIONLESS };\n\n // Final: (1/2) · g^{λρ} · sumExpr\n // Γ has units 1/LENGTH (geometrized DIMENSIONLESS metric).\n return contract(half, gInverseRenamed, sumExpr);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constant-rows.d.ts","sourceRoot":"","sources":["../../src/dimensional/constant-rows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA0BH,qIAAqI;AACrI,MAAM,WAAW,WAAW;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sFAAsF;IACtF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,6FAA6F;IAC7F,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,0IAA0I;IAC1I,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,sGAAsG;IACtG,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;CAC5B;AAoBD,2FAA2F;AAC3F,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,
|
|
1
|
+
{"version":3,"file":"constant-rows.d.ts","sourceRoot":"","sources":["../../src/dimensional/constant-rows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA0BH,qIAAqI;AACrI,MAAM,WAAW,WAAW;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sFAAsF;IACtF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,6FAA6F;IAC7F,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,0IAA0I;IAC1I,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,sGAAsG;IACtG,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;CAC5B;AAoBD,2FAA2F;AAC3F,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EA6E/C,CAAC;AAUF,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAErE"}
|
|
@@ -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,14 +25,16 @@ 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 2018 (${OWNER} R_INF_SI)` }),
|
|
36
38
|
row({ name: 'G', value: G_SI, unit: 'm^3/(kg*s^2)', canonical: true, mathts: 'gravitationConstant',
|
|
37
39
|
meaning: 'Newtonian gravitational constant', source: `CODATA 2018 (${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,
|
|
@@ -50,7 +52,7 @@ 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,
|
|
55
|
+
row({ name: 'epsilon_0', spellings: ['epsilon0', 'eps0', 'vacuum-permittivity'], value: EPS0_SI, unit: 'F/m', canonical: true,
|
|
54
56
|
meaning: 'vacuum permittivity', source: `CODATA 2018 (${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
58
|
meaning: 'Stefan–Boltzmann constant', source: `CODATA 2018 (${OWNER} SIGMA_SB_SI)` }),
|
|
@@ -63,7 +65,7 @@ export const CONSTANT_ROWS = [
|
|
|
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
67
|
meaning: 'unified atomic mass unit (atomic mass constant)', source: `CODATA 2018 (${OWNER} M_U_SI)` }),
|
|
66
|
-
row({ name: 'm_e', spellings: ['electron_mass'], value: M_E_SI, unit: 'kg', canonical: true, mathts: 'electronMass',
|
|
68
|
+
row({ name: 'm_e', spellings: ['electron_mass', 'electron-mass'], value: M_E_SI, unit: 'kg', canonical: true, mathts: 'electronMass',
|
|
67
69
|
meaning: 'electron mass', source: `CODATA 2018 (${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',
|
|
@@ -89,6 +91,8 @@ export const CONSTANT_ROWS = [
|
|
|
89
91
|
meaning: 'Thomson cross section', source: `CODATA 2018 (${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 2018 (${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 2018 (${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 2018 (${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 2018 (${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 2018 (${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 2018 (${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 2018 (${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 2018 (${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 2018 (${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.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;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,KAAK,GAAmC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEtF;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAc,EAAE,IAAY,EAAE,GAAc;IAC9E,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACtD,KAAK,IAAI;YACP,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QACpF,KAAK,gBAAgB;YACnB,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QACpE,KAAK,KAAK;YACR,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QACpE;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,SAAS,eAAe,CAAC,IAAc;IACrC,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzB,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,iBAAiB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAc,EACd,OAAe,EACf,SAAoB;IAEpB,MAAM,EAAE,GAAG,eAAe,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IAC9E,MAAM,EAAE,GAAG,eAAe,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACvE,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAE5C,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IACrB,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,4CAA4C;IACtE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC,oBAAoB;IAC7E,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACnD,8EAA8E;IAC9E,8EAA8E;IAC9E,8EAA8E;IAC9E,6EAA6E;IAC7E,+EAA+E;IAC/E,MAAM,OAAO,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,YAAY;YAAE,OAAO,IAAI,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IAC1B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,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 { divide, power, EXPONENT_TOL } from './algebra.js';\nimport type { ExprNode } from './validator.js';\nimport { validate } from './validator.js';\n\nconst BASES: ReadonlyArray<keyof Dimension> = ['L', 'M', 'T', 'I', 'Theta', 'N', 'J'];\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"}
|