universal-physics-tensor 0.5.1 → 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 +15 -28
- 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/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/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/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 +12 -5
- package/dist/dimensional/connection-validators.d.ts.map +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 +46 -30
- package/dist/dimensional/curvature.d.ts.map +1 -1
- 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 +37 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -1
- package/dist/numerical/be37-covariant-eikonal.d.ts +19 -0
- package/dist/numerical/be37-covariant-eikonal.d.ts.map +1 -1
- package/dist/numerical/be37-covariant-eikonal.js +29 -9
- 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 +49 -57
- package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.js +109 -4
- 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/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 +4 -2
- package/dist/numerical/gl4-integrator.d.ts.map +1 -1
- package/dist/numerical/gl4-integrator.js +24 -8
- 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 +219 -415
- package/dist/numerical/lowering.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/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 +17 -9
- package/dist/numerical/pderiv.d.ts.map +1 -1
- package/dist/numerical/pderiv.js +6 -3
- package/dist/numerical/pderiv.js.map +1 -1
- package/dist/numerical/perihelion-finder.d.ts +30 -0
- package/dist/numerical/perihelion-finder.d.ts.map +1 -1
- package/dist/numerical/perihelion-finder.js +30 -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,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Klein-Gordon scalar field equation AST node.
|
|
3
|
+
*
|
|
4
|
+
* Phase 1 of the TensorEquationNode<LHS, RHS> generalization
|
|
5
|
+
* (`docs/architecture/v0.7-tensor-equation-node-design-note.md`).
|
|
6
|
+
* First new field-equation node to use the Phase 0 field-equation
|
|
7
|
+
* helpers shipped in commit `5cd860a`.
|
|
8
|
+
*
|
|
9
|
+
* Represents the predicate
|
|
10
|
+
*
|
|
11
|
+
* (□ + m²) φ = J
|
|
12
|
+
*
|
|
13
|
+
* where `□ = g^μν ∇_μ ∇_ν` is the d'Alembertian (wave operator),
|
|
14
|
+
* `m` is the field's mass, and `J` is an optional rank-0 source
|
|
15
|
+
* (set to `null` for the homogeneous form `(□ + m²) φ = 0`).
|
|
16
|
+
*
|
|
17
|
+
* The node validates three structural requirements (mirroring
|
|
18
|
+
* `EinsteinFieldEquationNode`'s pattern):
|
|
19
|
+
*
|
|
20
|
+
* 1. **Free-index agreement** — LHS and RHS are both rank-0
|
|
21
|
+
* (scalar). Trivial case of the rank-N invariant.
|
|
22
|
+
* 2. **Per-component dim equality** — LHS and RHS must have the
|
|
23
|
+
* same `Dimension`. The wave-operator's component dim equals
|
|
24
|
+
* the field's `[fieldDim] · [L^-2]`; m² has dim `[L^-2]`; so
|
|
25
|
+
* the LHS bracket combines to `[fieldDim · L^-2]`. The source
|
|
26
|
+
* J must match that.
|
|
27
|
+
* 3. **Symmetry agreement** — scalar fields have no symmetry
|
|
28
|
+
* structure; both sides carry the trivial `'scalar'` marker.
|
|
29
|
+
*
|
|
30
|
+
* Note: this is a PREDICATE node like EinsteinFieldEquationNode —
|
|
31
|
+
* not a value-producing expression. Numerical evaluation of the
|
|
32
|
+
* wave-operator action on a specific field is out of scope
|
|
33
|
+
* (would require a separate `lowerKleinGordon` step like the
|
|
34
|
+
* curvature pipeline).
|
|
35
|
+
*
|
|
36
|
+
* @module dimensional/klein-gordon-equation
|
|
37
|
+
*/
|
|
38
|
+
import { validateFreeIndexLabelMatch, validateComponentDimension, validateTensorSymmetry, } from './field-equation-helpers.js';
|
|
39
|
+
/** The dimensional contribution of `□ + m²`: `[L^-2]`. */
|
|
40
|
+
const WAVE_OPERATOR_DIM_FACTOR = {
|
|
41
|
+
L: -2, M: 0, T: 0, I: 0, Theta: 0, N: 0, J: 0,
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Compose `[field.dim] × [L^-2]` (component-wise sum of exponents).
|
|
45
|
+
*/
|
|
46
|
+
function composeWaveOperatorDim(fieldDim) {
|
|
47
|
+
return {
|
|
48
|
+
L: fieldDim.L + WAVE_OPERATOR_DIM_FACTOR.L,
|
|
49
|
+
M: fieldDim.M + WAVE_OPERATOR_DIM_FACTOR.M,
|
|
50
|
+
T: fieldDim.T + WAVE_OPERATOR_DIM_FACTOR.T,
|
|
51
|
+
I: fieldDim.I + WAVE_OPERATOR_DIM_FACTOR.I,
|
|
52
|
+
Theta: fieldDim.Theta + WAVE_OPERATOR_DIM_FACTOR.Theta,
|
|
53
|
+
N: fieldDim.N + WAVE_OPERATOR_DIM_FACTOR.N,
|
|
54
|
+
J: fieldDim.J + WAVE_OPERATOR_DIM_FACTOR.J,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Validate a `klein-gordon-equation` node.
|
|
59
|
+
*
|
|
60
|
+
* Three predicates (mirroring the field-equation-helpers pattern):
|
|
61
|
+
*
|
|
62
|
+
* 1. **Free-index agreement** — trivially passes (both sides are
|
|
63
|
+
* rank-0; `validateFreeIndexLabelMatch` with empty arrays).
|
|
64
|
+
* 2. **Per-component dim equality** — m² and source J must
|
|
65
|
+
* match the wave-operator's contribution.
|
|
66
|
+
* 3. **Symmetry agreement** — all participants are 'scalar'.
|
|
67
|
+
*
|
|
68
|
+
* Errors carry the keywords 'index label', 'dimension', 'symmetry'
|
|
69
|
+
* (consumers pattern-matching on the EFE error vocabulary stay
|
|
70
|
+
* green).
|
|
71
|
+
*
|
|
72
|
+
* @public
|
|
73
|
+
*/
|
|
74
|
+
export function validateKleinGordonEquation(node) {
|
|
75
|
+
const composedDim = composeWaveOperatorDim(node.field.dim);
|
|
76
|
+
// Predicate 1: free-index agreement (trivially: both rank-0).
|
|
77
|
+
validateFreeIndexLabelMatch('KleinGordonEquationNode', '(□+m²)φ', [], node.source ? 'J' : '0', []);
|
|
78
|
+
// Predicate 2a: m² dimension must be [L^-2] (mass-squared as a
|
|
79
|
+
// wave-operator term contributes this).
|
|
80
|
+
validateComponentDimension('KleinGordonEquationNode', 'mass term m².dim', node.mass.dim, WAVE_OPERATOR_DIM_FACTOR, 'm² is the mass-squared term in (□+m²)φ; must have dim [L^-2] to combine with the wave operator.');
|
|
81
|
+
// Predicate 2b: source J dimension must equal the composed
|
|
82
|
+
// wave-operator-acting-on-field dim. Skipped if source is null
|
|
83
|
+
// (homogeneous form).
|
|
84
|
+
if (node.source !== null) {
|
|
85
|
+
validateComponentDimension('KleinGordonEquationNode', 'source J.dim', node.source.dim, composedDim, 'J must match (□+m²)φ on the LHS, which has dim [field.dim · L^-2].');
|
|
86
|
+
}
|
|
87
|
+
// Predicate 3: symmetry agreement — all 'scalar'.
|
|
88
|
+
validateTensorSymmetry('KleinGordonEquationNode', 'field φ', node.field.symmetry, 'scalar', 'Klein-Gordon is a scalar field equation.');
|
|
89
|
+
validateTensorSymmetry('KleinGordonEquationNode', 'mass m²', node.mass.symmetry, 'scalar', 'm² is a scalar parameter.');
|
|
90
|
+
if (node.source !== null) {
|
|
91
|
+
validateTensorSymmetry('KleinGordonEquationNode', 'source J', node.source.symmetry, 'scalar', 'Klein-Gordon source J is a scalar.');
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
dim: composedDim,
|
|
95
|
+
freeIndices: new Map(),
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=klein-gordon-equation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"klein-gordon-equation.js","sourceRoot":"","sources":["../../src/dimensional/klein-gordon-equation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAGH,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AA0DrC,0DAA0D;AAC1D,MAAM,wBAAwB,GAAc;IAC1C,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;CAC9C,CAAC;AAEF;;GAEG;AACH,SAAS,sBAAsB,CAAC,QAAmB;IACjD,OAAO;QACL,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC;QAC1C,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC;QAC1C,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC;QAC1C,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC;QAC1C,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,wBAAwB,CAAC,KAAK;QACtD,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC;QAC1C,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,2BAA2B,CACzC,IAA6B;IAE7B,MAAM,WAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE3D,8DAA8D;IAC9D,2BAA2B,CACzB,yBAAyB,EACzB,SAAS,EACT,EAAE,EACF,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EACvB,EAAE,CACH,CAAC;IAEF,+DAA+D;IAC/D,wCAAwC;IACxC,0BAA0B,CACxB,yBAAyB,EACzB,kBAAkB,EAClB,IAAI,CAAC,IAAI,CAAC,GAAG,EACb,wBAAwB,EACxB,iGAAiG,CAClG,CAAC;IAEF,2DAA2D;IAC3D,+DAA+D;IAC/D,sBAAsB;IACtB,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACzB,0BAA0B,CACxB,yBAAyB,EACzB,cAAc,EACd,IAAI,CAAC,MAAM,CAAC,GAAG,EACf,WAAW,EACX,oEAAoE,CACrE,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,sBAAsB,CACpB,yBAAyB,EACzB,SAAS,EACT,IAAI,CAAC,KAAK,CAAC,QAAQ,EACnB,QAAQ,EACR,0CAA0C,CAC3C,CAAC;IACF,sBAAsB,CACpB,yBAAyB,EACzB,SAAS,EACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAClB,QAAQ,EACR,2BAA2B,CAC5B,CAAC;IACF,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACzB,sBAAsB,CACpB,yBAAyB,EACzB,UAAU,EACV,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,QAAQ,EACR,oCAAoC,CACrC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,EAAE,WAAW;QAChB,WAAW,EAAE,IAAI,GAAG,EAAE;KACvB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renormalization-group (RG) flow primitives — `RGCouplingNode` +
|
|
3
|
+
* `BetaFunctionNode` (v0.7 BE-X re-encoding sprint).
|
|
4
|
+
*
|
|
5
|
+
* Encodes the structure of a Wilsonian / functional-RG flow on the
|
|
6
|
+
* space of *dimensionless* couplings. The motivating physics context
|
|
7
|
+
* is the asymptotic-safety program for quantum gravity (Reuter 1998
|
|
8
|
+
* *Phys. Rev. D* 57:971, arXiv:hep-th/9605030; Niedermaier-Reuter 2006
|
|
9
|
+
* *Living Rev. Relativity* 9:5 for the canonical review), in which RG
|
|
10
|
+
* flow on the space of dimensionless couplings `g_n = G_n(k)·k^{d_n}`
|
|
11
|
+
* is governed by polynomial β-functions
|
|
12
|
+
*
|
|
13
|
+
* β_n(g_1, g_2, …) ≡ k ∂_k g_n
|
|
14
|
+
*
|
|
15
|
+
* and a viable UV-complete theory is signalled by the existence of a
|
|
16
|
+
* non-Gaussian fixed point `(g_1*, g_2*, …)` at which every β_n
|
|
17
|
+
* vanishes simultaneously. The structural distinction made here:
|
|
18
|
+
*
|
|
19
|
+
* - `RGCouplingNode` represents a single dimensionless coupling
|
|
20
|
+
* (`g`, `λ`, …) — a labelled handle, dim hardcoded to
|
|
21
|
+
* DIMENSIONLESS for type-system symmetry with other AST nodes.
|
|
22
|
+
* - `BetaFunctionNode` represents one β-function of a multi-coupling
|
|
23
|
+
* flow: it carries the FULL coupling vector (the flow direction),
|
|
24
|
+
* a `target` selector picking out which coupling's β-function this
|
|
25
|
+
* node represents, the polynomial expression in those couplings,
|
|
26
|
+
* and an optional UV / IR fixed-point pin.
|
|
27
|
+
*
|
|
28
|
+
* The polynomial expression is a standard `ExprNode` built from
|
|
29
|
+
* dimensionless symbols + the existing `op (+ * / ^ -)` primitives;
|
|
30
|
+
* `validateBetaFunction` delegates dimensional checking to the existing
|
|
31
|
+
* `validate()` from `validator.ts` and verifies the result reduces to
|
|
32
|
+
* DIMENSIONLESS.
|
|
33
|
+
*
|
|
34
|
+
* These primitives are NOT (yet) added to the `ExprNode` union — they
|
|
35
|
+
* live as a standalone predicate-level structure that callers compose
|
|
36
|
+
* adjacent to the existing AST. BE-39's polynomial RHS continues to be
|
|
37
|
+
* encoded as plain `op`-trees for catalog round-trip; the structural
|
|
38
|
+
* `BetaFunctionNode` wrapper supplies the higher-level RG-flow
|
|
39
|
+
* semantics on top.
|
|
40
|
+
*
|
|
41
|
+
* @module dimensional/rg-flow
|
|
42
|
+
*/
|
|
43
|
+
import type { ExprNode } from './validator.js';
|
|
44
|
+
import type { Dimension } from './types.js';
|
|
45
|
+
/**
|
|
46
|
+
* AST node for a single dimensionless RG coupling (e.g. `g`, `λ`).
|
|
47
|
+
*
|
|
48
|
+
* By RG-discipline every coupling appearing in a β-function expression
|
|
49
|
+
* is dimensionless: physical dimensionful couplings `G_n` are made
|
|
50
|
+
* dimensionless via the RG scale `k` (e.g. `g = G·k²`, `λ = Λ/k²`).
|
|
51
|
+
* The `dim` field is therefore hardcoded to `DIMENSIONLESS`; it is
|
|
52
|
+
* exposed for type-system symmetry with `{ kind: 'symbol' }` so a
|
|
53
|
+
* future ExprNode-union integration is mechanical.
|
|
54
|
+
*
|
|
55
|
+
* @public
|
|
56
|
+
*/
|
|
57
|
+
export interface RGCouplingNode {
|
|
58
|
+
readonly kind: 'rg-coupling';
|
|
59
|
+
/** Coupling name, e.g. `'g'`, `'lambda'`. Non-empty. */
|
|
60
|
+
readonly name: string;
|
|
61
|
+
/** Always `DIMENSIONLESS` — RG-discipline invariant. */
|
|
62
|
+
readonly dim: Dimension;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Construct an `RGCouplingNode` with the dimensionless invariant
|
|
66
|
+
* pre-applied. Convenience helper — callers may also build the node
|
|
67
|
+
* literal directly.
|
|
68
|
+
*
|
|
69
|
+
* @public
|
|
70
|
+
*/
|
|
71
|
+
export declare function rgCoupling(name: string): RGCouplingNode;
|
|
72
|
+
/**
|
|
73
|
+
* Validate an `RGCouplingNode`.
|
|
74
|
+
*
|
|
75
|
+
* Predicates:
|
|
76
|
+
* 1. `name` is a non-empty string (dimension validators reject empty
|
|
77
|
+
* labels because they make error messages unintelligible).
|
|
78
|
+
* 2. `dim` is `DIMENSIONLESS` (RG-discipline invariant; physical
|
|
79
|
+
* dimension is absorbed into the running scale `k`).
|
|
80
|
+
*
|
|
81
|
+
* Throws an `Error` with `"name"` / `"dimension"` in the message on
|
|
82
|
+
* failure.
|
|
83
|
+
*
|
|
84
|
+
* @public
|
|
85
|
+
*/
|
|
86
|
+
export declare function validateRGCoupling(node: RGCouplingNode): void;
|
|
87
|
+
/**
|
|
88
|
+
* AST node for a single β-function in a multi-coupling RG flow.
|
|
89
|
+
*
|
|
90
|
+
* Fields:
|
|
91
|
+
* - `couplings` — the full coupling vector `(g_1, g_2, …)`; this is
|
|
92
|
+
* the flow direction. Every coupling must appear here, even those
|
|
93
|
+
* that do not enter the polynomialExpansion of this specific
|
|
94
|
+
* β-function (so that the cross-coupling dependency structure is
|
|
95
|
+
* captured at the type level).
|
|
96
|
+
* - `target` — the coupling whose β-function this node represents.
|
|
97
|
+
* MUST be one of `couplings` (by name).
|
|
98
|
+
* - `polynomialExpansion` — the explicit β(couplings) expression as
|
|
99
|
+
* a standard `ExprNode`. Must reduce to `DIMENSIONLESS` via the
|
|
100
|
+
* existing `validate()`.
|
|
101
|
+
* - `fixedPoint` — optional UV / IR fixed-point pin, one numeric
|
|
102
|
+
* value per coupling in the same order as `couplings`. When
|
|
103
|
+
* present, `fixedPoint.length === couplings.length` is enforced.
|
|
104
|
+
*
|
|
105
|
+
* The polynomial form follows Reuter 1998 + the Niedermaier-Reuter 2006
|
|
106
|
+
* review: each β_n is a polynomial in the dimensionless couplings,
|
|
107
|
+
* truncated at some power dictated by the chosen truncation scheme
|
|
108
|
+
* (e.g. canonical Einstein-Hilbert truncation for gravity).
|
|
109
|
+
*
|
|
110
|
+
* @public
|
|
111
|
+
*/
|
|
112
|
+
export interface BetaFunctionNode {
|
|
113
|
+
readonly kind: 'beta-function';
|
|
114
|
+
readonly couplings: ReadonlyArray<RGCouplingNode>;
|
|
115
|
+
readonly target: RGCouplingNode;
|
|
116
|
+
readonly polynomialExpansion: ExprNode;
|
|
117
|
+
readonly fixedPoint?: ReadonlyArray<number>;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Result of validating a `BetaFunctionNode`.
|
|
121
|
+
*
|
|
122
|
+
* `dim` is always `DIMENSIONLESS` (a β-function of dimensionless
|
|
123
|
+
* couplings is itself dimensionless: `β = k ∂_k g` with both `g` and
|
|
124
|
+
* `k ∂_k log(k)` dimensionless). `targetName` is the validated target
|
|
125
|
+
* coupling label, useful for downstream RG-flow assembly.
|
|
126
|
+
*
|
|
127
|
+
* @public
|
|
128
|
+
*/
|
|
129
|
+
export interface BetaFunctionValidationResult {
|
|
130
|
+
readonly dim: Dimension;
|
|
131
|
+
readonly targetName: string;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Validate a `BetaFunctionNode`.
|
|
135
|
+
*
|
|
136
|
+
* Predicates:
|
|
137
|
+
*
|
|
138
|
+
* 1. **Coupling list non-empty**: `couplings.length >= 1`. A flow
|
|
139
|
+
* with no couplings has no β-function to define.
|
|
140
|
+
* 2. **Every coupling is well-formed**: each entry passes
|
|
141
|
+
* `validateRGCoupling`. Names must be unique.
|
|
142
|
+
* 3. **Target ∈ couplings**: `target.name` appears in
|
|
143
|
+
* `couplings.map(c => c.name)`. Throws an Error scoped
|
|
144
|
+
* `'BetaFunctionNode: target …'` on miss.
|
|
145
|
+
* 4. **Polynomial dimensionless**: `validate(polynomialExpansion)`
|
|
146
|
+
* succeeds and yields `DIMENSIONLESS`. Anything else throws with
|
|
147
|
+
* `'dimension'` in the message.
|
|
148
|
+
* 5. **Fixed-point length match** (if `fixedPoint` is set):
|
|
149
|
+
* `fixedPoint.length === couplings.length`. Each value must be
|
|
150
|
+
* finite. Throws scoped `'BetaFunctionNode: fixedPoint …'` on
|
|
151
|
+
* mismatch.
|
|
152
|
+
*
|
|
153
|
+
* @public
|
|
154
|
+
*/
|
|
155
|
+
export declare function validateBetaFunction(node: BetaFunctionNode): BetaFunctionValidationResult;
|
|
156
|
+
//# sourceMappingURL=rg-flow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rg-flow.d.ts","sourceRoot":"","sources":["../../src/dimensional/rg-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQ5C;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAEvD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAc7D;AAMD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,QAAQ,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC7C;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,gBAAgB,GACrB,4BAA4B,CAyE9B"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renormalization-group (RG) flow primitives — `RGCouplingNode` +
|
|
3
|
+
* `BetaFunctionNode` (v0.7 BE-X re-encoding sprint).
|
|
4
|
+
*
|
|
5
|
+
* Encodes the structure of a Wilsonian / functional-RG flow on the
|
|
6
|
+
* space of *dimensionless* couplings. The motivating physics context
|
|
7
|
+
* is the asymptotic-safety program for quantum gravity (Reuter 1998
|
|
8
|
+
* *Phys. Rev. D* 57:971, arXiv:hep-th/9605030; Niedermaier-Reuter 2006
|
|
9
|
+
* *Living Rev. Relativity* 9:5 for the canonical review), in which RG
|
|
10
|
+
* flow on the space of dimensionless couplings `g_n = G_n(k)·k^{d_n}`
|
|
11
|
+
* is governed by polynomial β-functions
|
|
12
|
+
*
|
|
13
|
+
* β_n(g_1, g_2, …) ≡ k ∂_k g_n
|
|
14
|
+
*
|
|
15
|
+
* and a viable UV-complete theory is signalled by the existence of a
|
|
16
|
+
* non-Gaussian fixed point `(g_1*, g_2*, …)` at which every β_n
|
|
17
|
+
* vanishes simultaneously. The structural distinction made here:
|
|
18
|
+
*
|
|
19
|
+
* - `RGCouplingNode` represents a single dimensionless coupling
|
|
20
|
+
* (`g`, `λ`, …) — a labelled handle, dim hardcoded to
|
|
21
|
+
* DIMENSIONLESS for type-system symmetry with other AST nodes.
|
|
22
|
+
* - `BetaFunctionNode` represents one β-function of a multi-coupling
|
|
23
|
+
* flow: it carries the FULL coupling vector (the flow direction),
|
|
24
|
+
* a `target` selector picking out which coupling's β-function this
|
|
25
|
+
* node represents, the polynomial expression in those couplings,
|
|
26
|
+
* and an optional UV / IR fixed-point pin.
|
|
27
|
+
*
|
|
28
|
+
* The polynomial expression is a standard `ExprNode` built from
|
|
29
|
+
* dimensionless symbols + the existing `op (+ * / ^ -)` primitives;
|
|
30
|
+
* `validateBetaFunction` delegates dimensional checking to the existing
|
|
31
|
+
* `validate()` from `validator.ts` and verifies the result reduces to
|
|
32
|
+
* DIMENSIONLESS.
|
|
33
|
+
*
|
|
34
|
+
* These primitives are NOT (yet) added to the `ExprNode` union — they
|
|
35
|
+
* live as a standalone predicate-level structure that callers compose
|
|
36
|
+
* adjacent to the existing AST. BE-39's polynomial RHS continues to be
|
|
37
|
+
* encoded as plain `op`-trees for catalog round-trip; the structural
|
|
38
|
+
* `BetaFunctionNode` wrapper supplies the higher-level RG-flow
|
|
39
|
+
* semantics on top.
|
|
40
|
+
*
|
|
41
|
+
* @module dimensional/rg-flow
|
|
42
|
+
*/
|
|
43
|
+
import { validate } from './validator.js';
|
|
44
|
+
import { DIMENSIONLESS } from './types.js';
|
|
45
|
+
import { validateComponentDimension } from './field-equation-helpers.js';
|
|
46
|
+
/**
|
|
47
|
+
* Construct an `RGCouplingNode` with the dimensionless invariant
|
|
48
|
+
* pre-applied. Convenience helper — callers may also build the node
|
|
49
|
+
* literal directly.
|
|
50
|
+
*
|
|
51
|
+
* @public
|
|
52
|
+
*/
|
|
53
|
+
export function rgCoupling(name) {
|
|
54
|
+
return { kind: 'rg-coupling', name, dim: DIMENSIONLESS };
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Validate an `RGCouplingNode`.
|
|
58
|
+
*
|
|
59
|
+
* Predicates:
|
|
60
|
+
* 1. `name` is a non-empty string (dimension validators reject empty
|
|
61
|
+
* labels because they make error messages unintelligible).
|
|
62
|
+
* 2. `dim` is `DIMENSIONLESS` (RG-discipline invariant; physical
|
|
63
|
+
* dimension is absorbed into the running scale `k`).
|
|
64
|
+
*
|
|
65
|
+
* Throws an `Error` with `"name"` / `"dimension"` in the message on
|
|
66
|
+
* failure.
|
|
67
|
+
*
|
|
68
|
+
* @public
|
|
69
|
+
*/
|
|
70
|
+
export function validateRGCoupling(node) {
|
|
71
|
+
if (typeof node.name !== 'string' || node.name.length === 0) {
|
|
72
|
+
throw new Error(`RGCouplingNode: invalid name — must be a non-empty string ` +
|
|
73
|
+
`(got ${JSON.stringify(node.name)}).`);
|
|
74
|
+
}
|
|
75
|
+
validateComponentDimension('RGCouplingNode', `coupling '${node.name}'`, node.dim, DIMENSIONLESS, `must be DIMENSIONLESS by RG-discipline. Physical dimension should be absorbed into the running scale k.`);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Validate a `BetaFunctionNode`.
|
|
79
|
+
*
|
|
80
|
+
* Predicates:
|
|
81
|
+
*
|
|
82
|
+
* 1. **Coupling list non-empty**: `couplings.length >= 1`. A flow
|
|
83
|
+
* with no couplings has no β-function to define.
|
|
84
|
+
* 2. **Every coupling is well-formed**: each entry passes
|
|
85
|
+
* `validateRGCoupling`. Names must be unique.
|
|
86
|
+
* 3. **Target ∈ couplings**: `target.name` appears in
|
|
87
|
+
* `couplings.map(c => c.name)`. Throws an Error scoped
|
|
88
|
+
* `'BetaFunctionNode: target …'` on miss.
|
|
89
|
+
* 4. **Polynomial dimensionless**: `validate(polynomialExpansion)`
|
|
90
|
+
* succeeds and yields `DIMENSIONLESS`. Anything else throws with
|
|
91
|
+
* `'dimension'` in the message.
|
|
92
|
+
* 5. **Fixed-point length match** (if `fixedPoint` is set):
|
|
93
|
+
* `fixedPoint.length === couplings.length`. Each value must be
|
|
94
|
+
* finite. Throws scoped `'BetaFunctionNode: fixedPoint …'` on
|
|
95
|
+
* mismatch.
|
|
96
|
+
*
|
|
97
|
+
* @public
|
|
98
|
+
*/
|
|
99
|
+
export function validateBetaFunction(node) {
|
|
100
|
+
// ── Predicate 1: coupling list non-empty ───────────────────────────────────
|
|
101
|
+
if (node.couplings.length === 0) {
|
|
102
|
+
throw new Error(`BetaFunctionNode: coupling list is empty — an RG flow requires ` +
|
|
103
|
+
`at least one coupling. Define the flow direction in 'couplings'.`);
|
|
104
|
+
}
|
|
105
|
+
// ── Predicate 2: every coupling is well-formed; names unique ──────────────
|
|
106
|
+
const seen = new Set();
|
|
107
|
+
for (const c of node.couplings) {
|
|
108
|
+
validateRGCoupling(c);
|
|
109
|
+
if (seen.has(c.name)) {
|
|
110
|
+
throw new Error(`BetaFunctionNode: duplicate coupling name '${c.name}' in ` +
|
|
111
|
+
`couplings list. Each RGCouplingNode must have a unique name.`);
|
|
112
|
+
}
|
|
113
|
+
seen.add(c.name);
|
|
114
|
+
}
|
|
115
|
+
// ── Predicate 3: target is one of the couplings ───────────────────────────
|
|
116
|
+
validateRGCoupling(node.target);
|
|
117
|
+
if (!seen.has(node.target.name)) {
|
|
118
|
+
throw new Error(`BetaFunctionNode: target coupling '${node.target.name}' is not in ` +
|
|
119
|
+
`the couplings list [${[...seen].join(', ')}]. The target must be ` +
|
|
120
|
+
`one of the flow-direction couplings.`);
|
|
121
|
+
}
|
|
122
|
+
// ── Predicate 4: polynomialExpansion validates to DIMENSIONLESS ───────────
|
|
123
|
+
const polyResult = validate(node.polynomialExpansion);
|
|
124
|
+
if (!polyResult.ok || polyResult.inferredDimension === null) {
|
|
125
|
+
const noteSummary = polyResult.violations
|
|
126
|
+
.map((v) => v.note)
|
|
127
|
+
.join('; ');
|
|
128
|
+
throw new Error(`BetaFunctionNode: polynomialExpansion failed dimension inference ` +
|
|
129
|
+
`for target '${node.target.name}' — ${noteSummary || 'no detail available'}.`);
|
|
130
|
+
}
|
|
131
|
+
validateComponentDimension('BetaFunctionNode', `polynomialExpansion for target '${node.target.name}'`, polyResult.inferredDimension, DIMENSIONLESS, `must be DIMENSIONLESS (β-function of dimensionless couplings).`);
|
|
132
|
+
// ── Predicate 5: fixed-point length agrees with couplings count ───────────
|
|
133
|
+
if (node.fixedPoint !== undefined) {
|
|
134
|
+
if (node.fixedPoint.length !== node.couplings.length) {
|
|
135
|
+
throw new Error(`BetaFunctionNode: fixedPoint length mismatch — got ` +
|
|
136
|
+
`${node.fixedPoint.length} value(s) but couplings list has ` +
|
|
137
|
+
`${node.couplings.length}. Provide one fixed-point coordinate ` +
|
|
138
|
+
`per coupling in the same order as 'couplings'.`);
|
|
139
|
+
}
|
|
140
|
+
for (let i = 0; i < node.fixedPoint.length; i++) {
|
|
141
|
+
const v = node.fixedPoint[i];
|
|
142
|
+
if (!Number.isFinite(v)) {
|
|
143
|
+
throw new Error(`BetaFunctionNode: fixedPoint[${i}] (coupling ` +
|
|
144
|
+
`'${node.couplings[i].name}') is not finite (got ${v}).`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return { dim: DIMENSIONLESS, targetName: node.target.name };
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=rg-flow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rg-flow.js","sourceRoot":"","sources":["../../src/dimensional/rg-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stress-energy tensor and cosmological constant AST nodes (v0.6.0 Phase 2).
|
|
3
|
+
*
|
|
4
|
+
* Locked to lower-lower variance (Decision #2). Symmetry locked as
|
|
5
|
+
* explicit field (Decision #12). Antisymmetric T_μν⁺ (Belinfante-Rosenfeld)
|
|
6
|
+
* deferred to v0.7.0+.
|
|
7
|
+
*
|
|
8
|
+
* @module dimensional/stress-energy-validators
|
|
9
|
+
*/
|
|
10
|
+
import type { Dimension } from './types.js';
|
|
11
|
+
import type { CovariantIndex } from './metric-validators.js';
|
|
12
|
+
/**
|
|
13
|
+
* AST node for the stress-energy tensor T_μν. Rank-2 lower-lower locked
|
|
14
|
+
* (Decision #2). Symmetric (Decision #12).
|
|
15
|
+
*
|
|
16
|
+
* componentDim is the SI dimension of a single component: [M·L⁻¹·T⁻²]
|
|
17
|
+
* (energy density = Pa = kg·m⁻¹·s⁻²).
|
|
18
|
+
*
|
|
19
|
+
* @public
|
|
20
|
+
*/
|
|
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
|
+
interface StressEnergyValidationResult {
|
|
41
|
+
readonly dim: Dimension;
|
|
42
|
+
readonly freeIndices: Map<string, {
|
|
43
|
+
upper: number;
|
|
44
|
+
lower: number;
|
|
45
|
+
}>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Validate a `stress-energy` node.
|
|
49
|
+
*
|
|
50
|
+
* Throws:
|
|
51
|
+
* - Error if rank ≠ 2 (T_μν is a rank-2 tensor by definition).
|
|
52
|
+
* - Error if any index variance ≠ 'lower' (lower-lower locked per Decision #2).
|
|
53
|
+
*
|
|
54
|
+
* Returns `{dim: componentDim, freeIndices: {idx0: {lower:1}, idx1: {lower:1}}}`.
|
|
55
|
+
*/
|
|
56
|
+
export declare function validateStressEnergyTensor(node: StressEnergyTensorNode): StressEnergyValidationResult;
|
|
57
|
+
interface CosmologicalConstantValidationResult {
|
|
58
|
+
readonly dim: Dimension;
|
|
59
|
+
readonly freeIndices: Map<string, {
|
|
60
|
+
upper: number;
|
|
61
|
+
lower: number;
|
|
62
|
+
}>;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Validate a `cosmological-constant` node.
|
|
66
|
+
*
|
|
67
|
+
* Throws:
|
|
68
|
+
* - Error if dim ≠ [L⁻²] (check L === -2 && M === 0 && T === 0).
|
|
69
|
+
*
|
|
70
|
+
* Returns `{dim, freeIndices: empty}` (scalar — no free indices).
|
|
71
|
+
*/
|
|
72
|
+
export declare function validateCosmologicalConstant(node: CosmologicalConstantNode): CosmologicalConstantValidationResult;
|
|
73
|
+
export {};
|
|
74
|
+
//# sourceMappingURL=stress-energy-validators.d.ts.map
|
|
@@ -0,0 +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,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IAC5D,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC;CAClC;AAED;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stress-energy tensor and cosmological constant AST nodes (v0.6.0 Phase 2).
|
|
3
|
+
*
|
|
4
|
+
* Locked to lower-lower variance (Decision #2). Symmetry locked as
|
|
5
|
+
* explicit field (Decision #12). Antisymmetric T_μν⁺ (Belinfante-Rosenfeld)
|
|
6
|
+
* deferred to v0.7.0+.
|
|
7
|
+
*
|
|
8
|
+
* @module dimensional/stress-energy-validators
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Validate a `stress-energy` node.
|
|
12
|
+
*
|
|
13
|
+
* Throws:
|
|
14
|
+
* - Error if rank ≠ 2 (T_μν is a rank-2 tensor by definition).
|
|
15
|
+
* - Error if any index variance ≠ 'lower' (lower-lower locked per Decision #2).
|
|
16
|
+
*
|
|
17
|
+
* Returns `{dim: componentDim, freeIndices: {idx0: {lower:1}, idx1: {lower:1}}}`.
|
|
18
|
+
*/
|
|
19
|
+
export function validateStressEnergyTensor(node) {
|
|
20
|
+
if (node.indices.length !== 2) {
|
|
21
|
+
throw new Error(`StressEnergyTensorNode: expected rank-2, got rank-${node.indices.length}`);
|
|
22
|
+
}
|
|
23
|
+
for (const idx of node.indices) {
|
|
24
|
+
if (idx.variance !== 'lower') {
|
|
25
|
+
throw new Error(`StressEnergyTensorNode: only lower-lower variance supported in v0.6.0 (got '${idx.variance}')`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const freeIndices = new Map();
|
|
29
|
+
freeIndices.set(node.indices[0].label, { upper: 0, lower: 1 });
|
|
30
|
+
freeIndices.set(node.indices[1].label, { upper: 0, lower: 1 });
|
|
31
|
+
return { dim: node.componentDim, freeIndices };
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Validate a `cosmological-constant` node.
|
|
35
|
+
*
|
|
36
|
+
* Throws:
|
|
37
|
+
* - Error if dim ≠ [L⁻²] (check L === -2 && M === 0 && T === 0).
|
|
38
|
+
*
|
|
39
|
+
* Returns `{dim, freeIndices: empty}` (scalar — no free indices).
|
|
40
|
+
*/
|
|
41
|
+
export function validateCosmologicalConstant(node) {
|
|
42
|
+
if (node.dim.L !== -2 || node.dim.M !== 0 || node.dim.T !== 0) {
|
|
43
|
+
throw new Error(`CosmologicalConstantNode: expected dim [L⁻²], got ${JSON.stringify(node.dim)}`);
|
|
44
|
+
}
|
|
45
|
+
return { dim: node.dim, freeIndices: new Map() };
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=stress-energy-validators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stress-energy-validators.js","sourceRoot":"","sources":["../../src/dimensional/stress-energy-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyCH;;;;;;;;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"}
|