universal-physics-tensor 0.5.0 → 0.7.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 +66 -105
- package/dist/bridges/catalog-adapter.d.ts +116 -0
- package/dist/bridges/catalog-adapter.d.ts.map +1 -0
- package/dist/bridges/catalog-adapter.js +302 -0
- package/dist/bridges/catalog-adapter.js.map +1 -0
- package/dist/bridges/equations/_be-helpers.d.ts +145 -0
- package/dist/bridges/equations/_be-helpers.d.ts.map +1 -0
- package/dist/bridges/equations/_be-helpers.js +179 -0
- package/dist/bridges/equations/_be-helpers.js.map +1 -0
- package/dist/bridges/equations/be-11-decoherence-master.d.ts +1 -2
- package/dist/bridges/equations/be-11-decoherence-master.d.ts.map +1 -1
- package/dist/bridges/equations/be-11-decoherence-master.js +9 -20
- package/dist/bridges/equations/be-11-decoherence-master.js.map +1 -1
- package/dist/bridges/equations/be-12-coherence-length.d.ts +7 -1
- package/dist/bridges/equations/be-12-coherence-length.d.ts.map +1 -1
- package/dist/bridges/equations/be-12-coherence-length.js +8 -16
- package/dist/bridges/equations/be-12-coherence-length.js.map +1 -1
- package/dist/bridges/equations/be-13-einstein-trace.d.ts +51 -3
- package/dist/bridges/equations/be-13-einstein-trace.d.ts.map +1 -1
- package/dist/bridges/equations/be-13-einstein-trace.js +74 -17
- package/dist/bridges/equations/be-13-einstein-trace.js.map +1 -1
- package/dist/bridges/equations/be-14-ryu-takayanagi.d.ts +10 -4
- package/dist/bridges/equations/be-14-ryu-takayanagi.d.ts.map +1 -1
- package/dist/bridges/equations/be-14-ryu-takayanagi.js +6 -17
- package/dist/bridges/equations/be-14-ryu-takayanagi.js.map +1 -1
- package/dist/bridges/equations/be-15-emergence.d.ts +7 -1
- package/dist/bridges/equations/be-15-emergence.d.ts.map +1 -1
- package/dist/bridges/equations/be-15-emergence.js +12 -22
- package/dist/bridges/equations/be-15-emergence.js.map +1 -1
- package/dist/bridges/equations/be-16-landauer.d.ts +7 -1
- package/dist/bridges/equations/be-16-landauer.d.ts.map +1 -1
- package/dist/bridges/equations/be-16-landauer.js +5 -13
- package/dist/bridges/equations/be-16-landauer.js.map +1 -1
- package/dist/bridges/equations/be-17-einstein-cartan.d.ts +26 -13
- package/dist/bridges/equations/be-17-einstein-cartan.d.ts.map +1 -1
- package/dist/bridges/equations/be-17-einstein-cartan.js +28 -31
- package/dist/bridges/equations/be-17-einstein-cartan.js.map +1 -1
- package/dist/bridges/equations/be-18-higgs-mass.d.ts +7 -1
- package/dist/bridges/equations/be-18-higgs-mass.d.ts.map +1 -1
- package/dist/bridges/equations/be-18-higgs-mass.js +5 -16
- package/dist/bridges/equations/be-18-higgs-mass.js.map +1 -1
- package/dist/bridges/equations/be-19-quantum-bounce.d.ts +38 -3
- package/dist/bridges/equations/be-19-quantum-bounce.d.ts.map +1 -1
- package/dist/bridges/equations/be-19-quantum-bounce.js +69 -20
- package/dist/bridges/equations/be-19-quantum-bounce.js.map +1 -1
- package/dist/bridges/equations/be-20-vacuum-energy.d.ts +20 -1
- package/dist/bridges/equations/be-20-vacuum-energy.d.ts.map +1 -1
- package/dist/bridges/equations/be-20-vacuum-energy.js +36 -15
- package/dist/bridges/equations/be-20-vacuum-energy.js.map +1 -1
- package/dist/bridges/equations/be-21-kss-bound.d.ts +2 -0
- package/dist/bridges/equations/be-21-kss-bound.d.ts.map +1 -1
- package/dist/bridges/equations/be-21-kss-bound.js +4 -10
- package/dist/bridges/equations/be-21-kss-bound.js.map +1 -1
- package/dist/bridges/equations/be-22-topological-entanglement.d.ts +6 -9
- package/dist/bridges/equations/be-22-topological-entanglement.d.ts.map +1 -1
- package/dist/bridges/equations/be-22-topological-entanglement.js +9 -21
- package/dist/bridges/equations/be-22-topological-entanglement.js.map +1 -1
- package/dist/bridges/equations/be-23-syk-planckian.d.ts +7 -1
- package/dist/bridges/equations/be-23-syk-planckian.d.ts.map +1 -1
- package/dist/bridges/equations/be-23-syk-planckian.js +11 -25
- package/dist/bridges/equations/be-23-syk-planckian.js.map +1 -1
- package/dist/bridges/equations/be-24-foerster-fret.d.ts +7 -1
- package/dist/bridges/equations/be-24-foerster-fret.d.ts.map +1 -1
- package/dist/bridges/equations/be-24-foerster-fret.js +8 -16
- package/dist/bridges/equations/be-24-foerster-fret.js.map +1 -1
- package/dist/bridges/equations/be-25-iit-phi.d.ts +7 -1
- 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-25-orch-or.d.ts +6 -3
- package/dist/bridges/equations/be-25-orch-or.d.ts.map +1 -1
- package/dist/bridges/equations/be-25-orch-or.js +8 -17
- package/dist/bridges/equations/be-25-orch-or.js.map +1 -1
- package/dist/bridges/equations/be-26-dna-tunneling.d.ts +6 -3
- package/dist/bridges/equations/be-26-dna-tunneling.d.ts.map +1 -1
- package/dist/bridges/equations/be-26-dna-tunneling.js +11 -26
- package/dist/bridges/equations/be-26-dna-tunneling.js.map +1 -1
- package/dist/bridges/equations/be-27-effective-temperature.d.ts +7 -1
- package/dist/bridges/equations/be-27-effective-temperature.d.ts.map +1 -1
- package/dist/bridges/equations/be-27-effective-temperature.js +8 -16
- package/dist/bridges/equations/be-27-effective-temperature.js.map +1 -1
- package/dist/bridges/equations/be-28-onsager-entropy-production.d.ts +7 -1
- package/dist/bridges/equations/be-28-onsager-entropy-production.d.ts.map +1 -1
- package/dist/bridges/equations/be-28-onsager-entropy-production.js +9 -13
- package/dist/bridges/equations/be-28-onsager-entropy-production.js.map +1 -1
- package/dist/bridges/equations/be-29-jarzynski.d.ts +7 -1
- package/dist/bridges/equations/be-29-jarzynski.d.ts.map +1 -1
- package/dist/bridges/equations/be-29-jarzynski.js +8 -13
- package/dist/bridges/equations/be-29-jarzynski.js.map +1 -1
- package/dist/bridges/equations/be-30-flm-first-law.d.ts +11 -2
- package/dist/bridges/equations/be-30-flm-first-law.d.ts.map +1 -1
- package/dist/bridges/equations/be-30-flm-first-law.js +10 -21
- package/dist/bridges/equations/be-30-flm-first-law.js.map +1 -1
- package/dist/bridges/equations/be-31-causal-set-bd.d.ts +7 -1
- package/dist/bridges/equations/be-31-causal-set-bd.d.ts.map +1 -1
- package/dist/bridges/equations/be-31-causal-set-bd.js +11 -25
- package/dist/bridges/equations/be-31-causal-set-bd.js.map +1 -1
- package/dist/bridges/equations/be-32-quantum-reference-frame.d.ts +6 -9
- package/dist/bridges/equations/be-32-quantum-reference-frame.d.ts.map +1 -1
- package/dist/bridges/equations/be-32-quantum-reference-frame.js +8 -18
- package/dist/bridges/equations/be-32-quantum-reference-frame.js.map +1 -1
- package/dist/bridges/equations/be-33-hertz-millis.d.ts +53 -28
- package/dist/bridges/equations/be-33-hertz-millis.d.ts.map +1 -1
- package/dist/bridges/equations/be-33-hertz-millis.js +55 -51
- package/dist/bridges/equations/be-33-hertz-millis.js.map +1 -1
- package/dist/bridges/equations/be-34-kibble-zurek.d.ts +6 -3
- package/dist/bridges/equations/be-34-kibble-zurek.d.ts.map +1 -1
- package/dist/bridges/equations/be-34-kibble-zurek.js +15 -26
- package/dist/bridges/equations/be-34-kibble-zurek.js.map +1 -1
- package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts +6 -9
- package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts.map +1 -1
- package/dist/bridges/equations/be-35-conformal-bootstrap.js +9 -21
- package/dist/bridges/equations/be-35-conformal-bootstrap.js.map +1 -1
- package/dist/bridges/equations/be-36-gw-speed-bound.d.ts +7 -1
- package/dist/bridges/equations/be-36-gw-speed-bound.d.ts.map +1 -1
- package/dist/bridges/equations/be-36-gw-speed-bound.js +5 -13
- package/dist/bridges/equations/be-36-gw-speed-bound.js.map +1 -1
- package/dist/bridges/equations/be-37-shapiro-delay.d.ts +4 -2
- package/dist/bridges/equations/be-37-shapiro-delay.d.ts.map +1 -1
- package/dist/bridges/equations/be-37-shapiro-delay.js +22 -37
- package/dist/bridges/equations/be-37-shapiro-delay.js.map +1 -1
- package/dist/bridges/equations/be-38-mond.d.ts +7 -1
- package/dist/bridges/equations/be-38-mond.d.ts.map +1 -1
- package/dist/bridges/equations/be-38-mond.js +9 -19
- package/dist/bridges/equations/be-38-mond.js.map +1 -1
- package/dist/bridges/equations/be-39-asymptotic-safety.d.ts +66 -2
- package/dist/bridges/equations/be-39-asymptotic-safety.d.ts.map +1 -1
- package/dist/bridges/equations/be-39-asymptotic-safety.js +128 -20
- package/dist/bridges/equations/be-39-asymptotic-safety.js.map +1 -1
- package/dist/bridges/equations/be-40-composite-higgs.d.ts +7 -1
- package/dist/bridges/equations/be-40-composite-higgs.d.ts.map +1 -1
- package/dist/bridges/equations/be-40-composite-higgs.js +10 -22
- package/dist/bridges/equations/be-40-composite-higgs.js.map +1 -1
- package/dist/bridges/equations/be-41-swampland.d.ts +6 -3
- package/dist/bridges/equations/be-41-swampland.d.ts.map +1 -1
- package/dist/bridges/equations/be-41-swampland.js +11 -23
- package/dist/bridges/equations/be-41-swampland.js.map +1 -1
- package/dist/bridges/equations/be-42-hawking-temperature.d.ts +2 -0
- package/dist/bridges/equations/be-42-hawking-temperature.d.ts.map +1 -1
- package/dist/bridges/equations/be-42-hawking-temperature.js +5 -13
- package/dist/bridges/equations/be-42-hawking-temperature.js.map +1 -1
- package/dist/bridges/equations/be-43-er-epr.d.ts +7 -1
- package/dist/bridges/equations/be-43-er-epr.d.ts.map +1 -1
- package/dist/bridges/equations/be-43-er-epr.js +5 -13
- package/dist/bridges/equations/be-43-er-epr.js.map +1 -1
- package/dist/bridges/equations/be-44-soft-hair.d.ts +7 -1
- package/dist/bridges/equations/be-44-soft-hair.d.ts.map +1 -1
- package/dist/bridges/equations/be-44-soft-hair.js +5 -13
- package/dist/bridges/equations/be-44-soft-hair.js.map +1 -1
- package/dist/bridges/equations/be-45-tcc.d.ts +7 -1
- package/dist/bridges/equations/be-45-tcc.d.ts.map +1 -1
- package/dist/bridges/equations/be-45-tcc.js +10 -22
- package/dist/bridges/equations/be-45-tcc.js.map +1 -1
- package/dist/bridges/equations/be-46-multiverse-measure.d.ts +7 -1
- package/dist/bridges/equations/be-46-multiverse-measure.d.ts.map +1 -1
- package/dist/bridges/equations/be-46-multiverse-measure.js +9 -19
- package/dist/bridges/equations/be-46-multiverse-measure.js.map +1 -1
- package/dist/bridges/equations/be-47-bbn-dark-sector.d.ts +7 -1
- package/dist/bridges/equations/be-47-bbn-dark-sector.d.ts.map +1 -1
- package/dist/bridges/equations/be-47-bbn-dark-sector.js +14 -16
- package/dist/bridges/equations/be-47-bbn-dark-sector.js.map +1 -1
- package/dist/bridges/equations/be-48-grw-localization.d.ts +7 -1
- package/dist/bridges/equations/be-48-grw-localization.d.ts.map +1 -1
- package/dist/bridges/equations/be-48-grw-localization.js +15 -20
- package/dist/bridges/equations/be-48-grw-localization.js.map +1 -1
- package/dist/bridges/equations/be-49-quantum-darwinism.d.ts +7 -1
- package/dist/bridges/equations/be-49-quantum-darwinism.d.ts.map +1 -1
- package/dist/bridges/equations/be-49-quantum-darwinism.js +10 -22
- package/dist/bridges/equations/be-49-quantum-darwinism.js.map +1 -1
- package/dist/bridges/equations/be-50-wheeler-feynman.d.ts +42 -12
- package/dist/bridges/equations/be-50-wheeler-feynman.d.ts.map +1 -1
- package/dist/bridges/equations/be-50-wheeler-feynman.js +84 -20
- package/dist/bridges/equations/be-50-wheeler-feynman.js.map +1 -1
- package/dist/bridges/equations/be-53-yang-mills-beta.d.ts +158 -0
- package/dist/bridges/equations/be-53-yang-mills-beta.d.ts.map +1 -0
- package/dist/bridges/equations/be-53-yang-mills-beta.js +175 -0
- package/dist/bridges/equations/be-53-yang-mills-beta.js.map +1 -0
- package/dist/bridges/equations/be-54-randall-sundrum-brane.d.ts +117 -0
- package/dist/bridges/equations/be-54-randall-sundrum-brane.d.ts.map +1 -0
- package/dist/bridges/equations/be-54-randall-sundrum-brane.js +213 -0
- package/dist/bridges/equations/be-54-randall-sundrum-brane.js.map +1 -0
- package/dist/bridges/gravitational-lensing.d.ts +13 -2
- package/dist/bridges/gravitational-lensing.d.ts.map +1 -1
- package/dist/bridges/gravitational-lensing.js +17 -6
- package/dist/bridges/gravitational-lensing.js.map +1 -1
- package/dist/bridges/index.d.ts +40 -1
- package/dist/bridges/index.d.ts.map +1 -1
- package/dist/bridges/index.js +130 -48
- package/dist/bridges/index.js.map +1 -1
- package/dist/bridges/perihelion-precession-labeled.d.ts +46 -0
- package/dist/bridges/perihelion-precession-labeled.d.ts.map +1 -0
- package/dist/bridges/perihelion-precession-labeled.js +54 -0
- package/dist/bridges/perihelion-precession-labeled.js.map +1 -0
- package/dist/bridges/perihelion-precession.d.ts +18 -3
- package/dist/bridges/perihelion-precession.d.ts.map +1 -1
- package/dist/bridges/perihelion-precession.js +22 -8
- package/dist/bridges/perihelion-precession.js.map +1 -1
- package/dist/core/axes-registry.d.ts +67 -0
- package/dist/core/axes-registry.d.ts.map +1 -0
- package/dist/core/axes-registry.js +75 -0
- package/dist/core/axes-registry.js.map +1 -0
- package/dist/core/cell.d.ts +176 -0
- package/dist/core/cell.d.ts.map +1 -0
- package/dist/core/cell.js +166 -0
- package/dist/core/cell.js.map +1 -0
- package/dist/core/constants.d.ts +50 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +50 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/flux-rules.d.ts +176 -0
- package/dist/core/flux-rules.d.ts.map +1 -0
- package/dist/core/flux-rules.js +329 -0
- package/dist/core/flux-rules.js.map +1 -0
- package/dist/core/labeled-tensor.d.ts +143 -0
- package/dist/core/labeled-tensor.d.ts.map +1 -0
- package/dist/core/labeled-tensor.js +275 -0
- package/dist/core/labeled-tensor.js.map +1 -0
- package/dist/core/regime-registry.d.ts +169 -0
- package/dist/core/regime-registry.d.ts.map +1 -0
- package/dist/core/regime-registry.js +174 -0
- package/dist/core/regime-registry.js.map +1 -0
- package/dist/core/regime-rule-install.d.ts +26 -0
- package/dist/core/regime-rule-install.d.ts.map +1 -0
- package/dist/core/regime-rule-install.js +90 -0
- package/dist/core/regime-rule-install.js.map +1 -0
- package/dist/core/regimes-builtins.d.ts +22 -0
- package/dist/core/regimes-builtins.d.ts.map +1 -0
- package/dist/core/regimes-builtins.js +96 -0
- package/dist/core/regimes-builtins.js.map +1 -0
- package/dist/core/tensor.d.ts +112 -0
- package/dist/core/tensor.d.ts.map +1 -1
- package/dist/core/tensor.js +366 -0
- package/dist/core/tensor.js.map +1 -1
- package/dist/core/types.d.ts +7 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/universal-index.d.ts +97 -0
- package/dist/core/universal-index.d.ts.map +1 -0
- package/dist/core/universal-index.js +70 -0
- package/dist/core/universal-index.js.map +1 -0
- package/dist/diff/bridge-gradient.d.ts +94 -0
- package/dist/diff/bridge-gradient.d.ts.map +1 -0
- package/dist/diff/bridge-gradient.js +83 -0
- package/dist/diff/bridge-gradient.js.map +1 -0
- package/dist/diff/bridge-specs.d.ts +68 -0
- package/dist/diff/bridge-specs.d.ts.map +1 -0
- package/dist/diff/bridge-specs.js +96 -0
- package/dist/diff/bridge-specs.js.map +1 -0
- package/dist/dimensional/bridge-check.d.ts.map +1 -1
- package/dist/dimensional/bridge-check.js +8 -0
- package/dist/dimensional/bridge-check.js.map +1 -1
- package/dist/dimensional/connection-validators.d.ts +13 -6
- package/dist/dimensional/connection-validators.d.ts.map +1 -1
- package/dist/dimensional/connection-validators.js +1 -1
- package/dist/dimensional/connection-validators.js.map +1 -1
- package/dist/dimensional/curvature-composite.d.ts +90 -0
- package/dist/dimensional/curvature-composite.d.ts.map +1 -0
- package/dist/dimensional/curvature-composite.js +57 -0
- package/dist/dimensional/curvature-composite.js.map +1 -0
- package/dist/dimensional/curvature-invariants.d.ts +90 -0
- package/dist/dimensional/curvature-invariants.d.ts.map +1 -0
- package/dist/dimensional/curvature-invariants.js +64 -0
- package/dist/dimensional/curvature-invariants.js.map +1 -0
- package/dist/dimensional/curvature.d.ts +82 -41
- package/dist/dimensional/curvature.d.ts.map +1 -1
- package/dist/dimensional/curvature.js +19 -11
- package/dist/dimensional/curvature.js.map +1 -1
- package/dist/dimensional/einstein-equation.d.ts +126 -0
- package/dist/dimensional/einstein-equation.d.ts.map +1 -0
- package/dist/dimensional/einstein-equation.js +122 -0
- package/dist/dimensional/einstein-equation.js.map +1 -0
- package/dist/dimensional/field-equation-helpers.d.ts +82 -0
- package/dist/dimensional/field-equation-helpers.d.ts.map +1 -0
- package/dist/dimensional/field-equation-helpers.js +123 -0
- package/dist/dimensional/field-equation-helpers.js.map +1 -0
- package/dist/dimensional/friedmann-equation.d.ts +148 -0
- package/dist/dimensional/friedmann-equation.d.ts.map +1 -0
- package/dist/dimensional/friedmann-equation.js +150 -0
- package/dist/dimensional/friedmann-equation.js.map +1 -0
- package/dist/dimensional/gauge-field.d.ts +182 -0
- package/dist/dimensional/gauge-field.d.ts.map +1 -0
- package/dist/dimensional/gauge-field.js +134 -0
- package/dist/dimensional/gauge-field.js.map +1 -0
- package/dist/dimensional/killing-validators.d.ts +94 -0
- package/dist/dimensional/killing-validators.d.ts.map +1 -0
- package/dist/dimensional/killing-validators.js +66 -0
- package/dist/dimensional/killing-validators.js.map +1 -0
- package/dist/dimensional/klein-gordon-equation.d.ts +113 -0
- package/dist/dimensional/klein-gordon-equation.d.ts.map +1 -0
- package/dist/dimensional/klein-gordon-equation.js +98 -0
- package/dist/dimensional/klein-gordon-equation.js.map +1 -0
- package/dist/dimensional/rg-flow.d.ts +156 -0
- package/dist/dimensional/rg-flow.d.ts.map +1 -0
- package/dist/dimensional/rg-flow.js +150 -0
- package/dist/dimensional/rg-flow.js.map +1 -0
- package/dist/dimensional/stress-energy-validators.d.ts +74 -0
- package/dist/dimensional/stress-energy-validators.d.ts.map +1 -0
- package/dist/dimensional/stress-energy-validators.js +47 -0
- package/dist/dimensional/stress-energy-validators.js.map +1 -0
- package/dist/dimensional/tensor-trace.d.ts +128 -0
- package/dist/dimensional/tensor-trace.d.ts.map +1 -0
- package/dist/dimensional/tensor-trace.js +95 -0
- package/dist/dimensional/tensor-trace.js.map +1 -0
- package/dist/dimensional/tensor.d.ts +6 -8
- package/dist/dimensional/tensor.d.ts.map +1 -1
- package/dist/dimensional/tensor.js +3 -1
- package/dist/dimensional/tensor.js.map +1 -1
- package/dist/dimensional/validator-registry.d.ts +90 -0
- package/dist/dimensional/validator-registry.d.ts.map +1 -0
- package/dist/dimensional/validator-registry.js +131 -0
- package/dist/dimensional/validator-registry.js.map +1 -0
- package/dist/dimensional/validator.d.ts +12 -2
- package/dist/dimensional/validator.d.ts.map +1 -1
- package/dist/dimensional/validator.js +60 -75
- package/dist/dimensional/validator.js.map +1 -1
- package/dist/dimensional/weyl-validators.d.ts +84 -0
- package/dist/dimensional/weyl-validators.d.ts.map +1 -0
- package/dist/dimensional/weyl-validators.js +84 -0
- package/dist/dimensional/weyl-validators.js.map +1 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -1
- package/dist/numerical/be37-covariant-eikonal.d.ts +37 -2
- package/dist/numerical/be37-covariant-eikonal.d.ts.map +1 -1
- package/dist/numerical/be37-covariant-eikonal.js +51 -14
- package/dist/numerical/be37-covariant-eikonal.js.map +1 -1
- package/dist/numerical/christoffel-flat.d.ts +49 -0
- package/dist/numerical/christoffel-flat.d.ts.map +1 -0
- package/dist/numerical/christoffel-flat.js +86 -0
- package/dist/numerical/christoffel-flat.js.map +1 -0
- package/dist/numerical/curvature-lowering-helpers.d.ts +76 -57
- package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.js +203 -64
- package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
- package/dist/numerical/derivative-lowering.d.ts +67 -0
- package/dist/numerical/derivative-lowering.d.ts.map +1 -0
- package/dist/numerical/derivative-lowering.js +243 -0
- package/dist/numerical/derivative-lowering.js.map +1 -0
- package/dist/numerical/einstein-equation.d.ts +106 -0
- package/dist/numerical/einstein-equation.d.ts.map +1 -0
- package/dist/numerical/einstein-equation.js +172 -0
- package/dist/numerical/einstein-equation.js.map +1 -0
- package/dist/numerical/engine-registry.js +4 -4
- package/dist/numerical/engine-registry.js.map +1 -1
- package/dist/numerical/geodesic-integrator.d.ts +7 -4
- package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
- package/dist/numerical/geodesic-integrator.js +5 -1
- package/dist/numerical/geodesic-integrator.js.map +1 -1
- package/dist/numerical/gl4-integrator.d.ts +57 -9
- package/dist/numerical/gl4-integrator.d.ts.map +1 -1
- package/dist/numerical/gl4-integrator.js +63 -16
- package/dist/numerical/gl4-integrator.js.map +1 -1
- package/dist/numerical/killing.d.ts +157 -0
- package/dist/numerical/killing.d.ts.map +1 -0
- package/dist/numerical/killing.js +242 -0
- package/dist/numerical/killing.js.map +1 -0
- package/dist/numerical/kretschmann.d.ts +62 -0
- package/dist/numerical/kretschmann.d.ts.map +1 -0
- package/dist/numerical/kretschmann.js +88 -0
- package/dist/numerical/kretschmann.js.map +1 -0
- package/dist/numerical/lowering-utils.d.ts +47 -0
- package/dist/numerical/lowering-utils.d.ts.map +1 -0
- package/dist/numerical/lowering-utils.js +64 -0
- package/dist/numerical/lowering-utils.js.map +1 -0
- package/dist/numerical/lowering.d.ts +1 -29
- package/dist/numerical/lowering.d.ts.map +1 -1
- package/dist/numerical/lowering.js +226 -415
- package/dist/numerical/lowering.js.map +1 -1
- package/dist/numerical/mathts-engine.js +8 -8
- package/dist/numerical/mathts-engine.js.map +1 -1
- package/dist/numerical/metric-inverse.d.ts.map +1 -1
- package/dist/numerical/metric-inverse.js +28 -0
- package/dist/numerical/metric-inverse.js.map +1 -1
- package/dist/numerical/null-ic.d.ts +40 -0
- package/dist/numerical/null-ic.d.ts.map +1 -0
- package/dist/numerical/null-ic.js +50 -0
- package/dist/numerical/null-ic.js.map +1 -0
- package/dist/numerical/null-ray-integrator.d.ts +3 -2
- package/dist/numerical/null-ray-integrator.d.ts.map +1 -1
- package/dist/numerical/null-ray-integrator.js +6 -3
- package/dist/numerical/null-ray-integrator.js.map +1 -1
- package/dist/numerical/painleve-gullstrand-metric.d.ts +74 -0
- package/dist/numerical/painleve-gullstrand-metric.d.ts.map +1 -0
- package/dist/numerical/painleve-gullstrand-metric.js +121 -0
- package/dist/numerical/painleve-gullstrand-metric.js.map +1 -0
- package/dist/numerical/pderiv.d.ts +35 -3
- package/dist/numerical/pderiv.d.ts.map +1 -1
- package/dist/numerical/pderiv.js +47 -12
- package/dist/numerical/pderiv.js.map +1 -1
- package/dist/numerical/perihelion-finder.d.ts +57 -0
- package/dist/numerical/perihelion-finder.d.ts.map +1 -1
- package/dist/numerical/perihelion-finder.js +57 -0
- package/dist/numerical/perihelion-finder.js.map +1 -1
- package/dist/numerical/tensor-engine.d.ts +2 -2
- package/dist/numerical/tensor-engine.d.ts.map +1 -1
- package/dist/numerical/weyl-lowering.d.ts +60 -0
- package/dist/numerical/weyl-lowering.d.ts.map +1 -0
- package/dist/numerical/weyl-lowering.js +111 -0
- package/dist/numerical/weyl-lowering.js.map +1 -0
- package/package.json +9 -7
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flux-rule scaffolding for v0.7 Proposal 2 — Sparse Semantic Catalog.
|
|
3
|
+
*
|
|
4
|
+
* Defines:
|
|
5
|
+
* - `FluxRuleKind` discriminated tag (@internal)
|
|
6
|
+
* - `FluxRule`, `FluxRuleResult` registry shapes (@internal)
|
|
7
|
+
* - `FluxDiagnostic`, `FluxReport` consumer shapes (@public)
|
|
8
|
+
* - `FluxViolationError` (@public) thrown on ERROR-tier rule failures
|
|
9
|
+
* - Rule 2 (L/B/E coordinate matching) and Rule 3 (Causality) — pure
|
|
10
|
+
* functions over `Cell` / `BridgeCell`
|
|
11
|
+
* - `runRules(cell, rules)` dispatcher with `_exhaustive: never`
|
|
12
|
+
*
|
|
13
|
+
* Rule 1 (Dimensional Consistency) ships in Phase 3 alongside the
|
|
14
|
+
* catalog adapter — it operates on `BridgeEquationEntry`, not `Cell`,
|
|
15
|
+
* per Decision #3 (resolves Adam-V3).
|
|
16
|
+
*
|
|
17
|
+
* Design: docs/planning/v0.7-Proposal-2-Design.md (redraft commit
|
|
18
|
+
* 01632b5). Decisions #5, #6, #8 are load-bearing here.
|
|
19
|
+
*
|
|
20
|
+
* @module core/flux-rules
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* Thrown from `UniversalTensor.addCell` (Phase 2) when a Rule 2
|
|
24
|
+
* (L/B/E coordinate-matching) violation fires. Rule 2 is ERROR-tier:
|
|
25
|
+
* a `BridgeCell` with `source === target`, a `LawCell` with empty
|
|
26
|
+
* `scales × forces`, or an `EmergenceCell` with `indices.length < 2`
|
|
27
|
+
* fail-atomic.
|
|
28
|
+
*
|
|
29
|
+
* Rule 3 (Causality) does NOT throw — it's WARNING-tier in v0.7 per
|
|
30
|
+
* the proposals doc §3.3.3 (promotion to ERROR deferred to v0.8).
|
|
31
|
+
*
|
|
32
|
+
* @public
|
|
33
|
+
*/
|
|
34
|
+
export class FluxViolationError extends Error {
|
|
35
|
+
ruleName;
|
|
36
|
+
cellId;
|
|
37
|
+
constructor(ruleName, cellId, message) {
|
|
38
|
+
super(`FluxRule '${ruleName}' violated for cell '${cellId}': ${message}`);
|
|
39
|
+
this.name = 'FluxViolationError';
|
|
40
|
+
this.ruleName = ruleName;
|
|
41
|
+
this.cellId = cellId;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// ---------------------------------------------------------------------------
|
|
45
|
+
// SCALE_ARROW — the partial-order on `PhysicalScale` used by Rule 3
|
|
46
|
+
// ---------------------------------------------------------------------------
|
|
47
|
+
/**
|
|
48
|
+
* Ordered list of scales from finest to coarsest. The index encodes
|
|
49
|
+
* the partial-order: lower index = finer (quantum), higher index =
|
|
50
|
+
* coarser (cosmological). Used by Rule 3 (Causality) to classify
|
|
51
|
+
* bridge direction as forward / lateral / reverse.
|
|
52
|
+
*/
|
|
53
|
+
const SCALE_ORDER = [
|
|
54
|
+
'quantum',
|
|
55
|
+
'mesoscopic',
|
|
56
|
+
'classical',
|
|
57
|
+
'cosmological',
|
|
58
|
+
];
|
|
59
|
+
function scaleIndex(s) {
|
|
60
|
+
return SCALE_ORDER.indexOf(s);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Classify a bridge direction by source/target scale. `'reverse'` =
|
|
64
|
+
* coarser→finer (e.g., classical→quantum), `'forward'` =
|
|
65
|
+
* finer→coarser (the canonical emergent direction), `'lateral'` =
|
|
66
|
+
* same scale. Per Decision #5, `'reverse'` triggers a warning
|
|
67
|
+
* diagnostic.
|
|
68
|
+
*/
|
|
69
|
+
function classifyArrow(src, dst) {
|
|
70
|
+
const i = scaleIndex(src);
|
|
71
|
+
const j = scaleIndex(dst);
|
|
72
|
+
if (i === j)
|
|
73
|
+
return 'lateral';
|
|
74
|
+
return i < j ? 'forward' : 'reverse';
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Private per-cell-ID suppression list for Rule 3 (Causality). Empty
|
|
78
|
+
* in v0.7; entries earn their place via design review (Decision #5
|
|
79
|
+
* — the original "timeReversalAnnotation: true" on BridgeCell was
|
|
80
|
+
* rejected as public-type contamination per Eve-R12).
|
|
81
|
+
*/
|
|
82
|
+
const causalityWhitelist = new Set();
|
|
83
|
+
// ---------------------------------------------------------------------------
|
|
84
|
+
// Rule 2 — L/B/E coordinate matching (ERROR tier)
|
|
85
|
+
// ---------------------------------------------------------------------------
|
|
86
|
+
/**
|
|
87
|
+
* Pure dispatcher for Rule 2 over the `Cell` discriminated union.
|
|
88
|
+
* The three arms enforce the cell-shape invariants:
|
|
89
|
+
*
|
|
90
|
+
* - `LawCell` is diagonal: `scales × forces` cross-product must be
|
|
91
|
+
* non-empty.
|
|
92
|
+
* - `BridgeCell` is off-diagonal: `source !== target` by at least
|
|
93
|
+
* one axis (already enforced by the legacy `addBridge` —
|
|
94
|
+
* Rule 2 piggybacks for registry exhaustiveness).
|
|
95
|
+
* - `EmergenceCell` spans multi-coordinate: `indices.length >= 2`.
|
|
96
|
+
*
|
|
97
|
+
* @internal
|
|
98
|
+
*/
|
|
99
|
+
export function checkLBECoordinate(cell) {
|
|
100
|
+
switch (cell.kind) {
|
|
101
|
+
case 'law':
|
|
102
|
+
return checkLawCoordinate(cell);
|
|
103
|
+
case 'bridge':
|
|
104
|
+
return checkBridgeCoordinate(cell);
|
|
105
|
+
case 'emergence':
|
|
106
|
+
return checkEmergenceCoordinate(cell);
|
|
107
|
+
default: {
|
|
108
|
+
const _exhaustive = cell;
|
|
109
|
+
void _exhaustive;
|
|
110
|
+
throw new Error(`checkLBECoordinate: unknown cell kind`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
function checkLawCoordinate(cell) {
|
|
115
|
+
if (cell.scales.length === 0 || cell.forces.length === 0) {
|
|
116
|
+
return {
|
|
117
|
+
ok: false,
|
|
118
|
+
diagnostic: {
|
|
119
|
+
severity: 'error',
|
|
120
|
+
ruleName: 'lbe-coordinate',
|
|
121
|
+
cellId: cell.id,
|
|
122
|
+
message: `LawCell '${cell.id}' has empty scales × forces cross-product ` +
|
|
123
|
+
`(scales=[${cell.scales.join(',')}], forces=[${cell.forces.join(',')}]). ` +
|
|
124
|
+
`A law must occupy at least one (scale, force) coordinate.`,
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
return { ok: true };
|
|
129
|
+
}
|
|
130
|
+
function checkBridgeCoordinate(cell) {
|
|
131
|
+
// A BridgeCell must differ between source and target on at least one
|
|
132
|
+
// populated axis. The legacy `addBridge` at tensor.ts:217-226 already
|
|
133
|
+
// enforces this; we re-implement here for registry exhaustiveness.
|
|
134
|
+
const s = cell.source;
|
|
135
|
+
const t = cell.target;
|
|
136
|
+
const same = s.scale === t.scale &&
|
|
137
|
+
s.force === t.force &&
|
|
138
|
+
s.symmetry === t.symmetry &&
|
|
139
|
+
s.information === t.information &&
|
|
140
|
+
s.dimension === t.dimension &&
|
|
141
|
+
s.topology === t.topology;
|
|
142
|
+
if (same) {
|
|
143
|
+
return {
|
|
144
|
+
ok: false,
|
|
145
|
+
diagnostic: {
|
|
146
|
+
severity: 'error',
|
|
147
|
+
ruleName: 'lbe-coordinate',
|
|
148
|
+
cellId: cell.id,
|
|
149
|
+
message: `BridgeCell '${cell.id}' has identical source and target ` +
|
|
150
|
+
`coordinates. A bridge must connect two distinct regime axes.`,
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
return { ok: true };
|
|
155
|
+
}
|
|
156
|
+
function checkEmergenceCoordinate(cell) {
|
|
157
|
+
if (cell.indices.length < 2) {
|
|
158
|
+
return {
|
|
159
|
+
ok: false,
|
|
160
|
+
diagnostic: {
|
|
161
|
+
severity: 'error',
|
|
162
|
+
ruleName: 'lbe-coordinate',
|
|
163
|
+
cellId: cell.id,
|
|
164
|
+
message: `EmergenceCell '${cell.id}' has only ${cell.indices.length} ` +
|
|
165
|
+
`index group(s); emergence requires at least 2 (higher-order ` +
|
|
166
|
+
`correlations span multiple coordinates).`,
|
|
167
|
+
},
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
return { ok: true };
|
|
171
|
+
}
|
|
172
|
+
// ---------------------------------------------------------------------------
|
|
173
|
+
// Rule 3 — Causality (WARNING tier in v0.7)
|
|
174
|
+
// ---------------------------------------------------------------------------
|
|
175
|
+
/**
|
|
176
|
+
* Pure dispatcher for Rule 3 over the `Cell` discriminated union.
|
|
177
|
+
* Rule 3 only fires on `'bridge'`; the other arms always pass.
|
|
178
|
+
*
|
|
179
|
+
* Body for the bridge arm per Decision #5:
|
|
180
|
+
* 1. Read `src = cell.source.scale`, `dst = cell.target.scale`.
|
|
181
|
+
* 2. If either is `undefined`, emit `'info'` ("scale-unspecified
|
|
182
|
+
* skip"); the rule still passes (`ok: true`).
|
|
183
|
+
* 3. If `arrow = classifyArrow(src, dst) === 'reverse'`, emit a
|
|
184
|
+
* `'warning'` diagnostic recommending audit. Rule still passes
|
|
185
|
+
* (Rule 3 is WARNING tier in v0.7; promotion to ERROR deferred
|
|
186
|
+
* to v0.8).
|
|
187
|
+
* 4. Suppression via the private `causalityWhitelist` (empty in
|
|
188
|
+
* v0.7).
|
|
189
|
+
*
|
|
190
|
+
* @internal
|
|
191
|
+
*/
|
|
192
|
+
export function checkCausality(cell) {
|
|
193
|
+
if (cell.kind !== 'bridge')
|
|
194
|
+
return { ok: true };
|
|
195
|
+
if (causalityWhitelist.has(cell.id))
|
|
196
|
+
return { ok: true };
|
|
197
|
+
const src = cell.source.scale;
|
|
198
|
+
const dst = cell.target.scale;
|
|
199
|
+
if (src === undefined || dst === undefined) {
|
|
200
|
+
return {
|
|
201
|
+
ok: true,
|
|
202
|
+
diagnostic: {
|
|
203
|
+
severity: 'info',
|
|
204
|
+
ruleName: 'causality',
|
|
205
|
+
cellId: cell.id,
|
|
206
|
+
message: `scale axis unspecified; causality check skipped`,
|
|
207
|
+
},
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
const arrow = classifyArrow(src, dst);
|
|
211
|
+
if (arrow === 'reverse') {
|
|
212
|
+
return {
|
|
213
|
+
ok: true, // WARNING tier in v0.7; rule does not throw
|
|
214
|
+
diagnostic: {
|
|
215
|
+
severity: 'warning',
|
|
216
|
+
ruleName: 'causality',
|
|
217
|
+
cellId: cell.id,
|
|
218
|
+
message: `BridgeCell '${cell.id}' goes ${src}→${dst} (coarser→finer); ` +
|
|
219
|
+
`the canonical emergence direction is finer→coarser. ` +
|
|
220
|
+
`Recommend audit.`,
|
|
221
|
+
},
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
return { ok: true };
|
|
225
|
+
}
|
|
226
|
+
// ---------------------------------------------------------------------------
|
|
227
|
+
// Registry dispatcher
|
|
228
|
+
// ---------------------------------------------------------------------------
|
|
229
|
+
/**
|
|
230
|
+
* Run a set of rules against a single `cell` and aggregate the
|
|
231
|
+
* diagnostics into a `FluxReport`. Pure function — no I/O, no
|
|
232
|
+
* shared-state mutation.
|
|
233
|
+
*
|
|
234
|
+
* The switch over `FluxRuleKind` is exhaustive via the
|
|
235
|
+
* `_exhaustive: never` default arm (Decision #8). Adding a new rule
|
|
236
|
+
* kind forces a compile-time update here AND at every consumer
|
|
237
|
+
* site that branches on `FluxRuleKind`.
|
|
238
|
+
*
|
|
239
|
+
* @internal
|
|
240
|
+
*/
|
|
241
|
+
export function runRules(cell, rules) {
|
|
242
|
+
const diagnostics = [];
|
|
243
|
+
let errorCount = 0;
|
|
244
|
+
let warningCount = 0;
|
|
245
|
+
let infoCount = 0;
|
|
246
|
+
for (const rule of rules) {
|
|
247
|
+
// Exhaustive dispatch on rule.kind. Even though `check` is the
|
|
248
|
+
// same shape across kinds, branching here gives us the
|
|
249
|
+
// compile-time guarantee that every kind is handled — a new
|
|
250
|
+
// FluxRuleKind variant forces a compile error.
|
|
251
|
+
let result;
|
|
252
|
+
switch (rule.kind) {
|
|
253
|
+
case 'dimensional-consistency':
|
|
254
|
+
result = rule.check(cell);
|
|
255
|
+
break;
|
|
256
|
+
case 'lbe-coordinate':
|
|
257
|
+
result = rule.check(cell);
|
|
258
|
+
break;
|
|
259
|
+
case 'causality':
|
|
260
|
+
result = rule.check(cell);
|
|
261
|
+
break;
|
|
262
|
+
case 'regime-consistency':
|
|
263
|
+
result = rule.check(cell);
|
|
264
|
+
break;
|
|
265
|
+
default: {
|
|
266
|
+
const _exhaustive = rule.kind;
|
|
267
|
+
void _exhaustive;
|
|
268
|
+
throw new Error(`runRules: unknown rule kind`);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
if (result.diagnostic) {
|
|
272
|
+
diagnostics.push(result.diagnostic);
|
|
273
|
+
switch (result.diagnostic.severity) {
|
|
274
|
+
case 'error':
|
|
275
|
+
errorCount++;
|
|
276
|
+
break;
|
|
277
|
+
case 'warning':
|
|
278
|
+
warningCount++;
|
|
279
|
+
break;
|
|
280
|
+
case 'info':
|
|
281
|
+
infoCount++;
|
|
282
|
+
break;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
return {
|
|
287
|
+
diagnostics,
|
|
288
|
+
errorCount,
|
|
289
|
+
warningCount,
|
|
290
|
+
infoCount,
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* The two v0.7 in-tree rules registered for Phase 2 `addCell`
|
|
295
|
+
* dispatch. Rule 1 (Dimensional Consistency) is NOT here — it
|
|
296
|
+
* operates on `BridgeEquationEntry`, not `Cell`, and ships in
|
|
297
|
+
* Phase 3 alongside the catalog adapter.
|
|
298
|
+
*
|
|
299
|
+
* @internal
|
|
300
|
+
*/
|
|
301
|
+
export const V07_CELL_RULES = [
|
|
302
|
+
{ kind: 'lbe-coordinate', check: checkLBECoordinate },
|
|
303
|
+
{ kind: 'causality', check: checkCausality },
|
|
304
|
+
{ kind: 'regime-consistency', check: checkRegimeConsistency },
|
|
305
|
+
];
|
|
306
|
+
let registeredRegimeRule = null;
|
|
307
|
+
/**
|
|
308
|
+
* Install P5's regime-consistency rule body. Called by
|
|
309
|
+
* `src/core/regime-rule-install.ts` at its module load. If P5's
|
|
310
|
+
* module is never imported, the regime check stays a no-op
|
|
311
|
+
* (returns `ok: true` silently).
|
|
312
|
+
*
|
|
313
|
+
* @internal
|
|
314
|
+
*/
|
|
315
|
+
export function installRegimeConsistencyRule(body) {
|
|
316
|
+
registeredRegimeRule = body;
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Pure dispatcher for Rule 4 over `Cell`. Delegates to the body
|
|
320
|
+
* installed by P5 if present; otherwise a permissive no-op.
|
|
321
|
+
*
|
|
322
|
+
* @internal
|
|
323
|
+
*/
|
|
324
|
+
export function checkRegimeConsistency(cell) {
|
|
325
|
+
if (registeredRegimeRule)
|
|
326
|
+
return registeredRegimeRule(cell);
|
|
327
|
+
return { ok: true };
|
|
328
|
+
}
|
|
329
|
+
//# sourceMappingURL=flux-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flux-rules.js","sourceRoot":"","sources":["../../src/core/flux-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `LabeledTensor` — engine-level tensor wrapped with
|
|
3
|
+
* `UniversalIndex`-tagged metadata. The catalog-facing surface
|
|
4
|
+
* for physics-axis-aware contractions.
|
|
5
|
+
*
|
|
6
|
+
* Phase 2 + Phase 3 of v0.7 Proposal 1 (Intelligent Index Layer).
|
|
7
|
+
*
|
|
8
|
+
* Composition (Decision #5): `LabeledTensor` owns an `EngineTensor`,
|
|
9
|
+
* a `TensorEngine`, and a labels record. The engine handle is the
|
|
10
|
+
* boundary — `LabeledTensor` doesn't reach into the underlying
|
|
11
|
+
* Float64Array / MathTS handle. Contract matching is strictly
|
|
12
|
+
* `UniversalIndexId` equality (Decision #3) — two indices with the
|
|
13
|
+
* same `axis` and `name` but distinct `id`s do NOT contract.
|
|
14
|
+
*
|
|
15
|
+
* Design: `docs/planning/v0.7-Proposal-1-Design.md` Decisions
|
|
16
|
+
* #1, #3, #5, #6, #7, #9.
|
|
17
|
+
*
|
|
18
|
+
* Cross-Phase Invariants preserved:
|
|
19
|
+
* - #1 adapter-on-top: this module does NOT import
|
|
20
|
+
* `src/dimensional/tensor.ts` or `src/numerical/lowering.ts`.
|
|
21
|
+
* - #4 `TensorSymbolNode` + `computeContraction` UNCHANGED.
|
|
22
|
+
* - #5 `TensorEngine` interface UNCHANGED (consumes, doesn't
|
|
23
|
+
* extend).
|
|
24
|
+
*
|
|
25
|
+
* @module core/labeled-tensor
|
|
26
|
+
*/
|
|
27
|
+
import type { EngineTensor, TensorEngine } from '../numerical/tensor-engine.js';
|
|
28
|
+
import { UPTError } from '../dimensional/errors.js';
|
|
29
|
+
import type { AxisName, UniversalIndex, UniversalIndexId } from './universal-index.js';
|
|
30
|
+
/**
|
|
31
|
+
* Thrown by the `LabeledTensor` constructor when the labels record
|
|
32
|
+
* doesn't agree with the underlying tensor's rank
|
|
33
|
+
* (`Object.keys(labels).length !== tensor.shape.length`).
|
|
34
|
+
*
|
|
35
|
+
* @public
|
|
36
|
+
*/
|
|
37
|
+
export declare class LabeledTensorConstructionError extends UPTError {
|
|
38
|
+
readonly labelCount: number;
|
|
39
|
+
readonly tensorRank: number;
|
|
40
|
+
constructor(labelCount: number, tensorRank: number);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Thrown by `contract` when two `UniversalIndex` values share an
|
|
44
|
+
* `id` but disagree on `axis`. Per Decision #7, this is a physics
|
|
45
|
+
* error caught at the wrapper level. Impossible if both operands
|
|
46
|
+
* use the `Axes` registry; defensive against off-registry
|
|
47
|
+
* `makeIndex` consumers.
|
|
48
|
+
*
|
|
49
|
+
* @public
|
|
50
|
+
*/
|
|
51
|
+
export declare class AxisMismatchError extends UPTError {
|
|
52
|
+
readonly indexId: UniversalIndexId;
|
|
53
|
+
readonly leftAxis: AxisName;
|
|
54
|
+
readonly rightAxis: AxisName;
|
|
55
|
+
constructor(indexId: UniversalIndexId, leftAxis: AxisName, rightAxis: AxisName);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Thrown by `contract` when the same `UniversalIndexId` appears in
|
|
59
|
+
* more than one non-contracted (free) position across the two
|
|
60
|
+
* operands. Same physical axis showing up free on both sides is
|
|
61
|
+
* physically meaningful (joint distribution) but the einsum
|
|
62
|
+
* machinery has no canonical way to disambiguate.
|
|
63
|
+
*
|
|
64
|
+
* @public
|
|
65
|
+
*/
|
|
66
|
+
export declare class IdentityConflictError extends UPTError {
|
|
67
|
+
readonly indexId: UniversalIndexId;
|
|
68
|
+
constructor(indexId: UniversalIndexId);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Thrown by `reshape` when the requested shape would change the
|
|
72
|
+
* tensor rank. v0.7.0 allows only axis-by-axis size change;
|
|
73
|
+
* rank-changing reshape is deferred to v0.8.0+ (`mergeAxes` /
|
|
74
|
+
* `splitAxis` helpers).
|
|
75
|
+
*
|
|
76
|
+
* @public
|
|
77
|
+
*/
|
|
78
|
+
export declare class RankPreservationError extends UPTError {
|
|
79
|
+
readonly fromRank: number;
|
|
80
|
+
readonly toRank: number;
|
|
81
|
+
constructor(fromRank: number, toRank: number);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Stable lexicographic ordering of label keys. JavaScript's
|
|
85
|
+
* `Object.entries` preserves string-key insertion order, but we
|
|
86
|
+
* route all label-key→axis-position mapping through this helper
|
|
87
|
+
* so the contract algorithm doesn't accidentally depend on
|
|
88
|
+
* constructor-call ordering.
|
|
89
|
+
*
|
|
90
|
+
* @internal
|
|
91
|
+
*/
|
|
92
|
+
export declare function canonicalLabelOrder<L extends Record<string, UniversalIndex<AxisName>>>(labels: L): string[];
|
|
93
|
+
/**
|
|
94
|
+
* Engine-agnostic wrapper carrying physics-axis-tagged metadata over
|
|
95
|
+
* an opaque `EngineTensor`. Two `LabeledTensor`s contract over
|
|
96
|
+
* shared `UniversalIndexId` values; non-shared ids become the
|
|
97
|
+
* result's free axes.
|
|
98
|
+
*
|
|
99
|
+
* Construction enforces `Object.keys(labels).length === tensor.shape.length`.
|
|
100
|
+
*
|
|
101
|
+
* @public
|
|
102
|
+
*/
|
|
103
|
+
export declare class LabeledTensor<L extends Record<string, UniversalIndex<AxisName>> = Record<string, UniversalIndex<AxisName>>> {
|
|
104
|
+
readonly tensor: EngineTensor;
|
|
105
|
+
readonly engine: TensorEngine;
|
|
106
|
+
readonly labels: L;
|
|
107
|
+
constructor(tensor: EngineTensor, engine: TensorEngine, labels: L);
|
|
108
|
+
/**
|
|
109
|
+
* Identity-aware contraction (Decision #3): match labels by
|
|
110
|
+
* `UniversalIndexId` equality only. Returns a new `LabeledTensor`
|
|
111
|
+
* whose free labels are the union of both operands' free labels
|
|
112
|
+
* minus the contracted ids, evaluated in `this`-first,
|
|
113
|
+
* `other`-second canonical order.
|
|
114
|
+
*
|
|
115
|
+
* Throws:
|
|
116
|
+
* - `AxisMismatchError` if a shared id disagrees on axis.
|
|
117
|
+
* - `IdentityConflictError` if a non-shared id appears free on
|
|
118
|
+
* both operands.
|
|
119
|
+
*
|
|
120
|
+
* @public
|
|
121
|
+
*/
|
|
122
|
+
contract<R extends Record<string, UniversalIndex<AxisName>>>(other: LabeledTensor<R>): LabeledTensor;
|
|
123
|
+
/**
|
|
124
|
+
* Reorder axes per the given permutation of label keys. The new
|
|
125
|
+
* label record reflects the new axis order; the engine handles
|
|
126
|
+
* the storage-level permutation via `engine.transpose`.
|
|
127
|
+
*
|
|
128
|
+
* @public
|
|
129
|
+
*/
|
|
130
|
+
transpose(newKeyOrder: ReadonlyArray<keyof L & string>): LabeledTensor<L>;
|
|
131
|
+
/**
|
|
132
|
+
* Per-axis size change. Rank must be preserved (Decision #5);
|
|
133
|
+
* rank-changing reshape throws `RankPreservationError`. v0.8.0+
|
|
134
|
+
* may add `mergeAxes` / `splitAxis` for rank-changing operations.
|
|
135
|
+
*
|
|
136
|
+
* Labels survive unchanged (axis identity is preserved across a
|
|
137
|
+
* size-only reshape).
|
|
138
|
+
*
|
|
139
|
+
* @public
|
|
140
|
+
*/
|
|
141
|
+
reshape(shape: ReadonlyArray<number>): LabeledTensor<L>;
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=labeled-tensor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"labeled-tensor.d.ts","sourceRoot":"","sources":["../../src/core/labeled-tensor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAc,MAAM,+BAA+B,CAAC;AAC5F,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAOvF;;;;;;GAMG;AACH,qBAAa,8BAA+B,SAAQ,QAAQ;IAC1D,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,UAAU,EAAE,MAAM,CAAC;gBACvB,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAWnD;AAED;;;;;;;;GAQG;AACH,qBAAa,iBAAkB,SAAQ,QAAQ;IAC7C,SAAgB,OAAO,EAAE,gBAAgB,CAAC;IAC1C,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IACnC,SAAgB,SAAS,EAAE,QAAQ,CAAC;gBAElC,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,QAAQ;CAatB;AAED;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,SAAQ,QAAQ;IACjD,SAAgB,OAAO,EAAE,gBAAgB,CAAC;gBAC9B,OAAO,EAAE,gBAAgB;CAUtC;AAED;;;;;;;GAOG;AACH,qBAAa,qBAAsB,SAAQ,QAAQ;IACjD,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,MAAM,EAAE,MAAM,CAAC;gBACnB,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAW7C;AAMD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,EACpF,MAAM,EAAE,CAAC,GACR,MAAM,EAAE,CAEV;AAMD;;;;;;;;;GASG;AACH,qBAAa,aAAa,CACxB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE7F,SAAgB,MAAM,EAAE,YAAY,CAAC;IACrC,SAAgB,MAAM,EAAE,YAAY,CAAC;IACrC,SAAgB,MAAM,EAAE,CAAC,CAAC;gBAEd,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IAUjE;;;;;;;;;;;;;OAaG;IACI,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,EAChE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GACtB,aAAa;IAkEhB;;;;;;OAMG;IACI,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;IAuBhF;;;;;;;;;OASG;IACI,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;CAO/D"}
|