universal-physics-tensor 0.29.0 → 0.30.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/bin/upt.mjs +9 -830
- package/dist/bridges/confrontation-coverage.d.ts +15 -0
- package/dist/bridges/confrontation-coverage.d.ts.map +1 -1
- package/dist/bridges/confrontation-coverage.js +6 -1
- package/dist/bridges/confrontation-coverage.js.map +1 -1
- package/dist/bridges/descriptor.d.ts +54 -0
- package/dist/bridges/descriptor.d.ts.map +1 -0
- package/dist/bridges/descriptor.js +67 -0
- package/dist/bridges/descriptor.js.map +1 -0
- package/dist/bridges/equations/_be-helpers.d.ts +1 -2
- package/dist/bridges/equations/_be-helpers.d.ts.map +1 -1
- package/dist/bridges/equations/_be-helpers.js +3 -3
- package/dist/bridges/equations/_be-helpers.js.map +1 -1
- package/dist/bridges/equations/be-20-vacuum-energy.d.ts +1 -1
- package/dist/bridges/equations/be-20-vacuum-energy.d.ts.map +1 -1
- package/dist/bridges/equations/be-20-vacuum-energy.js +5 -3
- package/dist/bridges/equations/be-20-vacuum-energy.js.map +1 -1
- package/dist/bridges/equations/be-21-kss-bound.d.ts +1 -1
- package/dist/bridges/equations/be-21-kss-bound.js +1 -1
- package/dist/bridges/equations/be-25-iit-phi.d.ts +12 -16
- package/dist/bridges/equations/be-25-iit-phi.d.ts.map +1 -1
- package/dist/bridges/equations/be-25-iit-phi.js +12 -16
- package/dist/bridges/equations/be-25-iit-phi.js.map +1 -1
- package/dist/bridges/equations/be-26-dna-tunneling.d.ts +6 -6
- package/dist/bridges/equations/be-26-dna-tunneling.js +6 -6
- package/dist/bridges/equations/be-40-composite-higgs.d.ts +9 -7
- package/dist/bridges/equations/be-40-composite-higgs.d.ts.map +1 -1
- package/dist/bridges/equations/be-40-composite-higgs.js +9 -7
- package/dist/bridges/equations/be-40-composite-higgs.js.map +1 -1
- package/dist/bridges/equations/be-50-wheeler-feynman.d.ts +0 -34
- package/dist/bridges/equations/be-50-wheeler-feynman.d.ts.map +1 -1
- package/dist/bridges/equations/be-50-wheeler-feynman.js +1 -1
- package/dist/bridges/equations/be-50-wheeler-feynman.js.map +1 -1
- package/dist/canonical/entries/_l1-build.d.ts +4 -5
- package/dist/canonical/entries/_l1-build.d.ts.map +1 -1
- package/dist/canonical/entries/_l1-build.js +3 -11
- package/dist/canonical/entries/_l1-build.js.map +1 -1
- package/dist/canonical/entries/atomic.d.ts +6 -5
- package/dist/canonical/entries/atomic.d.ts.map +1 -1
- package/dist/canonical/entries/atomic.js +61 -1
- package/dist/canonical/entries/atomic.js.map +1 -1
- package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -1
- package/dist/canonical/entries/dimensional-classics.js +1 -10
- package/dist/canonical/entries/dimensional-classics.js.map +1 -1
- package/dist/canonical/entries/electromagnetism.d.ts.map +1 -1
- package/dist/canonical/entries/electromagnetism.js +49 -1
- package/dist/canonical/entries/electromagnetism.js.map +1 -1
- package/dist/canonical/entries/relativity.d.ts +0 -3
- package/dist/canonical/entries/relativity.d.ts.map +1 -1
- package/dist/canonical/entries/relativity.js +51 -3
- package/dist/canonical/entries/relativity.js.map +1 -1
- package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts +7 -4
- package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
- package/dist/canonical/entries/thermo-nuclear-cosmo.js +117 -1
- package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
- package/dist/canonical/linkage.d.ts +5 -0
- package/dist/canonical/linkage.d.ts.map +1 -1
- package/dist/canonical/linkage.js +54 -24
- package/dist/canonical/linkage.js.map +1 -1
- package/dist/canonical/registry.d.ts +6 -1
- package/dist/canonical/registry.d.ts.map +1 -1
- package/dist/canonical/registry.js +6 -5
- package/dist/canonical/registry.js.map +1 -1
- package/dist/cli/args.d.ts +23 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +74 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/command.d.ts +46 -0
- package/dist/cli/command.d.ts.map +1 -0
- package/dist/cli/command.js +51 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/commands/_discovery-opts.d.ts +16 -0
- package/dist/cli/commands/_discovery-opts.d.ts.map +1 -0
- package/dist/cli/commands/_discovery-opts.js +33 -0
- package/dist/cli/commands/_discovery-opts.js.map +1 -0
- package/dist/cli/commands/audit.d.ts +3 -0
- package/dist/cli/commands/audit.d.ts.map +1 -0
- package/dist/cli/commands/audit.js +71 -0
- package/dist/cli/commands/audit.js.map +1 -0
- package/dist/cli/commands/candidates.d.ts +3 -0
- package/dist/cli/commands/candidates.d.ts.map +1 -0
- package/dist/cli/commands/candidates.js +46 -0
- package/dist/cli/commands/candidates.js.map +1 -0
- package/dist/cli/commands/canonical.d.ts +3 -0
- package/dist/cli/commands/canonical.d.ts.map +1 -0
- package/dist/cli/commands/canonical.js +38 -0
- package/dist/cli/commands/canonical.js.map +1 -0
- package/dist/cli/commands/connectors.d.ts +3 -0
- package/dist/cli/commands/connectors.d.ts.map +1 -0
- package/dist/cli/commands/connectors.js +51 -0
- package/dist/cli/commands/connectors.js.map +1 -0
- package/dist/cli/commands/coverage.d.ts +3 -0
- package/dist/cli/commands/coverage.d.ts.map +1 -0
- package/dist/cli/commands/coverage.js +39 -0
- package/dist/cli/commands/coverage.js.map +1 -0
- package/dist/cli/commands/derive.d.ts +3 -0
- package/dist/cli/commands/derive.d.ts.map +1 -0
- package/dist/cli/commands/derive.js +143 -0
- package/dist/cli/commands/derive.js.map +1 -0
- package/dist/cli/commands/discover.d.ts +3 -0
- package/dist/cli/commands/discover.d.ts.map +1 -0
- package/dist/cli/commands/discover.js +137 -0
- package/dist/cli/commands/discover.js.map +1 -0
- package/dist/cli/commands/eval.d.ts +3 -0
- package/dist/cli/commands/eval.d.ts.map +1 -0
- package/dist/cli/commands/eval.js +64 -0
- package/dist/cli/commands/eval.js.map +1 -0
- package/dist/cli/commands/explain.d.ts +3 -0
- package/dist/cli/commands/explain.d.ts.map +1 -0
- package/dist/cli/commands/explain.js +81 -0
- package/dist/cli/commands/explain.js.map +1 -0
- package/dist/cli/commands/index.d.ts +21 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +21 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/map.d.ts +3 -0
- package/dist/cli/commands/map.d.ts.map +1 -0
- package/dist/cli/commands/map.js +245 -0
- package/dist/cli/commands/map.js.map +1 -0
- package/dist/cli/commands/predict.d.ts +3 -0
- package/dist/cli/commands/predict.d.ts.map +1 -0
- package/dist/cli/commands/predict.js +54 -0
- package/dist/cli/commands/predict.js.map +1 -0
- package/dist/cli/commands/priority.d.ts +3 -0
- package/dist/cli/commands/priority.d.ts.map +1 -0
- package/dist/cli/commands/priority.js +63 -0
- package/dist/cli/commands/priority.js.map +1 -0
- package/dist/cli/commands/recover.d.ts +3 -0
- package/dist/cli/commands/recover.d.ts.map +1 -0
- package/dist/cli/commands/recover.js +51 -0
- package/dist/cli/commands/recover.js.map +1 -0
- package/dist/cli/commands/symbolic.d.ts +3 -0
- package/dist/cli/commands/symbolic.d.ts.map +1 -0
- package/dist/cli/commands/symbolic.js +110 -0
- package/dist/cli/commands/symbolic.js.map +1 -0
- package/dist/cli/errors.d.ts +14 -0
- package/dist/cli/errors.d.ts.map +1 -0
- package/dist/cli/errors.js +20 -0
- package/dist/cli/errors.js.map +1 -0
- package/dist/cli/graphs.d.ts +16 -0
- package/dist/cli/graphs.d.ts.map +1 -0
- package/dist/cli/graphs.js +30 -0
- package/dist/cli/graphs.js.map +1 -0
- package/dist/cli/main.d.ts +33 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +219 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/output.d.ts +19 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +57 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/cli/version.d.ts +11 -0
- package/dist/cli/version.d.ts.map +1 -0
- package/dist/cli/version.js +16 -0
- package/dist/cli/version.js.map +1 -0
- package/dist/cli-api.d.ts +28 -0
- package/dist/cli-api.d.ts.map +1 -0
- package/dist/cli-api.js +31 -0
- package/dist/cli-api.js.map +1 -0
- package/dist/composition/bridge-analysis.d.ts +13 -15
- package/dist/composition/bridge-analysis.d.ts.map +1 -1
- package/dist/composition/bridge-analysis.js +54 -39
- package/dist/composition/bridge-analysis.js.map +1 -1
- package/dist/composition/bridge-prediction.d.ts +4 -3
- package/dist/composition/bridge-prediction.d.ts.map +1 -1
- package/dist/composition/compose-symbolic.d.ts.map +1 -1
- package/dist/composition/compose-symbolic.js +12 -0
- package/dist/composition/compose-symbolic.js.map +1 -1
- package/dist/composition/discovery.d.ts.map +1 -1
- package/dist/composition/discovery.js +40 -12
- package/dist/composition/discovery.js.map +1 -1
- package/dist/composition/edges/_catalog-helpers.d.ts +34 -0
- package/dist/composition/edges/_catalog-helpers.d.ts.map +1 -0
- package/dist/composition/edges/_catalog-helpers.js +75 -0
- package/dist/composition/edges/_catalog-helpers.js.map +1 -0
- package/dist/composition/edges/calibration.d.ts.map +1 -1
- package/dist/composition/edges/calibration.js +1 -1
- package/dist/composition/edges/calibration.js.map +1 -1
- package/dist/composition/edges/catalog-condensed-matter.d.ts +64 -0
- package/dist/composition/edges/catalog-condensed-matter.d.ts.map +1 -0
- package/dist/composition/edges/catalog-condensed-matter.js +226 -0
- package/dist/composition/edges/catalog-condensed-matter.js.map +1 -0
- package/dist/composition/edges/catalog-fields.d.ts +68 -0
- package/dist/composition/edges/catalog-fields.d.ts.map +1 -0
- package/dist/composition/edges/catalog-fields.js +206 -0
- package/dist/composition/edges/catalog-fields.js.map +1 -0
- package/dist/composition/edges/catalog-full.d.ts +5 -263
- package/dist/composition/edges/catalog-full.d.ts.map +1 -1
- package/dist/composition/edges/catalog-full.js +9 -959
- package/dist/composition/edges/catalog-full.js.map +1 -1
- package/dist/composition/edges/catalog-gravitation-cosmology.d.ts +80 -0
- package/dist/composition/edges/catalog-gravitation-cosmology.d.ts.map +1 -0
- package/dist/composition/edges/catalog-gravitation-cosmology.js +245 -0
- package/dist/composition/edges/catalog-gravitation-cosmology.js.map +1 -0
- package/dist/composition/edges/catalog-quantum.d.ts +85 -0
- package/dist/composition/edges/catalog-quantum.d.ts.map +1 -0
- package/dist/composition/edges/catalog-quantum.js +252 -0
- package/dist/composition/edges/catalog-quantum.js.map +1 -0
- package/dist/composition/expr-simplify.d.ts +2 -6
- package/dist/composition/expr-simplify.d.ts.map +1 -1
- package/dist/composition/expr-simplify.js +1 -1
- package/dist/composition/expr-simplify.js.map +1 -1
- package/dist/composition/expr-subst.d.ts +2 -1
- package/dist/composition/expr-subst.d.ts.map +1 -1
- package/dist/composition/proposed-bridges.d.ts +4 -4
- package/dist/composition/proposed-bridges.d.ts.map +1 -1
- package/dist/composition/proposed-bridges.js +1 -3
- package/dist/composition/proposed-bridges.js.map +1 -1
- package/dist/composition/quantities/_dims.d.ts +35 -0
- package/dist/composition/quantities/_dims.d.ts.map +1 -0
- package/dist/composition/quantities/_dims.js +45 -0
- package/dist/composition/quantities/_dims.js.map +1 -0
- package/dist/composition/quantities/common.d.ts +69 -0
- package/dist/composition/quantities/common.d.ts.map +1 -0
- package/dist/composition/quantities/common.js +200 -0
- package/dist/composition/quantities/common.js.map +1 -0
- package/dist/composition/quantities/condensed-matter.d.ts +63 -0
- package/dist/composition/quantities/condensed-matter.d.ts.map +1 -0
- package/dist/composition/quantities/condensed-matter.js +185 -0
- package/dist/composition/quantities/condensed-matter.js.map +1 -0
- package/dist/composition/quantities/fields.d.ts +59 -0
- package/dist/composition/quantities/fields.d.ts.map +1 -0
- package/dist/composition/quantities/fields.js +171 -0
- package/dist/composition/quantities/fields.js.map +1 -0
- package/dist/composition/quantities/gravitation-cosmology.d.ts +67 -0
- package/dist/composition/quantities/gravitation-cosmology.d.ts.map +1 -0
- package/dist/composition/quantities/gravitation-cosmology.js +199 -0
- package/dist/composition/quantities/gravitation-cosmology.js.map +1 -0
- package/dist/composition/quantities/quantum.d.ts +61 -0
- package/dist/composition/quantities/quantum.d.ts.map +1 -0
- package/dist/composition/quantities/quantum.js +178 -0
- package/dist/composition/quantities/quantum.js.map +1 -0
- package/dist/composition/quantities.d.ts +5 -263
- package/dist/composition/quantities.d.ts.map +1 -1
- package/dist/composition/quantities.js +7 -983
- package/dist/composition/quantities.js.map +1 -1
- package/dist/composition/retrodiction.d.ts.map +1 -1
- package/dist/composition/retrodiction.js +15 -3
- package/dist/composition/retrodiction.js.map +1 -1
- package/dist/composition/symbolic-constants.d.ts +3 -2
- package/dist/composition/symbolic-constants.d.ts.map +1 -1
- package/dist/core/tensor.d.ts +6 -0
- package/dist/core/tensor.d.ts.map +1 -1
- package/dist/core/tensor.js +6 -0
- package/dist/core/tensor.js.map +1 -1
- package/dist/diff/bridge-ast-gradient.js +1 -1
- package/dist/diff/bridge-ast-gradient.js.map +1 -1
- package/dist/diff/bridge-gradient.d.ts.map +1 -1
- package/dist/diff/bridge-gradient.js +15 -4
- package/dist/diff/bridge-gradient.js.map +1 -1
- package/dist/dimensional/algebra.d.ts +24 -0
- package/dist/dimensional/algebra.d.ts.map +1 -1
- package/dist/dimensional/algebra.js +31 -5
- package/dist/dimensional/algebra.js.map +1 -1
- package/dist/dimensional/ast-builders.d.ts +25 -0
- package/dist/dimensional/ast-builders.d.ts.map +1 -0
- package/dist/dimensional/ast-builders.js +27 -0
- package/dist/dimensional/ast-builders.js.map +1 -0
- package/dist/dimensional/ast-types.d.ts +193 -0
- package/dist/dimensional/ast-types.d.ts.map +1 -0
- package/dist/dimensional/ast-types.js +20 -0
- package/dist/dimensional/ast-types.js.map +1 -0
- package/dist/dimensional/buckingham.d.ts.map +1 -1
- package/dist/dimensional/buckingham.js +7 -4
- package/dist/dimensional/buckingham.js.map +1 -1
- package/dist/dimensional/connection-validators.d.ts +3 -38
- package/dist/dimensional/connection-validators.d.ts.map +1 -1
- package/dist/dimensional/connection-validators.js.map +1 -1
- package/dist/dimensional/connection.d.ts.map +1 -1
- package/dist/dimensional/connection.js +9 -0
- package/dist/dimensional/connection.js.map +1 -1
- package/dist/dimensional/curvature-composite.d.ts +2 -1
- package/dist/dimensional/curvature-composite.d.ts.map +1 -1
- package/dist/dimensional/curvature-invariants.d.ts +2 -11
- package/dist/dimensional/curvature-invariants.d.ts.map +1 -1
- package/dist/dimensional/curvature-invariants.js.map +1 -1
- package/dist/dimensional/curvature.d.ts +5 -24
- package/dist/dimensional/curvature.d.ts.map +1 -1
- package/dist/dimensional/curvature.js.map +1 -1
- package/dist/dimensional/dimension-inference.d.ts.map +1 -1
- package/dist/dimensional/dimension-inference.js +11 -5
- package/dist/dimensional/dimension-inference.js.map +1 -1
- package/dist/dimensional/einstein-equation.d.ts +2 -11
- package/dist/dimensional/einstein-equation.d.ts.map +1 -1
- package/dist/dimensional/einstein-equation.js.map +1 -1
- package/dist/dimensional/killing-validators.d.ts +2 -19
- package/dist/dimensional/killing-validators.d.ts.map +1 -1
- package/dist/dimensional/killing-validators.js.map +1 -1
- package/dist/dimensional/metric-validators.d.ts +5 -39
- package/dist/dimensional/metric-validators.d.ts.map +1 -1
- package/dist/dimensional/metric-validators.js.map +1 -1
- package/dist/dimensional/stress-energy-validators.d.ts +2 -21
- package/dist/dimensional/stress-energy-validators.d.ts.map +1 -1
- package/dist/dimensional/stress-energy-validators.js.map +1 -1
- package/dist/dimensional/tensor.d.ts +2 -32
- package/dist/dimensional/tensor.d.ts.map +1 -1
- package/dist/dimensional/tensor.js.map +1 -1
- package/dist/dimensional/validator.d.ts +12 -58
- package/dist/dimensional/validator.d.ts.map +1 -1
- package/dist/dimensional/validator.js +12 -9
- package/dist/dimensional/validator.js.map +1 -1
- package/dist/dimensional/weyl-validators.d.ts +2 -18
- package/dist/dimensional/weyl-validators.d.ts.map +1 -1
- package/dist/dimensional/weyl-validators.js.map +1 -1
- package/dist/numerical/be37-covariant-eikonal.d.ts +12 -11
- package/dist/numerical/be37-covariant-eikonal.d.ts.map +1 -1
- package/dist/numerical/be37-covariant-eikonal.js +23 -8
- package/dist/numerical/be37-covariant-eikonal.js.map +1 -1
- package/dist/numerical/christoffel-flat.d.ts +10 -1
- package/dist/numerical/christoffel-flat.d.ts.map +1 -1
- package/dist/numerical/christoffel-flat.js +11 -2
- package/dist/numerical/christoffel-flat.js.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.d.ts +4 -1
- package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.js +72 -14
- package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
- package/dist/numerical/engine-registry.d.ts.map +1 -1
- package/dist/numerical/engine-registry.js +11 -0
- package/dist/numerical/engine-registry.js.map +1 -1
- package/dist/numerical/float64-engine.d.ts.map +1 -1
- package/dist/numerical/float64-engine.js +20 -28
- package/dist/numerical/float64-engine.js.map +1 -1
- package/dist/numerical/formula-dimension.d.ts.map +1 -1
- package/dist/numerical/formula-dimension.js +1 -1
- package/dist/numerical/formula-dimension.js.map +1 -1
- package/dist/numerical/formula.d.ts +0 -2
- package/dist/numerical/formula.d.ts.map +1 -1
- package/dist/numerical/formula.js +7 -3
- package/dist/numerical/formula.js.map +1 -1
- package/dist/numerical/geodesic-integrator.d.ts +6 -1
- package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
- package/dist/numerical/geodesic-integrator.js +14 -6
- package/dist/numerical/geodesic-integrator.js.map +1 -1
- package/dist/numerical/gl4-integrator.d.ts.map +1 -1
- package/dist/numerical/gl4-integrator.js +106 -43
- package/dist/numerical/gl4-integrator.js.map +1 -1
- package/dist/numerical/lowering.d.ts.map +1 -1
- package/dist/numerical/lowering.js +8 -5
- package/dist/numerical/lowering.js.map +1 -1
- package/dist/numerical/null-ic.d.ts +4 -3
- package/dist/numerical/null-ic.d.ts.map +1 -1
- package/dist/numerical/null-ic.js +4 -3
- package/dist/numerical/null-ic.js.map +1 -1
- package/dist/numerical/perihelion-finder.d.ts.map +1 -1
- package/dist/numerical/perihelion-finder.js +15 -1
- package/dist/numerical/perihelion-finder.js.map +1 -1
- package/dist/numerical/quadrature.d.ts +3 -2
- package/dist/numerical/quadrature.d.ts.map +1 -1
- package/dist/numerical/quadrature.js +8 -1
- package/dist/numerical/quadrature.js.map +1 -1
- package/dist/numerical/weyl-lowering.d.ts.map +1 -1
- package/dist/numerical/weyl-lowering.js +28 -2
- package/dist/numerical/weyl-lowering.js.map +1 -1
- package/package.json +3 -2
- package/dist/canonical/entries/l1-gravity-thermo.d.ts +0 -12
- package/dist/canonical/entries/l1-gravity-thermo.d.ts.map +0 -1
- package/dist/canonical/entries/l1-gravity-thermo.js +0 -165
- package/dist/canonical/entries/l1-gravity-thermo.js.map +0 -1
- package/dist/canonical/entries/l1-quantum-em.d.ts +0 -10
- package/dist/canonical/entries/l1-quantum-em.d.ts.map +0 -1
- package/dist/canonical/entries/l1-quantum-em.js +0 -141
- package/dist/canonical/entries/l1-quantum-em.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curvature.d.ts","sourceRoot":"","sources":["../../src/dimensional/curvature.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"curvature.d.ts","sourceRoot":"","sources":["../../src/dimensional/curvature.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curvature.js","sourceRoot":"","sources":["../../src/dimensional/curvature.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
1
|
+
{"version":3,"file":"curvature.js","sourceRoot":"","sources":["../../src/dimensional/curvature.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dimension-inference.d.ts","sourceRoot":"","sources":["../../src/dimensional/dimension-inference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK/C;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,GAAG,QAAQ,CAa1F;AAQD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,SAAS,GACnB,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"dimension-inference.d.ts","sourceRoot":"","sources":["../../src/dimensional/dimension-inference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK/C;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,GAAG,QAAQ,CAa1F;AAQD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,SAAS,GACnB,SAAS,GAAG,IAAI,CAyBlB"}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* @module dimensional/dimension-inference
|
|
19
19
|
*/
|
|
20
20
|
import { DIMENSIONLESS, LENGTH } from './types.js';
|
|
21
|
-
import { divide, power } from './algebra.js';
|
|
21
|
+
import { divide, power, EXPONENT_TOL } from './algebra.js';
|
|
22
22
|
import { validate } from './validator.js';
|
|
23
23
|
const BASES = ['L', 'M', 'T', 'I', 'Theta', 'N', 'J'];
|
|
24
24
|
/**
|
|
@@ -68,12 +68,18 @@ export function inferUnknownDimension(expr, unknown, targetDim) {
|
|
|
68
68
|
return null; // not a clean power
|
|
69
69
|
}
|
|
70
70
|
const result = power(divide(targetDim, d0), 1 / p);
|
|
71
|
-
//
|
|
72
|
-
//
|
|
71
|
+
// Snap each exponent to its nearest integer within tolerance, then abstain if
|
|
72
|
+
// any is GENUINELY fractional (e.g. x^2 = [length] ⟹ [length]^½ is not a real
|
|
73
|
+
// physical dimension). The tolerance absorbs FP round-off that arrives in the
|
|
74
|
+
// target from a v0.20 fractional-power computation, so a real integer answer
|
|
75
|
+
// (L = 2 + ε) is not spuriously rejected — consistent with `equals` (bb15432).
|
|
76
|
+
const snapped = { ...result };
|
|
73
77
|
for (const base of BASES) {
|
|
74
|
-
|
|
78
|
+
const rounded = Math.round(result[base]);
|
|
79
|
+
if (Math.abs(result[base] - rounded) > EXPONENT_TOL)
|
|
75
80
|
return null;
|
|
81
|
+
snapped[base] = rounded;
|
|
76
82
|
}
|
|
77
|
-
return
|
|
83
|
+
return snapped;
|
|
78
84
|
}
|
|
79
85
|
//# sourceMappingURL=dimension-inference.js.map
|
|
@@ -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,MAAM,cAAc,CAAC;
|
|
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"}
|
|
@@ -25,9 +25,8 @@
|
|
|
25
25
|
* @module dimensional/einstein-equation
|
|
26
26
|
*/
|
|
27
27
|
import type { Dimension } from './types.js';
|
|
28
|
-
import type {
|
|
29
|
-
|
|
30
|
-
import type { StressEnergyTensorNode, CosmologicalConstantNode } from './stress-energy-validators.js';
|
|
28
|
+
import type { EinsteinFieldEquationNode } from './ast-types.js';
|
|
29
|
+
export type { EinsteinFieldEquationNode } from './ast-types.js';
|
|
31
30
|
/**
|
|
32
31
|
* AST node for the Einstein field equation G_μν + Λ g_μν = (8πG/c⁴) T_μν.
|
|
33
32
|
*
|
|
@@ -42,14 +41,6 @@ import type { StressEnergyTensorNode, CosmologicalConstantNode } from './stress-
|
|
|
42
41
|
*
|
|
43
42
|
* @public
|
|
44
43
|
*/
|
|
45
|
-
export interface EinsteinFieldEquationNode {
|
|
46
|
-
readonly kind: 'einstein-equation';
|
|
47
|
-
readonly lhs: EinsteinTensorNode;
|
|
48
|
-
readonly cosmological: CosmologicalConstantNode | null;
|
|
49
|
-
readonly metric: MetricTensorNode;
|
|
50
|
-
readonly rhs: StressEnergyTensorNode;
|
|
51
|
-
readonly coupling: 'einstein';
|
|
52
|
-
}
|
|
53
44
|
/**
|
|
54
45
|
* Result of validating an EinsteinFieldEquationNode.
|
|
55
46
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"einstein-equation.d.ts","sourceRoot":"","sources":["../../src/dimensional/einstein-equation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"einstein-equation.d.ts","sourceRoot":"","sources":["../../src/dimensional/einstein-equation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAMV,yBAAyB,EAC1B,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAWhE;;;;;;;;;;;;;GAaG;AACH;;;;;;;;GAQG;AACH,MAAM,WAAW,qCAAqC;IACpD,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;AAuBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,yBAAyB,GAC9B,qCAAqC,CA2CvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"einstein-equation.js","sourceRoot":"","sources":["../../src/dimensional/einstein-equation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;
|
|
1
|
+
{"version":3,"file":"einstein-equation.js","sourceRoot":"","sources":["../../src/dimensional/einstein-equation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAcH,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AAkCrC,yDAAyD;AACzD,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,4EAA4E;AAC5E,0EAA0E;AAC1E,MAAM,SAAS,GAAc,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAEhF;;;;;;;GAOG;AACH,SAAS,uBAAuB,CAAC,GAAuB;IACtD,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7C,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7C,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,MAAM,UAAU,6BAA6B,CAC3C,IAA+B;IAE/B,wEAAwE;IACxE,4DAA4D;IAC5D,mEAAmE;IACnE,gEAAgE;IAChE,wDAAwD;IAExD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEzD,6EAA6E;IAC7E,2BAA2B,CACzB,2BAA2B,EAC3B,MAAM,EACN,CAAC,KAAK,EAAE,KAAK,CAAC,EACd,MAAM,EACN,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CACvD,CAAC;IAEF,8EAA8E;IAC9E,0BAA0B,CACxB,2BAA2B,EAC3B,mBAAmB,EACnB,IAAI,CAAC,GAAG,CAAC,YAAY,EACrB,SAAS,EACT,yEAAyE;QACvE,4DAA4D,CAC/D,CAAC;IAEF,6EAA6E;IAC7E,sBAAsB,CACpB,2BAA2B,EAC3B,MAAM,EACN,IAAI,CAAC,GAAG,CAAC,QAAQ,EACjB,WAAW,EACX,+CAA+C,CAChD,CAAC;IAEF,6EAA6E;IAC7E,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4C,CAAC;IACxE,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/C,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAE/C,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AAC1C,CAAC"}
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
* @module dimensional/killing-validators
|
|
14
14
|
*/
|
|
15
15
|
import type { Dimension } from './types.js';
|
|
16
|
-
import type {
|
|
17
|
-
|
|
16
|
+
import type { KillingVectorNode, ConservedChargeNode } from './ast-types.js';
|
|
17
|
+
export type { KillingVectorNode, ConservedChargeNode } from './ast-types.js';
|
|
18
18
|
/**
|
|
19
19
|
* AST node for a Killing vector ξ^μ. Rank-1 upper-variance tensor with
|
|
20
20
|
* an attached metric reference (the metric whose isometry ξ generates).
|
|
@@ -25,11 +25,6 @@ import type { MetricTensorNode } from './metric-validators.js';
|
|
|
25
25
|
*
|
|
26
26
|
* @public
|
|
27
27
|
*/
|
|
28
|
-
export interface KillingVectorNode {
|
|
29
|
-
readonly kind: 'killing-vector';
|
|
30
|
-
readonly vector: TensorSymbolNode;
|
|
31
|
-
readonly metric: MetricTensorNode;
|
|
32
|
-
}
|
|
33
28
|
interface KillingVectorValidationResult {
|
|
34
29
|
readonly dim: Dimension;
|
|
35
30
|
readonly freeIndices: Map<string, {
|
|
@@ -58,17 +53,6 @@ export declare function validateKillingVector(node: KillingVectorNode): KillingV
|
|
|
58
53
|
*
|
|
59
54
|
* @public
|
|
60
55
|
*/
|
|
61
|
-
export interface ConservedChargeNode {
|
|
62
|
-
readonly kind: 'conserved-charge';
|
|
63
|
-
/** The Killing vector ξ^μ (rank-1, upper variance). */
|
|
64
|
-
readonly killing: KillingVectorNode;
|
|
65
|
-
/**
|
|
66
|
-
* The covariant momentum p_μ (rank-1, lower variance). Must have the same
|
|
67
|
-
* index label as `killing.vector` so that the contraction ξ^μ p_μ is
|
|
68
|
-
* well-formed.
|
|
69
|
-
*/
|
|
70
|
-
readonly momentum: TensorSymbolNode;
|
|
71
|
-
}
|
|
72
56
|
interface ConservedChargeValidationResult {
|
|
73
57
|
readonly dim: Dimension;
|
|
74
58
|
readonly freeIndices: Map<string, {
|
|
@@ -90,5 +74,4 @@ interface ConservedChargeValidationResult {
|
|
|
90
74
|
* `dim(ξ) × dim(p)` via the `multiply` algebra helper.
|
|
91
75
|
*/
|
|
92
76
|
export declare function validateConservedCharge(node: ConservedChargeNode): ConservedChargeValidationResult;
|
|
93
|
-
export {};
|
|
94
77
|
//# sourceMappingURL=killing-validators.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"killing-validators.d.ts","sourceRoot":"","sources":["../../src/dimensional/killing-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"killing-validators.d.ts","sourceRoot":"","sources":["../../src/dimensional/killing-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAGV,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AAIxB,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE7E;;;;;;;;;GASG;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;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,iBAAiB,GACtB,6BAA6B,CAe/B;AAMD;;;;;;;;;;;GAWG;AAEH,UAAU,+BAA+B;IACvC,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;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,mBAAmB,GACxB,+BAA+B,CAsBjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"killing-validators.js","sourceRoot":"","sources":["../../src/dimensional/killing-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"killing-validators.js","sourceRoot":"","sources":["../../src/dimensional/killing-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AASH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAqBxC;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAuB;IAEvB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,uDAAuD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CACpF,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,oDAAoD,GAAG,CAAC,QAAQ,GAAG,CACpE,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4C,CAAC;IACxE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACnD,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC;AAC/C,CAAC;AAwBD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAyB;IAEzB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,2DAA2D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAC1F,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9C,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,wDAAwD,OAAO,kBAAkB,MAAM,GAAG,CAC3F,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAC;IACJ,CAAC;IACD,2BAA2B;IAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjE,uEAAuE;IACvE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;AACzC,CAAC"}
|
|
@@ -10,27 +10,13 @@
|
|
|
10
10
|
* @module dimensional/metric-validators
|
|
11
11
|
*/
|
|
12
12
|
import type { Dimension } from './types.js';
|
|
13
|
-
import type { Role,
|
|
14
|
-
export
|
|
15
|
-
readonly kind: 'metric-tensor';
|
|
16
|
-
readonly name: string;
|
|
17
|
-
readonly indices: ReadonlyArray<TensorIndex>;
|
|
18
|
-
readonly signature: string;
|
|
19
|
-
readonly dim: Dimension;
|
|
20
|
-
/**
|
|
21
|
-
* v0.4.0 numerical-lowering hint: which strategy the numerical engine uses
|
|
22
|
-
* to compute ∂g for Christoffel / ∇_μ. Defaults to 'computed' (use the
|
|
23
|
-
* engine's AD on the metric function). 'zero' = constant metric (∂g=0,
|
|
24
|
-
* Γ=0, ∇_μ=∂_μ). 'supplied' = user provides ∂g components in
|
|
25
|
-
* inputs.metricDerivatives. See v0.4.0-Design.md §4 and §7.
|
|
26
|
-
*/
|
|
27
|
-
readonly derivativeStrategy?: 'computed' | 'zero' | 'supplied';
|
|
28
|
-
}
|
|
13
|
+
import type { Role, MetricTensorNode, KroneckerDeltaNode, TensorPartialDerivativeNode } from './ast-types.js';
|
|
14
|
+
export type { MetricTensorNode, KroneckerDeltaNode, CovariantIndex, TensorPartialDerivativeNode, } from './ast-types.js';
|
|
29
15
|
/**
|
|
30
16
|
* Result carrier for validateMetricTensor.
|
|
31
17
|
* @public — exported for downstream consumers who type their own validators.
|
|
32
18
|
*/
|
|
33
|
-
|
|
19
|
+
interface MetricTensorValidationResult {
|
|
34
20
|
readonly dim: Dimension;
|
|
35
21
|
readonly freeIndices: Map<string, {
|
|
36
22
|
upper: number;
|
|
@@ -55,16 +41,11 @@ export declare function checkInverseMetricStructure(gLower: MetricTensorNode, gU
|
|
|
55
41
|
* Per Part-VIII §VIII.2.
|
|
56
42
|
*/
|
|
57
43
|
export declare function validateMetricTensor(node: MetricTensorNode): MetricTensorValidationResult;
|
|
58
|
-
export interface KroneckerDeltaNode {
|
|
59
|
-
readonly kind: 'kronecker-delta';
|
|
60
|
-
readonly indices: ReadonlyArray<TensorIndex>;
|
|
61
|
-
readonly dim: Dimension;
|
|
62
|
-
}
|
|
63
44
|
/**
|
|
64
45
|
* Result carrier for validateKroneckerDelta.
|
|
65
46
|
* @public — exported for downstream consumers who type their own validators.
|
|
66
47
|
*/
|
|
67
|
-
|
|
48
|
+
interface KroneckerDeltaValidationResult {
|
|
68
49
|
readonly dim: Dimension;
|
|
69
50
|
readonly freeIndices: Map<string, {
|
|
70
51
|
upper: number;
|
|
@@ -80,26 +61,11 @@ export interface KroneckerDeltaValidationResult {
|
|
|
80
61
|
* Per Part-VIII §VIII.3.
|
|
81
62
|
*/
|
|
82
63
|
export declare function validateKroneckerDelta(node: KroneckerDeltaNode): KroneckerDeltaValidationResult;
|
|
83
|
-
export interface CovariantIndex {
|
|
84
|
-
readonly label: string;
|
|
85
|
-
readonly variance: 'lower';
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* ExprNode-like — uses `unknown` for `of`/`wrt` because metric-validators.ts
|
|
89
|
-
* MUST NOT import from validator.ts (would create a module cycle). The
|
|
90
|
-
* validator's case arm threads a callback that knows the real ExprNode type.
|
|
91
|
-
*/
|
|
92
|
-
export interface TensorPartialDerivativeNode {
|
|
93
|
-
readonly kind: 'tensor-partial-derivative';
|
|
94
|
-
readonly of: unknown;
|
|
95
|
-
readonly wrt: unknown;
|
|
96
|
-
readonly wrtIndex: CovariantIndex;
|
|
97
|
-
}
|
|
98
64
|
/**
|
|
99
65
|
* Result carrier for validatePartialDerivative.
|
|
100
66
|
* @public — exported for downstream consumers who type their own validators.
|
|
101
67
|
*/
|
|
102
|
-
|
|
68
|
+
interface PartialDerivativeValidationResult {
|
|
103
69
|
readonly dim: Dimension;
|
|
104
70
|
readonly freeIndices: Map<string, {
|
|
105
71
|
upper: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metric-validators.d.ts","sourceRoot":"","sources":["../../src/dimensional/metric-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"metric-validators.d.ts","sourceRoot":"","sources":["../../src/dimensional/metric-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAEV,IAAI,EAEJ,gBAAgB,EAChB,kBAAkB,EAElB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AAKxB,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AAUxB;;;GAGG;AACH,UAAU,4BAA4B;IACpC,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;AASD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,gBAAgB,GACvB,MAAM,GAAG,IAAI,CAQf;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,gBAAgB,GACrB,4BAA4B,CAgC9B;AAED;;;GAGG;AACH,UAAU,8BAA8B;IACtC,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;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,kBAAkB,GACvB,8BAA8B,CAuBhC;AAED;;;GAGG;AACH,UAAU,iCAAiC;IACzC,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;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;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;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,2BAA2B,EACjC,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,4BAA4B,GAC9D,iCAAiC,CA+BnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metric-validators.js","sourceRoot":"","sources":["../../src/dimensional/metric-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"metric-validators.js","sourceRoot":"","sources":["../../src/dimensional/metric-validators.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
* @module dimensional/stress-energy-validators
|
|
9
9
|
*/
|
|
10
10
|
import type { Dimension } from './types.js';
|
|
11
|
-
import type {
|
|
11
|
+
import type { StressEnergyTensorNode, CosmologicalConstantNode } from './ast-types.js';
|
|
12
|
+
export type { StressEnergyTensorNode, CosmologicalConstantNode } from './ast-types.js';
|
|
12
13
|
/**
|
|
13
14
|
* AST node for the stress-energy tensor T_μν. Rank-2 lower-lower locked
|
|
14
15
|
* (Decision #2). Symmetric (Decision #12).
|
|
@@ -18,25 +19,6 @@ import type { CovariantIndex } from './metric-validators.js';
|
|
|
18
19
|
*
|
|
19
20
|
* @public
|
|
20
21
|
*/
|
|
21
|
-
export interface StressEnergyTensorNode {
|
|
22
|
-
readonly kind: 'stress-energy';
|
|
23
|
-
readonly symbol: 'T';
|
|
24
|
-
readonly indices: readonly [CovariantIndex, CovariantIndex];
|
|
25
|
-
readonly symmetry: 'symmetric';
|
|
26
|
-
readonly componentDim: Dimension;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* AST node for the cosmological constant Λ. Scalar (rank-0), dimension [L⁻²].
|
|
30
|
-
* Optional numeric value for de Sitter / ΛCDM evaluations.
|
|
31
|
-
*
|
|
32
|
-
* @public
|
|
33
|
-
*/
|
|
34
|
-
export interface CosmologicalConstantNode {
|
|
35
|
-
readonly kind: 'cosmological-constant';
|
|
36
|
-
readonly symbol: 'Λ';
|
|
37
|
-
readonly dim: Dimension;
|
|
38
|
-
readonly value?: number;
|
|
39
|
-
}
|
|
40
22
|
interface StressEnergyValidationResult {
|
|
41
23
|
readonly dim: Dimension;
|
|
42
24
|
readonly freeIndices: Map<string, {
|
|
@@ -70,5 +52,4 @@ interface CosmologicalConstantValidationResult {
|
|
|
70
52
|
* Returns `{dim, freeIndices: empty}` (scalar — no free indices).
|
|
71
53
|
*/
|
|
72
54
|
export declare function validateCosmologicalConstant(node: CosmologicalConstantNode): CosmologicalConstantValidationResult;
|
|
73
|
-
export {};
|
|
74
55
|
//# sourceMappingURL=stress-energy-validators.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stress-energy-validators.d.ts","sourceRoot":"","sources":["../../src/dimensional/stress-energy-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"stress-energy-validators.d.ts","sourceRoot":"","sources":["../../src/dimensional/stress-energy-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAEV,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAEvF;;;;;;;;GAQG;AAEH,UAAU,4BAA4B;IACpC,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;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,sBAAsB,GAC3B,4BAA4B,CAiB9B;AAGD,UAAU,oCAAoC;IAC5C,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;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,wBAAwB,GAC7B,oCAAoC,CAOtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stress-energy-validators.js","sourceRoot":"","sources":["../../src/dimensional/stress-energy-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"stress-energy-validators.js","sourceRoot":"","sources":["../../src/dimensional/stress-energy-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA2BH;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CACxC,IAA4B;IAE5B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,qDAAqD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAC3E,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,+EAA+E,GAAG,CAAC,QAAQ,IAAI,CAChG,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4C,CAAC;IACxE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/D,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/D,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC;AACjD,CAAC;AAQD;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAC1C,IAA8B;IAE9B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CACb,qDAAqD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAChF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;AACnD,CAAC"}
|
|
@@ -10,37 +10,8 @@
|
|
|
10
10
|
* @module dimensional/tensor
|
|
11
11
|
*/
|
|
12
12
|
import type { Dimension } from './types.js';
|
|
13
|
-
import type { ExprNode } from './
|
|
14
|
-
export type Variance
|
|
15
|
-
export type Role = 'coordinate' | 'field' | 'constant';
|
|
16
|
-
export interface TensorIndex {
|
|
17
|
-
readonly label: string;
|
|
18
|
-
readonly variance: Variance;
|
|
19
|
-
}
|
|
20
|
-
export interface TensorSymbolNode {
|
|
21
|
-
readonly kind: 'tensor-symbol';
|
|
22
|
-
readonly name: string;
|
|
23
|
-
readonly indices: ReadonlyArray<TensorIndex>;
|
|
24
|
-
readonly dim: Dimension;
|
|
25
|
-
/**
|
|
26
|
-
* Semantic classification of the tensor, used by v0.3.0+ work
|
|
27
|
-
* (e.g., partial-derivative dispatch). Defaults to 'field' when
|
|
28
|
-
* omitted. v0.2.0 treats this as structural metadata only —
|
|
29
|
-
* no validator behavior depends on it. Per Part-VII §VII.8.
|
|
30
|
-
*/
|
|
31
|
-
readonly role?: Role;
|
|
32
|
-
/**
|
|
33
|
-
* v0.3.5 numerical backend: which differentiation strategy the numerical
|
|
34
|
-
* pderiv dispatcher uses when this symbol is the `of` operand of a
|
|
35
|
-
* tensor-partial-derivative. Defaults to 'symbolic' when omitted — so
|
|
36
|
-
* every v0.3.0/v0.3.1 AST is a valid v0.3.5 AST. See v0.3.5-Design.md §6.
|
|
37
|
-
*/
|
|
38
|
-
readonly numericalForm?: 'symbolic' | 'numerical-fn' | 'grid';
|
|
39
|
-
}
|
|
40
|
-
export interface TensorProductNode {
|
|
41
|
-
readonly kind: 'tensor-product';
|
|
42
|
-
readonly args: ReadonlyArray<ExprNode>;
|
|
43
|
-
}
|
|
13
|
+
import type { ExprNode, Role, TensorIndex, TensorSymbolNode, TensorProductNode } from './ast-types.js';
|
|
14
|
+
export type { Variance, Role, TensorIndex, TensorSymbolNode, TensorProductNode, } from './ast-types.js';
|
|
44
15
|
/**
|
|
45
16
|
* Result shape returned by `validateTensorSymbol`. A minimal carrier for
|
|
46
17
|
* the inferred per-component dimension plus the free-indices map built
|
|
@@ -147,5 +118,4 @@ export declare function scale(scalar: ExprNode, tensor: ExprNode): TensorProduct
|
|
|
147
118
|
export declare function contract(...args: ExprNode[]): TensorProductNode;
|
|
148
119
|
/** Tensor sum via op '+'. Validator enforces matching free indices. */
|
|
149
120
|
export declare function tsum(...args: ExprNode[]): ExprNode;
|
|
150
|
-
export {};
|
|
151
121
|
//# sourceMappingURL=tensor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tensor.d.ts","sourceRoot":"","sources":["../../src/dimensional/tensor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tensor.d.ts","sourceRoot":"","sources":["../../src/dimensional/tensor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQ5C,OAAO,KAAK,EACV,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAOxB,YAAY,EACV,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAExB;;;;;;GAMG;AAIH,UAAU,4BAA4B;IACpC,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;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,gBAAgB,GACrB,4BAA4B,CAY9B;AAED;;;;;;;;GAQG;AAIH,UAAU,iBAAiB;IACzB,mEAAmE;IACnE,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,yDAAyD;IACzD,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE,0EAA0E;IAC1E,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7D;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC7B,aAAa,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,qBAAqB,GACvD,iBAAiB,CAkDnB;AAED,sCAAsC;AACtC,wBAAgB,IAAI,CAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,EACnC,GAAG,EAAE,SAAS,EACd,IAAI,CAAC,EAAE,IAAI,EACX,aAAa,CAAC,EAAE,UAAU,GAAG,cAAc,GAAG,MAAM,GACnD,gBAAgB,CAYlB;AAED;;cAEc;AACd,wBAAgB,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,iBAAiB,CAE3E;AAED,iEAAiE;AACjE,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAE/D;AAED,uEAAuE;AACvE,wBAAgB,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAElD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tensor.js","sourceRoot":"","sources":["../../src/dimensional/tensor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"tensor.js","sourceRoot":"","sources":["../../src/dimensional/tensor.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,64 +13,8 @@
|
|
|
13
13
|
* @module dimensional/validator
|
|
14
14
|
*/
|
|
15
15
|
import { Dimension } from './types.js';
|
|
16
|
-
import type {
|
|
17
|
-
|
|
18
|
-
import type { CovariantDerivativeNode, RiemannTensorNode } from './connection-validators.js';
|
|
19
|
-
import type { RicciTensorNode, EinsteinTensorNode, BianchiResidualNode } from './curvature.js';
|
|
20
|
-
import type { KillingVectorNode, ConservedChargeNode } from './killing-validators.js';
|
|
21
|
-
import type { StressEnergyTensorNode, CosmologicalConstantNode } from './stress-energy-validators.js';
|
|
22
|
-
import type { EinsteinFieldEquationNode } from './einstein-equation.js';
|
|
23
|
-
import type { WeylTensorNode } from './weyl-validators.js';
|
|
24
|
-
import type { KretschmannScalarNode } from './curvature-invariants.js';
|
|
25
|
-
/**
|
|
26
|
-
* Elementwise transcendental functions usable in a scalar `transcendental`
|
|
27
|
-
* node. All take a DIMENSIONLESS argument and return a DIMENSIONLESS result.
|
|
28
|
-
* (`sqrt`/`cbrt` are excluded — they produce fractional dimensions.)
|
|
29
|
-
*/
|
|
30
|
-
export type TranscendentalFn = 'exp' | 'ln' | 'log2' | 'log10' | 'sin' | 'cos' | 'tan' | 'sinh' | 'cosh' | 'tanh';
|
|
31
|
-
export type ExprNode = {
|
|
32
|
-
kind: 'symbol';
|
|
33
|
-
name: string;
|
|
34
|
-
dim: Dimension;
|
|
35
|
-
} | {
|
|
36
|
-
kind: 'op';
|
|
37
|
-
op: '+' | '-' | '*' | '/' | '^';
|
|
38
|
-
args: ExprNode[];
|
|
39
|
-
} | {
|
|
40
|
-
kind: 'integral';
|
|
41
|
-
over: ExprNode;
|
|
42
|
-
integrand: ExprNode;
|
|
43
|
-
lower?: ExprNode;
|
|
44
|
-
upper?: ExprNode;
|
|
45
|
-
} | {
|
|
46
|
-
kind: 'derivative';
|
|
47
|
-
of: ExprNode;
|
|
48
|
-
wrt: ExprNode;
|
|
49
|
-
} | {
|
|
50
|
-
kind: 'dirac-delta';
|
|
51
|
-
arg: ExprNode;
|
|
52
|
-
} | {
|
|
53
|
-
kind: 'variational-derivative';
|
|
54
|
-
functional: ExprNode;
|
|
55
|
-
field: ExprNode;
|
|
56
|
-
over: ExprNode;
|
|
57
|
-
} | {
|
|
58
|
-
kind: 'transcendental';
|
|
59
|
-
fn: TranscendentalFn;
|
|
60
|
-
arg: ExprNode;
|
|
61
|
-
} | {
|
|
62
|
-
kind: 'abs';
|
|
63
|
-
arg: ExprNode;
|
|
64
|
-
} | TensorSymbolNode | TensorProductNode | MetricTensorNode | KroneckerDeltaNode | TensorPartialDerivativeNode | CovariantDerivativeNode | RiemannTensorNode | RicciTensorNode | EinsteinTensorNode | BianchiResidualNode | KillingVectorNode | ConservedChargeNode | StressEnergyTensorNode | CosmologicalConstantNode | EinsteinFieldEquationNode | WeylTensorNode | KretschmannScalarNode;
|
|
65
|
-
export type { TensorSymbolNode, TensorProductNode } from './tensor.js';
|
|
66
|
-
export type { MetricTensorNode, KroneckerDeltaNode, TensorPartialDerivativeNode, } from './metric-validators.js';
|
|
67
|
-
export type { CovariantDerivativeNode, RiemannTensorNode, UpperIndex } from './connection-validators.js';
|
|
68
|
-
export type { RicciTensorNode, EinsteinTensorNode, BianchiResidualNode } from './curvature.js';
|
|
69
|
-
export type { KillingVectorNode, ConservedChargeNode } from './killing-validators.js';
|
|
70
|
-
export type { StressEnergyTensorNode, CosmologicalConstantNode } from './stress-energy-validators.js';
|
|
71
|
-
export type { EinsteinFieldEquationNode } from './einstein-equation.js';
|
|
72
|
-
export type { WeylTensorNode } from './weyl-validators.js';
|
|
73
|
-
export type { KretschmannScalarNode } from './curvature-invariants.js';
|
|
16
|
+
import type { ExprNode, MetricTensorNode } from './ast-types.js';
|
|
17
|
+
export type { ExprNode, TranscendentalFn, TensorSymbolNode, TensorProductNode, TensorIndex, Variance, Role, MetricTensorNode, KroneckerDeltaNode, TensorPartialDerivativeNode, CovariantIndex, UpperIndex, CovariantDerivativeNode, RiemannTensorNode, RicciTensorNode, EinsteinTensorNode, BianchiResidualNode, KillingVectorNode, ConservedChargeNode, StressEnergyTensorNode, CosmologicalConstantNode, EinsteinFieldEquationNode, WeylTensorNode, KretschmannScalarNode, } from './ast-types.js';
|
|
74
18
|
export interface Violation {
|
|
75
19
|
/** Tree path, e.g. "args[1].args[0]". Empty string for the root. */
|
|
76
20
|
location: string;
|
|
@@ -109,6 +53,11 @@ export interface DimensionValidationReport {
|
|
|
109
53
|
lhsDim: Dimension | null;
|
|
110
54
|
rhsDim: Dimension | null;
|
|
111
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Validate a single scalar/tensor `ExprNode`: infer its dimension and collect
|
|
58
|
+
* any consistency violations. `ok` is true iff a dimension was inferred and no
|
|
59
|
+
* error-severity violations were raised. The hot path for the whole suite.
|
|
60
|
+
*/
|
|
112
61
|
export declare function validate(expr: ExprNode): ValidationResult;
|
|
113
62
|
/**
|
|
114
63
|
* Opt-in symbolic InverseMetricInconsistencyWarning check. Given a
|
|
@@ -117,5 +66,10 @@ export declare function validate(expr: ExprNode): ValidationResult;
|
|
|
117
66
|
* validate() — that is the hot path for the whole test suite.)
|
|
118
67
|
*/
|
|
119
68
|
export declare function validateInverseMetricPair(gLower: MetricTensorNode, gUpper: MetricTensorNode): Violation[];
|
|
69
|
+
/**
|
|
70
|
+
* Validate an equation `lhs = rhs`: both sides must infer a dimension, the two
|
|
71
|
+
* dimensions must match, and free-index valence must agree (so a tensor = scalar
|
|
72
|
+
* is caught even when units match). Returns the combined `ValidationResult`.
|
|
73
|
+
*/
|
|
120
74
|
export declare function validateEquation(lhs: ExprNode, rhs: ExprNode): ValidationResult;
|
|
121
75
|
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/dimensional/validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,SAAS,EAEV,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/dimensional/validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,SAAS,EAEV,MAAM,YAAY,CAAC;AAqBpB,OAAO,KAAK,EACV,QAAQ,EAIR,gBAAgB,EAejB,MAAM,gBAAgB,CAAC;AAwBxB,YAAY,EACV,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,EAC3B,cAAc,EACd,UAAU,EACV,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,cAAc,EACd,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,SAAS;IACxB,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb;8EAC0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,iBAAiB,EAAE,SAAS,GAAG,IAAI,CAAC;IACpC;;qDAEiD;IACjD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;CAC1B;AAipBD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,gBAAgB,CASzD;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,gBAAgB,GACvB,SAAS,EAAE,CAUb;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,GAAG,gBAAgB,CA8C/E"}
|
|
@@ -183,14 +183,6 @@ function resolveChildForPartialDerivative(node, parentCtx) {
|
|
|
183
183
|
}
|
|
184
184
|
return { dim: probe.dim, freeIndices: probe.freeIndices };
|
|
185
185
|
}
|
|
186
|
-
/**
|
|
187
|
-
* Resolve a child of a covariant-derivative to its local {dim, freeIndices, role?}
|
|
188
|
-
* carrier. Same recursion pattern as resolveChildForPartialDerivative — reuses
|
|
189
|
-
* the partial-derivative resolver since the same child kinds appear.
|
|
190
|
-
*/
|
|
191
|
-
function resolveChildForCovariantDerivative(node, parentCtx) {
|
|
192
|
-
return resolveChildForPartialDerivative(node, parentCtx);
|
|
193
|
-
}
|
|
194
186
|
/**
|
|
195
187
|
* Recursive dimension inference. On any sub-expression error we record a
|
|
196
188
|
* violation, return `null`, and let parent ops propagate the null up.
|
|
@@ -575,7 +567,8 @@ function infer(node, ctx) {
|
|
|
575
567
|
return result.dim;
|
|
576
568
|
}
|
|
577
569
|
case 'covariant-derivative': {
|
|
578
|
-
|
|
570
|
+
// Same child kinds as a partial derivative, so it reuses that resolver.
|
|
571
|
+
const result = validateCovariantDerivative(node, (child) => resolveChildForPartialDerivative(child, ctx));
|
|
579
572
|
mergeFreeIndices(ctx.freeIndices, result.freeIndices);
|
|
580
573
|
return result.dim;
|
|
581
574
|
}
|
|
@@ -635,6 +628,11 @@ function infer(node, ctx) {
|
|
|
635
628
|
function okFromViolations(violations) {
|
|
636
629
|
return !violations.some((v) => (v.severity ?? 'error') === 'error');
|
|
637
630
|
}
|
|
631
|
+
/**
|
|
632
|
+
* Validate a single scalar/tensor `ExprNode`: infer its dimension and collect
|
|
633
|
+
* any consistency violations. `ok` is true iff a dimension was inferred and no
|
|
634
|
+
* error-severity violations were raised. The hot path for the whole suite.
|
|
635
|
+
*/
|
|
638
636
|
export function validate(expr) {
|
|
639
637
|
const ctx = { path: '', violations: [], freeIndices: new Map() };
|
|
640
638
|
const dim = infer(expr, ctx);
|
|
@@ -663,6 +661,11 @@ export function validateInverseMetricPair(gLower, gUpper) {
|
|
|
663
661
|
severity: 'warning',
|
|
664
662
|
}];
|
|
665
663
|
}
|
|
664
|
+
/**
|
|
665
|
+
* Validate an equation `lhs = rhs`: both sides must infer a dimension, the two
|
|
666
|
+
* dimensions must match, and free-index valence must agree (so a tensor = scalar
|
|
667
|
+
* is caught even when units match). Returns the combined `ValidationResult`.
|
|
668
|
+
*/
|
|
666
669
|
export function validateEquation(lhs, rhs) {
|
|
667
670
|
const lhsCtx = { path: 'lhs', violations: [], freeIndices: new Map() };
|
|
668
671
|
const rhsCtx = { path: 'rhs', violations: [], freeIndices: new Map() };
|