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.
Files changed (401) hide show
  1. package/README.md +66 -105
  2. package/dist/bridges/catalog-adapter.d.ts +116 -0
  3. package/dist/bridges/catalog-adapter.d.ts.map +1 -0
  4. package/dist/bridges/catalog-adapter.js +302 -0
  5. package/dist/bridges/catalog-adapter.js.map +1 -0
  6. package/dist/bridges/equations/_be-helpers.d.ts +145 -0
  7. package/dist/bridges/equations/_be-helpers.d.ts.map +1 -0
  8. package/dist/bridges/equations/_be-helpers.js +179 -0
  9. package/dist/bridges/equations/_be-helpers.js.map +1 -0
  10. package/dist/bridges/equations/be-11-decoherence-master.d.ts +1 -2
  11. package/dist/bridges/equations/be-11-decoherence-master.d.ts.map +1 -1
  12. package/dist/bridges/equations/be-11-decoherence-master.js +9 -20
  13. package/dist/bridges/equations/be-11-decoherence-master.js.map +1 -1
  14. package/dist/bridges/equations/be-12-coherence-length.d.ts +7 -1
  15. package/dist/bridges/equations/be-12-coherence-length.d.ts.map +1 -1
  16. package/dist/bridges/equations/be-12-coherence-length.js +8 -16
  17. package/dist/bridges/equations/be-12-coherence-length.js.map +1 -1
  18. package/dist/bridges/equations/be-13-einstein-trace.d.ts +51 -3
  19. package/dist/bridges/equations/be-13-einstein-trace.d.ts.map +1 -1
  20. package/dist/bridges/equations/be-13-einstein-trace.js +74 -17
  21. package/dist/bridges/equations/be-13-einstein-trace.js.map +1 -1
  22. package/dist/bridges/equations/be-14-ryu-takayanagi.d.ts +10 -4
  23. package/dist/bridges/equations/be-14-ryu-takayanagi.d.ts.map +1 -1
  24. package/dist/bridges/equations/be-14-ryu-takayanagi.js +6 -17
  25. package/dist/bridges/equations/be-14-ryu-takayanagi.js.map +1 -1
  26. package/dist/bridges/equations/be-15-emergence.d.ts +7 -1
  27. package/dist/bridges/equations/be-15-emergence.d.ts.map +1 -1
  28. package/dist/bridges/equations/be-15-emergence.js +12 -22
  29. package/dist/bridges/equations/be-15-emergence.js.map +1 -1
  30. package/dist/bridges/equations/be-16-landauer.d.ts +7 -1
  31. package/dist/bridges/equations/be-16-landauer.d.ts.map +1 -1
  32. package/dist/bridges/equations/be-16-landauer.js +5 -13
  33. package/dist/bridges/equations/be-16-landauer.js.map +1 -1
  34. package/dist/bridges/equations/be-17-einstein-cartan.d.ts +26 -13
  35. package/dist/bridges/equations/be-17-einstein-cartan.d.ts.map +1 -1
  36. package/dist/bridges/equations/be-17-einstein-cartan.js +28 -31
  37. package/dist/bridges/equations/be-17-einstein-cartan.js.map +1 -1
  38. package/dist/bridges/equations/be-18-higgs-mass.d.ts +7 -1
  39. package/dist/bridges/equations/be-18-higgs-mass.d.ts.map +1 -1
  40. package/dist/bridges/equations/be-18-higgs-mass.js +5 -16
  41. package/dist/bridges/equations/be-18-higgs-mass.js.map +1 -1
  42. package/dist/bridges/equations/be-19-quantum-bounce.d.ts +38 -3
  43. package/dist/bridges/equations/be-19-quantum-bounce.d.ts.map +1 -1
  44. package/dist/bridges/equations/be-19-quantum-bounce.js +69 -20
  45. package/dist/bridges/equations/be-19-quantum-bounce.js.map +1 -1
  46. package/dist/bridges/equations/be-20-vacuum-energy.d.ts +20 -1
  47. package/dist/bridges/equations/be-20-vacuum-energy.d.ts.map +1 -1
  48. package/dist/bridges/equations/be-20-vacuum-energy.js +36 -15
  49. package/dist/bridges/equations/be-20-vacuum-energy.js.map +1 -1
  50. package/dist/bridges/equations/be-21-kss-bound.d.ts +2 -0
  51. package/dist/bridges/equations/be-21-kss-bound.d.ts.map +1 -1
  52. package/dist/bridges/equations/be-21-kss-bound.js +4 -10
  53. package/dist/bridges/equations/be-21-kss-bound.js.map +1 -1
  54. package/dist/bridges/equations/be-22-topological-entanglement.d.ts +6 -9
  55. package/dist/bridges/equations/be-22-topological-entanglement.d.ts.map +1 -1
  56. package/dist/bridges/equations/be-22-topological-entanglement.js +9 -21
  57. package/dist/bridges/equations/be-22-topological-entanglement.js.map +1 -1
  58. package/dist/bridges/equations/be-23-syk-planckian.d.ts +7 -1
  59. package/dist/bridges/equations/be-23-syk-planckian.d.ts.map +1 -1
  60. package/dist/bridges/equations/be-23-syk-planckian.js +11 -25
  61. package/dist/bridges/equations/be-23-syk-planckian.js.map +1 -1
  62. package/dist/bridges/equations/be-24-foerster-fret.d.ts +7 -1
  63. package/dist/bridges/equations/be-24-foerster-fret.d.ts.map +1 -1
  64. package/dist/bridges/equations/be-24-foerster-fret.js +8 -16
  65. package/dist/bridges/equations/be-24-foerster-fret.js.map +1 -1
  66. package/dist/bridges/equations/be-25-iit-phi.d.ts +7 -1
  67. package/dist/bridges/equations/be-25-iit-phi.d.ts.map +1 -1
  68. package/dist/bridges/equations/be-25-iit-phi.js +12 -16
  69. package/dist/bridges/equations/be-25-iit-phi.js.map +1 -1
  70. package/dist/bridges/equations/be-25-orch-or.d.ts +6 -3
  71. package/dist/bridges/equations/be-25-orch-or.d.ts.map +1 -1
  72. package/dist/bridges/equations/be-25-orch-or.js +8 -17
  73. package/dist/bridges/equations/be-25-orch-or.js.map +1 -1
  74. package/dist/bridges/equations/be-26-dna-tunneling.d.ts +6 -3
  75. package/dist/bridges/equations/be-26-dna-tunneling.d.ts.map +1 -1
  76. package/dist/bridges/equations/be-26-dna-tunneling.js +11 -26
  77. package/dist/bridges/equations/be-26-dna-tunneling.js.map +1 -1
  78. package/dist/bridges/equations/be-27-effective-temperature.d.ts +7 -1
  79. package/dist/bridges/equations/be-27-effective-temperature.d.ts.map +1 -1
  80. package/dist/bridges/equations/be-27-effective-temperature.js +8 -16
  81. package/dist/bridges/equations/be-27-effective-temperature.js.map +1 -1
  82. package/dist/bridges/equations/be-28-onsager-entropy-production.d.ts +7 -1
  83. package/dist/bridges/equations/be-28-onsager-entropy-production.d.ts.map +1 -1
  84. package/dist/bridges/equations/be-28-onsager-entropy-production.js +9 -13
  85. package/dist/bridges/equations/be-28-onsager-entropy-production.js.map +1 -1
  86. package/dist/bridges/equations/be-29-jarzynski.d.ts +7 -1
  87. package/dist/bridges/equations/be-29-jarzynski.d.ts.map +1 -1
  88. package/dist/bridges/equations/be-29-jarzynski.js +8 -13
  89. package/dist/bridges/equations/be-29-jarzynski.js.map +1 -1
  90. package/dist/bridges/equations/be-30-flm-first-law.d.ts +11 -2
  91. package/dist/bridges/equations/be-30-flm-first-law.d.ts.map +1 -1
  92. package/dist/bridges/equations/be-30-flm-first-law.js +10 -21
  93. package/dist/bridges/equations/be-30-flm-first-law.js.map +1 -1
  94. package/dist/bridges/equations/be-31-causal-set-bd.d.ts +7 -1
  95. package/dist/bridges/equations/be-31-causal-set-bd.d.ts.map +1 -1
  96. package/dist/bridges/equations/be-31-causal-set-bd.js +11 -25
  97. package/dist/bridges/equations/be-31-causal-set-bd.js.map +1 -1
  98. package/dist/bridges/equations/be-32-quantum-reference-frame.d.ts +6 -9
  99. package/dist/bridges/equations/be-32-quantum-reference-frame.d.ts.map +1 -1
  100. package/dist/bridges/equations/be-32-quantum-reference-frame.js +8 -18
  101. package/dist/bridges/equations/be-32-quantum-reference-frame.js.map +1 -1
  102. package/dist/bridges/equations/be-33-hertz-millis.d.ts +53 -28
  103. package/dist/bridges/equations/be-33-hertz-millis.d.ts.map +1 -1
  104. package/dist/bridges/equations/be-33-hertz-millis.js +55 -51
  105. package/dist/bridges/equations/be-33-hertz-millis.js.map +1 -1
  106. package/dist/bridges/equations/be-34-kibble-zurek.d.ts +6 -3
  107. package/dist/bridges/equations/be-34-kibble-zurek.d.ts.map +1 -1
  108. package/dist/bridges/equations/be-34-kibble-zurek.js +15 -26
  109. package/dist/bridges/equations/be-34-kibble-zurek.js.map +1 -1
  110. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts +6 -9
  111. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts.map +1 -1
  112. package/dist/bridges/equations/be-35-conformal-bootstrap.js +9 -21
  113. package/dist/bridges/equations/be-35-conformal-bootstrap.js.map +1 -1
  114. package/dist/bridges/equations/be-36-gw-speed-bound.d.ts +7 -1
  115. package/dist/bridges/equations/be-36-gw-speed-bound.d.ts.map +1 -1
  116. package/dist/bridges/equations/be-36-gw-speed-bound.js +5 -13
  117. package/dist/bridges/equations/be-36-gw-speed-bound.js.map +1 -1
  118. package/dist/bridges/equations/be-37-shapiro-delay.d.ts +4 -2
  119. package/dist/bridges/equations/be-37-shapiro-delay.d.ts.map +1 -1
  120. package/dist/bridges/equations/be-37-shapiro-delay.js +22 -37
  121. package/dist/bridges/equations/be-37-shapiro-delay.js.map +1 -1
  122. package/dist/bridges/equations/be-38-mond.d.ts +7 -1
  123. package/dist/bridges/equations/be-38-mond.d.ts.map +1 -1
  124. package/dist/bridges/equations/be-38-mond.js +9 -19
  125. package/dist/bridges/equations/be-38-mond.js.map +1 -1
  126. package/dist/bridges/equations/be-39-asymptotic-safety.d.ts +66 -2
  127. package/dist/bridges/equations/be-39-asymptotic-safety.d.ts.map +1 -1
  128. package/dist/bridges/equations/be-39-asymptotic-safety.js +128 -20
  129. package/dist/bridges/equations/be-39-asymptotic-safety.js.map +1 -1
  130. package/dist/bridges/equations/be-40-composite-higgs.d.ts +7 -1
  131. package/dist/bridges/equations/be-40-composite-higgs.d.ts.map +1 -1
  132. package/dist/bridges/equations/be-40-composite-higgs.js +10 -22
  133. package/dist/bridges/equations/be-40-composite-higgs.js.map +1 -1
  134. package/dist/bridges/equations/be-41-swampland.d.ts +6 -3
  135. package/dist/bridges/equations/be-41-swampland.d.ts.map +1 -1
  136. package/dist/bridges/equations/be-41-swampland.js +11 -23
  137. package/dist/bridges/equations/be-41-swampland.js.map +1 -1
  138. package/dist/bridges/equations/be-42-hawking-temperature.d.ts +2 -0
  139. package/dist/bridges/equations/be-42-hawking-temperature.d.ts.map +1 -1
  140. package/dist/bridges/equations/be-42-hawking-temperature.js +5 -13
  141. package/dist/bridges/equations/be-42-hawking-temperature.js.map +1 -1
  142. package/dist/bridges/equations/be-43-er-epr.d.ts +7 -1
  143. package/dist/bridges/equations/be-43-er-epr.d.ts.map +1 -1
  144. package/dist/bridges/equations/be-43-er-epr.js +5 -13
  145. package/dist/bridges/equations/be-43-er-epr.js.map +1 -1
  146. package/dist/bridges/equations/be-44-soft-hair.d.ts +7 -1
  147. package/dist/bridges/equations/be-44-soft-hair.d.ts.map +1 -1
  148. package/dist/bridges/equations/be-44-soft-hair.js +5 -13
  149. package/dist/bridges/equations/be-44-soft-hair.js.map +1 -1
  150. package/dist/bridges/equations/be-45-tcc.d.ts +7 -1
  151. package/dist/bridges/equations/be-45-tcc.d.ts.map +1 -1
  152. package/dist/bridges/equations/be-45-tcc.js +10 -22
  153. package/dist/bridges/equations/be-45-tcc.js.map +1 -1
  154. package/dist/bridges/equations/be-46-multiverse-measure.d.ts +7 -1
  155. package/dist/bridges/equations/be-46-multiverse-measure.d.ts.map +1 -1
  156. package/dist/bridges/equations/be-46-multiverse-measure.js +9 -19
  157. package/dist/bridges/equations/be-46-multiverse-measure.js.map +1 -1
  158. package/dist/bridges/equations/be-47-bbn-dark-sector.d.ts +7 -1
  159. package/dist/bridges/equations/be-47-bbn-dark-sector.d.ts.map +1 -1
  160. package/dist/bridges/equations/be-47-bbn-dark-sector.js +14 -16
  161. package/dist/bridges/equations/be-47-bbn-dark-sector.js.map +1 -1
  162. package/dist/bridges/equations/be-48-grw-localization.d.ts +7 -1
  163. package/dist/bridges/equations/be-48-grw-localization.d.ts.map +1 -1
  164. package/dist/bridges/equations/be-48-grw-localization.js +15 -20
  165. package/dist/bridges/equations/be-48-grw-localization.js.map +1 -1
  166. package/dist/bridges/equations/be-49-quantum-darwinism.d.ts +7 -1
  167. package/dist/bridges/equations/be-49-quantum-darwinism.d.ts.map +1 -1
  168. package/dist/bridges/equations/be-49-quantum-darwinism.js +10 -22
  169. package/dist/bridges/equations/be-49-quantum-darwinism.js.map +1 -1
  170. package/dist/bridges/equations/be-50-wheeler-feynman.d.ts +42 -12
  171. package/dist/bridges/equations/be-50-wheeler-feynman.d.ts.map +1 -1
  172. package/dist/bridges/equations/be-50-wheeler-feynman.js +84 -20
  173. package/dist/bridges/equations/be-50-wheeler-feynman.js.map +1 -1
  174. package/dist/bridges/equations/be-53-yang-mills-beta.d.ts +158 -0
  175. package/dist/bridges/equations/be-53-yang-mills-beta.d.ts.map +1 -0
  176. package/dist/bridges/equations/be-53-yang-mills-beta.js +175 -0
  177. package/dist/bridges/equations/be-53-yang-mills-beta.js.map +1 -0
  178. package/dist/bridges/equations/be-54-randall-sundrum-brane.d.ts +117 -0
  179. package/dist/bridges/equations/be-54-randall-sundrum-brane.d.ts.map +1 -0
  180. package/dist/bridges/equations/be-54-randall-sundrum-brane.js +213 -0
  181. package/dist/bridges/equations/be-54-randall-sundrum-brane.js.map +1 -0
  182. package/dist/bridges/gravitational-lensing.d.ts +13 -2
  183. package/dist/bridges/gravitational-lensing.d.ts.map +1 -1
  184. package/dist/bridges/gravitational-lensing.js +17 -6
  185. package/dist/bridges/gravitational-lensing.js.map +1 -1
  186. package/dist/bridges/index.d.ts +40 -1
  187. package/dist/bridges/index.d.ts.map +1 -1
  188. package/dist/bridges/index.js +130 -48
  189. package/dist/bridges/index.js.map +1 -1
  190. package/dist/bridges/perihelion-precession-labeled.d.ts +46 -0
  191. package/dist/bridges/perihelion-precession-labeled.d.ts.map +1 -0
  192. package/dist/bridges/perihelion-precession-labeled.js +54 -0
  193. package/dist/bridges/perihelion-precession-labeled.js.map +1 -0
  194. package/dist/bridges/perihelion-precession.d.ts +18 -3
  195. package/dist/bridges/perihelion-precession.d.ts.map +1 -1
  196. package/dist/bridges/perihelion-precession.js +22 -8
  197. package/dist/bridges/perihelion-precession.js.map +1 -1
  198. package/dist/core/axes-registry.d.ts +67 -0
  199. package/dist/core/axes-registry.d.ts.map +1 -0
  200. package/dist/core/axes-registry.js +75 -0
  201. package/dist/core/axes-registry.js.map +1 -0
  202. package/dist/core/cell.d.ts +176 -0
  203. package/dist/core/cell.d.ts.map +1 -0
  204. package/dist/core/cell.js +166 -0
  205. package/dist/core/cell.js.map +1 -0
  206. package/dist/core/constants.d.ts +50 -0
  207. package/dist/core/constants.d.ts.map +1 -0
  208. package/dist/core/constants.js +50 -0
  209. package/dist/core/constants.js.map +1 -0
  210. package/dist/core/flux-rules.d.ts +176 -0
  211. package/dist/core/flux-rules.d.ts.map +1 -0
  212. package/dist/core/flux-rules.js +329 -0
  213. package/dist/core/flux-rules.js.map +1 -0
  214. package/dist/core/labeled-tensor.d.ts +143 -0
  215. package/dist/core/labeled-tensor.d.ts.map +1 -0
  216. package/dist/core/labeled-tensor.js +275 -0
  217. package/dist/core/labeled-tensor.js.map +1 -0
  218. package/dist/core/regime-registry.d.ts +169 -0
  219. package/dist/core/regime-registry.d.ts.map +1 -0
  220. package/dist/core/regime-registry.js +174 -0
  221. package/dist/core/regime-registry.js.map +1 -0
  222. package/dist/core/regime-rule-install.d.ts +26 -0
  223. package/dist/core/regime-rule-install.d.ts.map +1 -0
  224. package/dist/core/regime-rule-install.js +90 -0
  225. package/dist/core/regime-rule-install.js.map +1 -0
  226. package/dist/core/regimes-builtins.d.ts +22 -0
  227. package/dist/core/regimes-builtins.d.ts.map +1 -0
  228. package/dist/core/regimes-builtins.js +96 -0
  229. package/dist/core/regimes-builtins.js.map +1 -0
  230. package/dist/core/tensor.d.ts +112 -0
  231. package/dist/core/tensor.d.ts.map +1 -1
  232. package/dist/core/tensor.js +366 -0
  233. package/dist/core/tensor.js.map +1 -1
  234. package/dist/core/types.d.ts +7 -2
  235. package/dist/core/types.d.ts.map +1 -1
  236. package/dist/core/types.js.map +1 -1
  237. package/dist/core/universal-index.d.ts +97 -0
  238. package/dist/core/universal-index.d.ts.map +1 -0
  239. package/dist/core/universal-index.js +70 -0
  240. package/dist/core/universal-index.js.map +1 -0
  241. package/dist/diff/bridge-gradient.d.ts +94 -0
  242. package/dist/diff/bridge-gradient.d.ts.map +1 -0
  243. package/dist/diff/bridge-gradient.js +83 -0
  244. package/dist/diff/bridge-gradient.js.map +1 -0
  245. package/dist/diff/bridge-specs.d.ts +68 -0
  246. package/dist/diff/bridge-specs.d.ts.map +1 -0
  247. package/dist/diff/bridge-specs.js +96 -0
  248. package/dist/diff/bridge-specs.js.map +1 -0
  249. package/dist/dimensional/bridge-check.d.ts.map +1 -1
  250. package/dist/dimensional/bridge-check.js +8 -0
  251. package/dist/dimensional/bridge-check.js.map +1 -1
  252. package/dist/dimensional/connection-validators.d.ts +13 -6
  253. package/dist/dimensional/connection-validators.d.ts.map +1 -1
  254. package/dist/dimensional/connection-validators.js +1 -1
  255. package/dist/dimensional/connection-validators.js.map +1 -1
  256. package/dist/dimensional/curvature-composite.d.ts +90 -0
  257. package/dist/dimensional/curvature-composite.d.ts.map +1 -0
  258. package/dist/dimensional/curvature-composite.js +57 -0
  259. package/dist/dimensional/curvature-composite.js.map +1 -0
  260. package/dist/dimensional/curvature-invariants.d.ts +90 -0
  261. package/dist/dimensional/curvature-invariants.d.ts.map +1 -0
  262. package/dist/dimensional/curvature-invariants.js +64 -0
  263. package/dist/dimensional/curvature-invariants.js.map +1 -0
  264. package/dist/dimensional/curvature.d.ts +82 -41
  265. package/dist/dimensional/curvature.d.ts.map +1 -1
  266. package/dist/dimensional/curvature.js +19 -11
  267. package/dist/dimensional/curvature.js.map +1 -1
  268. package/dist/dimensional/einstein-equation.d.ts +126 -0
  269. package/dist/dimensional/einstein-equation.d.ts.map +1 -0
  270. package/dist/dimensional/einstein-equation.js +122 -0
  271. package/dist/dimensional/einstein-equation.js.map +1 -0
  272. package/dist/dimensional/field-equation-helpers.d.ts +82 -0
  273. package/dist/dimensional/field-equation-helpers.d.ts.map +1 -0
  274. package/dist/dimensional/field-equation-helpers.js +123 -0
  275. package/dist/dimensional/field-equation-helpers.js.map +1 -0
  276. package/dist/dimensional/friedmann-equation.d.ts +148 -0
  277. package/dist/dimensional/friedmann-equation.d.ts.map +1 -0
  278. package/dist/dimensional/friedmann-equation.js +150 -0
  279. package/dist/dimensional/friedmann-equation.js.map +1 -0
  280. package/dist/dimensional/gauge-field.d.ts +182 -0
  281. package/dist/dimensional/gauge-field.d.ts.map +1 -0
  282. package/dist/dimensional/gauge-field.js +134 -0
  283. package/dist/dimensional/gauge-field.js.map +1 -0
  284. package/dist/dimensional/killing-validators.d.ts +94 -0
  285. package/dist/dimensional/killing-validators.d.ts.map +1 -0
  286. package/dist/dimensional/killing-validators.js +66 -0
  287. package/dist/dimensional/killing-validators.js.map +1 -0
  288. package/dist/dimensional/klein-gordon-equation.d.ts +113 -0
  289. package/dist/dimensional/klein-gordon-equation.d.ts.map +1 -0
  290. package/dist/dimensional/klein-gordon-equation.js +98 -0
  291. package/dist/dimensional/klein-gordon-equation.js.map +1 -0
  292. package/dist/dimensional/rg-flow.d.ts +156 -0
  293. package/dist/dimensional/rg-flow.d.ts.map +1 -0
  294. package/dist/dimensional/rg-flow.js +150 -0
  295. package/dist/dimensional/rg-flow.js.map +1 -0
  296. package/dist/dimensional/stress-energy-validators.d.ts +74 -0
  297. package/dist/dimensional/stress-energy-validators.d.ts.map +1 -0
  298. package/dist/dimensional/stress-energy-validators.js +47 -0
  299. package/dist/dimensional/stress-energy-validators.js.map +1 -0
  300. package/dist/dimensional/tensor-trace.d.ts +128 -0
  301. package/dist/dimensional/tensor-trace.d.ts.map +1 -0
  302. package/dist/dimensional/tensor-trace.js +95 -0
  303. package/dist/dimensional/tensor-trace.js.map +1 -0
  304. package/dist/dimensional/tensor.d.ts +6 -8
  305. package/dist/dimensional/tensor.d.ts.map +1 -1
  306. package/dist/dimensional/tensor.js +3 -1
  307. package/dist/dimensional/tensor.js.map +1 -1
  308. package/dist/dimensional/validator-registry.d.ts +90 -0
  309. package/dist/dimensional/validator-registry.d.ts.map +1 -0
  310. package/dist/dimensional/validator-registry.js +131 -0
  311. package/dist/dimensional/validator-registry.js.map +1 -0
  312. package/dist/dimensional/validator.d.ts +12 -2
  313. package/dist/dimensional/validator.d.ts.map +1 -1
  314. package/dist/dimensional/validator.js +60 -75
  315. package/dist/dimensional/validator.js.map +1 -1
  316. package/dist/dimensional/weyl-validators.d.ts +84 -0
  317. package/dist/dimensional/weyl-validators.d.ts.map +1 -0
  318. package/dist/dimensional/weyl-validators.js +84 -0
  319. package/dist/dimensional/weyl-validators.js.map +1 -0
  320. package/dist/index.d.ts +38 -0
  321. package/dist/index.d.ts.map +1 -1
  322. package/dist/index.js +45 -0
  323. package/dist/index.js.map +1 -1
  324. package/dist/numerical/be37-covariant-eikonal.d.ts +37 -2
  325. package/dist/numerical/be37-covariant-eikonal.d.ts.map +1 -1
  326. package/dist/numerical/be37-covariant-eikonal.js +51 -14
  327. package/dist/numerical/be37-covariant-eikonal.js.map +1 -1
  328. package/dist/numerical/christoffel-flat.d.ts +49 -0
  329. package/dist/numerical/christoffel-flat.d.ts.map +1 -0
  330. package/dist/numerical/christoffel-flat.js +86 -0
  331. package/dist/numerical/christoffel-flat.js.map +1 -0
  332. package/dist/numerical/curvature-lowering-helpers.d.ts +76 -57
  333. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  334. package/dist/numerical/curvature-lowering-helpers.js +203 -64
  335. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  336. package/dist/numerical/derivative-lowering.d.ts +67 -0
  337. package/dist/numerical/derivative-lowering.d.ts.map +1 -0
  338. package/dist/numerical/derivative-lowering.js +243 -0
  339. package/dist/numerical/derivative-lowering.js.map +1 -0
  340. package/dist/numerical/einstein-equation.d.ts +106 -0
  341. package/dist/numerical/einstein-equation.d.ts.map +1 -0
  342. package/dist/numerical/einstein-equation.js +172 -0
  343. package/dist/numerical/einstein-equation.js.map +1 -0
  344. package/dist/numerical/engine-registry.js +4 -4
  345. package/dist/numerical/engine-registry.js.map +1 -1
  346. package/dist/numerical/geodesic-integrator.d.ts +7 -4
  347. package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
  348. package/dist/numerical/geodesic-integrator.js +5 -1
  349. package/dist/numerical/geodesic-integrator.js.map +1 -1
  350. package/dist/numerical/gl4-integrator.d.ts +57 -9
  351. package/dist/numerical/gl4-integrator.d.ts.map +1 -1
  352. package/dist/numerical/gl4-integrator.js +63 -16
  353. package/dist/numerical/gl4-integrator.js.map +1 -1
  354. package/dist/numerical/killing.d.ts +157 -0
  355. package/dist/numerical/killing.d.ts.map +1 -0
  356. package/dist/numerical/killing.js +242 -0
  357. package/dist/numerical/killing.js.map +1 -0
  358. package/dist/numerical/kretschmann.d.ts +62 -0
  359. package/dist/numerical/kretschmann.d.ts.map +1 -0
  360. package/dist/numerical/kretschmann.js +88 -0
  361. package/dist/numerical/kretschmann.js.map +1 -0
  362. package/dist/numerical/lowering-utils.d.ts +47 -0
  363. package/dist/numerical/lowering-utils.d.ts.map +1 -0
  364. package/dist/numerical/lowering-utils.js +64 -0
  365. package/dist/numerical/lowering-utils.js.map +1 -0
  366. package/dist/numerical/lowering.d.ts +1 -29
  367. package/dist/numerical/lowering.d.ts.map +1 -1
  368. package/dist/numerical/lowering.js +226 -415
  369. package/dist/numerical/lowering.js.map +1 -1
  370. package/dist/numerical/mathts-engine.js +8 -8
  371. package/dist/numerical/mathts-engine.js.map +1 -1
  372. package/dist/numerical/metric-inverse.d.ts.map +1 -1
  373. package/dist/numerical/metric-inverse.js +28 -0
  374. package/dist/numerical/metric-inverse.js.map +1 -1
  375. package/dist/numerical/null-ic.d.ts +40 -0
  376. package/dist/numerical/null-ic.d.ts.map +1 -0
  377. package/dist/numerical/null-ic.js +50 -0
  378. package/dist/numerical/null-ic.js.map +1 -0
  379. package/dist/numerical/null-ray-integrator.d.ts +3 -2
  380. package/dist/numerical/null-ray-integrator.d.ts.map +1 -1
  381. package/dist/numerical/null-ray-integrator.js +6 -3
  382. package/dist/numerical/null-ray-integrator.js.map +1 -1
  383. package/dist/numerical/painleve-gullstrand-metric.d.ts +74 -0
  384. package/dist/numerical/painleve-gullstrand-metric.d.ts.map +1 -0
  385. package/dist/numerical/painleve-gullstrand-metric.js +121 -0
  386. package/dist/numerical/painleve-gullstrand-metric.js.map +1 -0
  387. package/dist/numerical/pderiv.d.ts +35 -3
  388. package/dist/numerical/pderiv.d.ts.map +1 -1
  389. package/dist/numerical/pderiv.js +47 -12
  390. package/dist/numerical/pderiv.js.map +1 -1
  391. package/dist/numerical/perihelion-finder.d.ts +57 -0
  392. package/dist/numerical/perihelion-finder.d.ts.map +1 -1
  393. package/dist/numerical/perihelion-finder.js +57 -0
  394. package/dist/numerical/perihelion-finder.js.map +1 -1
  395. package/dist/numerical/tensor-engine.d.ts +2 -2
  396. package/dist/numerical/tensor-engine.d.ts.map +1 -1
  397. package/dist/numerical/weyl-lowering.d.ts +60 -0
  398. package/dist/numerical/weyl-lowering.d.ts.map +1 -0
  399. package/dist/numerical/weyl-lowering.js +111 -0
  400. package/dist/numerical/weyl-lowering.js.map +1 -0
  401. package/package.json +9 -7
@@ -30,6 +30,9 @@
30
30
  */
31
31
  import { NumericalBackendError } from './errors.js';
32
32
  import { computeChristoffelTensor, flattenNA } from './connection-lowering-helpers.js';
33
+ import { pderivNumericalFn } from './pderiv.js';
34
+ import { computeWeylTensor } from './weyl-lowering.js';
35
+ import { dimensionOf, requireValue, flattenNestedArray } from './lowering-utils.js';
33
36
  // ---------------------------------------------------------------------------
34
37
  // Finite-difference step
35
38
  // ---------------------------------------------------------------------------
@@ -54,7 +57,7 @@ import { computeChristoffelTensor, flattenNA } from './connection-lowering-helpe
54
57
  * leaves ~3e-6 relative error on R^t_{rtr} due to noise propagation through
55
58
  * the c²-scaled g_{tt} component — 4th-order outer FD recovers the precision.
56
59
  */
57
- export function outerStep(x) {
60
+ function outerStep(x) {
58
61
  return 1e-4 * Math.max(Math.abs(x), 1);
59
62
  }
60
63
  /**
@@ -73,32 +76,21 @@ export function outerStep(x) {
73
76
  * ε|g|/h_i ~ 1e-15 relative — orders below the 1e-9 component-match gate.
74
77
  */
75
78
  function makeInnerGradFn(gFn, x0, N) {
79
+ // v0.5.1 PD-7: delegates to the shared `pderivNumericalFn(..., {order: 4})`
80
+ // 4th-order centered stencil. The explicit `h = 1e-3·max(|x|,1)` override
81
+ // is load-bearing: the c²·g_{tt} cancellation noise on Schwarzschild
82
+ // demands a larger step than the v0.5.0-default 1e-4 to balance truncation
83
+ // vs round-off at the ≤1e-9 component-match gate. (See module JSDoc.)
76
84
  return (mu) => {
77
85
  const xc = x0[mu];
78
86
  const h = 1e-3 * Math.max(Math.abs(xc), 1);
79
- const p1 = [...x0];
80
- p1[mu] = xc + h;
81
- const m1 = [...x0];
82
- m1[mu] = xc - h;
83
- const p2 = [...x0];
84
- p2[mu] = xc + 2 * h;
85
- const m2 = [...x0];
86
- m2[mu] = xc - 2 * h;
87
- const gp1 = flattenNA(gFn(p1));
88
- const gm1 = flattenNA(gFn(m1));
89
- const gp2 = flattenNA(gFn(p2));
90
- const gm2 = flattenNA(gFn(m2));
91
- if (gp1.length !== N * N || gm1.length !== N * N ||
92
- gp2.length !== N * N || gm2.length !== N * N) {
87
+ const d = pderivNumericalFn(gFn, x0, mu, { order: 4, h });
88
+ const flat = Array.isArray(d) ? d : [d];
89
+ if (flat.length !== N * N) {
93
90
  throw new NumericalBackendError(`curvature-lowering: metric closure returned wrong shape — expected ${N * N}, ` +
94
- `got [${gp1.length}, ${gm1.length}, ${gp2.length}, ${gm2.length}]`);
91
+ `got ${flat.length}`);
95
92
  }
96
- const inv12h = 1 / (12 * h);
97
- const out = new Array(N * N);
98
- for (let i = 0; i < N * N; i++) {
99
- out[i] = (-gp2[i] + 8 * gp1[i] - 8 * gm1[i] + gm2[i]) * inv12h;
100
- }
101
- return out;
93
+ return flat;
102
94
  };
103
95
  }
104
96
  /**
@@ -135,30 +127,22 @@ export function christoffelAt(x, gFn, gInverseFn, N, engine) {
135
127
  export function dGammaAt(x, gFn, gInverseFn, N, engine) {
136
128
  // Allocate dGamma[λ][ρ][σ][ν]
137
129
  const dGamma = Array.from({ length: N }, () => Array.from({ length: N }, () => Array.from({ length: N }, () => new Array(N).fill(0))));
138
- // 4th-order centered stencil: f'(x) [−f₊₂ + 8 f₊₁ − 8 f₋₁ + f₋₂] / (12 h)
130
+ // v0.5.1 PD-7: 4th-order centered stencil via the shared
131
+ // `pderivNumericalFn(..., {order: 4})` (h = 1e-4·max(|x|,1) default matches
132
+ // the v0.5.0 `outerStep`). Each axis returns a flat number[] of length N³;
133
+ // unflatten into the `dGamma[λ][ρ][σ][ν]` axis-0 slab.
134
+ const christFn = (xs) => christoffelAt(xs, gFn, gInverseFn, N, engine);
139
135
  for (let lam = 0; lam < N; lam++) {
140
- const xc = x[lam];
141
- const h = outerStep(xc);
142
- const xP1 = [...x];
143
- xP1[lam] = xc + h;
144
- const xM1 = [...x];
145
- xM1[lam] = xc - h;
146
- const xP2 = [...x];
147
- xP2[lam] = xc + 2 * h;
148
- const xM2 = [...x];
149
- xM2[lam] = xc - 2 * h;
150
- const Gp1 = christoffelAt(xP1, gFn, gInverseFn, N, engine);
151
- const Gm1 = christoffelAt(xM1, gFn, gInverseFn, N, engine);
152
- const Gp2 = christoffelAt(xP2, gFn, gInverseFn, N, engine);
153
- const Gm2 = christoffelAt(xM2, gFn, gInverseFn, N, engine);
154
- const inv12h = 1 / (12 * h);
136
+ const d = pderivNumericalFn(christFn, x, lam, { order: 4 });
137
+ const flat = Array.isArray(d) ? d : [d];
138
+ if (flat.length !== N * N * N) {
139
+ throw new NumericalBackendError(`dGammaAt: christoffelAt derivative shape mismatch — expected ${N * N * N}, got ${flat.length}`);
140
+ }
141
+ const N2 = N * N;
155
142
  for (let rho = 0; rho < N; rho++) {
156
143
  for (let sigma = 0; sigma < N; sigma++) {
157
144
  for (let nu = 0; nu < N; nu++) {
158
- dGamma[lam][rho][sigma][nu] = (-Gp2[rho][sigma][nu]
159
- + 8 * Gp1[rho][sigma][nu]
160
- - 8 * Gm1[rho][sigma][nu]
161
- + Gm2[rho][sigma][nu]) * inv12h;
145
+ dGamma[lam][rho][sigma][nu] = flat[rho * N2 + sigma * N + nu];
162
146
  }
163
147
  }
164
148
  }
@@ -213,7 +197,7 @@ export function buildRiemann(gamma, dGamma, N) {
213
197
  * Bianchi residual) can sample R at perturbed coordinates without
214
198
  * re-implementing the FD machinery.
215
199
  */
216
- export function riemannUpperAt(x, gFn, gInverseFn, N, engine) {
200
+ function riemannUpperAt(x, gFn, gInverseFn, N, engine) {
217
201
  const gamma = christoffelAt(x, gFn, gInverseFn, N, engine);
218
202
  const dGamma = dGammaAt(x, gFn, gInverseFn, N, engine);
219
203
  return buildRiemann(gamma, dGamma, N);
@@ -226,7 +210,7 @@ export function riemannUpperAt(x, gFn, gInverseFn, N, engine) {
226
210
  * Output index order: `[a][σ][μ][ν]` — all four lower. (a is the freshly
227
211
  * lowered index in the first slot.)
228
212
  */
229
- export function lowerFirstIndex(R, gLowerFlat, N) {
213
+ function lowerFirstIndex(R, gLowerFlat, N) {
230
214
  const Rlow = Array.from({ length: N }, () => Array.from({ length: N }, () => Array.from({ length: N }, () => new Array(N).fill(0))));
231
215
  for (let a = 0; a < N; a++) {
232
216
  for (let sig = 0; sig < N; sig++) {
@@ -266,32 +250,26 @@ export function riemannLowerAt(x, gFn, gInverseFn, N, engine) {
266
250
  * — total: ∂(∂(∂g)) at 4th order in each layer. Empirical noise floor reached
267
251
  * by the per-component value is documented in the test report.
268
252
  */
269
- export function dRiemannLowerAt(x, gFn, gInverseFn, N, engine) {
253
+ function dRiemannLowerAt(x, gFn, gInverseFn, N, engine) {
270
254
  const dR = Array.from({ length: N }, () => Array.from({ length: N }, () => Array.from({ length: N }, () => Array.from({ length: N }, () => new Array(N).fill(0)))));
255
+ // v0.5.1 PD-7: 4th-order centered stencil via the shared
256
+ // `pderivNumericalFn(..., {order: 4})` — default h = 1e-4·max(|x|,1) matches
257
+ // the v0.5.0 `outerStep`. Each axis call returns a flat number[] of length
258
+ // N⁴ (riemannLowerAt produces [N,N,N,N]); unflatten into the
259
+ // `dR[λ][a][b][c][d]` axis-0 slab.
260
+ const RlowerFn = (xs) => riemannLowerAt(xs, gFn, gInverseFn, N, engine);
261
+ const N2 = N * N;
262
+ const N3 = N * N * N;
271
263
  for (let lam = 0; lam < N; lam++) {
272
- const xc = x[lam];
273
- const h = outerStep(xc);
274
- const xP1 = [...x];
275
- xP1[lam] = xc + h;
276
- const xM1 = [...x];
277
- xM1[lam] = xc - h;
278
- const xP2 = [...x];
279
- xP2[lam] = xc + 2 * h;
280
- const xM2 = [...x];
281
- xM2[lam] = xc - 2 * h;
282
- const Rp1 = riemannLowerAt(xP1, gFn, gInverseFn, N, engine);
283
- const Rm1 = riemannLowerAt(xM1, gFn, gInverseFn, N, engine);
284
- const Rp2 = riemannLowerAt(xP2, gFn, gInverseFn, N, engine);
285
- const Rm2 = riemannLowerAt(xM2, gFn, gInverseFn, N, engine);
286
- const inv12h = 1 / (12 * h);
264
+ const flat = pderivNumericalFn(RlowerFn, x, lam, { order: 4 });
265
+ if (!Array.isArray(flat) || flat.length !== N2 * N2) {
266
+ throw new NumericalBackendError(`dRiemannLowerAt: derivative shape mismatch — expected ${N2 * N2}, got ${Array.isArray(flat) ? flat.length : 'scalar'}`);
267
+ }
287
268
  for (let a = 0; a < N; a++) {
288
269
  for (let b = 0; b < N; b++) {
289
270
  for (let c = 0; c < N; c++) {
290
271
  for (let d = 0; d < N; d++) {
291
- dR[lam][a][b][c][d] = (-Rp2[a][b][c][d]
292
- + 8 * Rp1[a][b][c][d]
293
- - 8 * Rm1[a][b][c][d]
294
- + Rm2[a][b][c][d]) * inv12h;
272
+ dR[lam][a][b][c][d] = flat[a * N3 + b * N2 + c * N + d];
295
273
  }
296
274
  }
297
275
  }
@@ -375,4 +353,165 @@ export function bianchiResidualAt(x, gFn, gInverseFn, N, engine) {
375
353
  }
376
354
  return B;
377
355
  }
356
+ /**
357
+ * JS-side contraction of a flat 4-axis tensor R[a][b][c][d] (length N⁴, row-major)
358
+ * down to a 2-tensor by summing one upper axis against one lower axis.
359
+ *
360
+ * Configuration:
361
+ * - `upperAxis`: the axis index (0..3) that contracts WITH `lowerAxis` (dummy slot).
362
+ * - `lowerAxis`: the partner axis (0..3) forming the dummy pair.
363
+ * - `outAxes`: the two surviving axes [i, j] that become the (free output)
364
+ * rows/cols of the returned N×N matrix.
365
+ *
366
+ * For Carroll Eq. 3.91 Ricci R_μν = R^λ_{μλν} on Riemann stored as R[ρ][σ][μ][ν]:
367
+ * contractRiemannJS(flatR, N, { upperAxis: 0, lowerAxis: 2, outAxes: [1, 3] })
368
+ * sums `R[λ][μ_out][λ][ν_out]` over λ.
369
+ *
370
+ * Pre-flattened input convention: row-major `R[a][b][c][d] = flatR[a*N³ + b*N² + c*N + d]`.
371
+ * (Matches `flattenNestedArray` output for an [N,N,N,N] EngineTensor.)
372
+ *
373
+ * @internal — extracted from `lowering.ts` ricci-tensor arm (AS-1, v0.5.1). Kept
374
+ * deliberately narrow (4-axis source → 2-axis output) to match the v0.5.0 GR
375
+ * curvature pipeline; generalisation deferred to v0.6.0 if Weyl/Kretschmann
376
+ * arrives (see `docs/architecture/COMPONENTS.md` curvature-layer pattern note).
377
+ */
378
+ export function contractRiemannJS(flatR, N, config) {
379
+ const { upperAxis, lowerAxis, outAxes } = config;
380
+ if (upperAxis === lowerAxis) {
381
+ throw new NumericalBackendError(`contractRiemannJS: upperAxis (${upperAxis}) and lowerAxis (${lowerAxis}) must differ`);
382
+ }
383
+ const [outA, outB] = outAxes;
384
+ if (outA === outB) {
385
+ throw new NumericalBackendError(`contractRiemannJS: outAxes [${outA},${outB}] must be distinct`);
386
+ }
387
+ if (outA === upperAxis || outA === lowerAxis || outB === upperAxis || outB === lowerAxis) {
388
+ throw new NumericalBackendError(`contractRiemannJS: outAxes [${outA},${outB}] must not overlap dummy pair [${upperAxis},${lowerAxis}]`);
389
+ }
390
+ if (flatR.length !== N * N * N * N) {
391
+ throw new NumericalBackendError(`contractRiemannJS: flatR length ${flatR.length} != N⁴ = ${N * N * N * N}`);
392
+ }
393
+ // Row-major strides for R[a][b][c][d].
394
+ const N2 = N * N;
395
+ const N3 = N * N * N;
396
+ const strides = [N3, N2, N, 1];
397
+ const strideDummy = strides[upperAxis] + strides[lowerAxis];
398
+ const strideOutA = strides[outA];
399
+ const strideOutB = strides[outB];
400
+ const out = Array.from({ length: N }, () => new Array(N).fill(0));
401
+ for (let i = 0; i < N; i++) {
402
+ const baseI = i * strideOutA;
403
+ for (let j = 0; j < N; j++) {
404
+ const baseIJ = baseI + j * strideOutB;
405
+ let sum = 0;
406
+ for (let lam = 0; lam < N; lam++) {
407
+ sum += flatR[baseIJ + lam * strideDummy];
408
+ }
409
+ out[i][j] = sum;
410
+ }
411
+ }
412
+ return out;
413
+ }
414
+ // ===========================================================================
415
+ // v0.6.1 Phase 2 Proposal 2 — Arm extractions from lowering.ts
416
+ // ===========================================================================
417
+ //
418
+ // Two FD pipelines (`bianchi-residual` and `weyl-tensor`) were inlined as
419
+ // switch arms in `lowering.ts`'s `lowerCurvature` dispatcher. Each was a
420
+ // self-contained block of input-resolution + helper-pipeline + result-wrap
421
+ // boilerplate; together they accounted for ~125 LOC of lowering.ts. Moving
422
+ // them here (a) keeps the dispatcher readable, (b) co-locates the FD
423
+ // machinery with its consumers, and (c) makes the per-arm pipeline
424
+ // independently unit-testable in the future.
425
+ /**
426
+ * Lower a `bianchi-residual` AST node to a 5-rank EngineTensor B_{λμνρσ}.
427
+ *
428
+ * Extracted from `lowering.ts` `lowerCurvature` switch arm in v0.6.1 Phase 2.
429
+ * Wires `inputs.tensors[xCoord.name]` (the coordinate vector) and
430
+ * `inputs.fields[gLower.name]` / `inputs.fields[gInverse.name]` (the metric
431
+ * closures) into the existing `bianchiResidualAt` FD helper.
432
+ *
433
+ * Approach (cyclic ∇R sum):
434
+ * B_{λμνρσ} = ∇_λ R_{μνρσ} + ∇_μ R_{νλρσ} + ∇_ν R_{λμρσ}
435
+ * Each ∇_λ R_{μνρσ} is computed with the four Christoffel-correction terms.
436
+ *
437
+ * @returns engine.fromNested(B, [N,N,N,N,N])
438
+ */
439
+ export function lowerBianchiResidual(node, inputs, engine) {
440
+ const rNode = node.riemann;
441
+ const N = dimensionOf(inputs);
442
+ const x = flattenNestedArray(requireValue(rNode.xCoord.name, inputs), N);
443
+ const gFn = inputs.fields?.get(rNode.gLower.name);
444
+ const gInverseFn = inputs.fields?.get(rNode.gInverse.name);
445
+ if (!gFn || !gInverseFn) {
446
+ throw new NumericalBackendError(`lowering: bianchi-residual numerical evaluation requires coordinate-` +
447
+ `dependent metric closures in inputs.fields for "${rNode.gLower.name}" ` +
448
+ `and "${rNode.gInverse.name}". ` +
449
+ `Got fields=[${[...(inputs.fields?.keys() ?? [])].join(',')}].`);
450
+ }
451
+ const B = bianchiResidualAt(x, gFn, gInverseFn, N, engine);
452
+ return engine.fromNested(B, [N, N, N, N, N]);
453
+ }
454
+ /**
455
+ * Lower a `weyl-tensor` AST node to a 4-rank EngineTensor C^ρ_{σμν}.
456
+ *
457
+ * Extracted from `lowering.ts` `lowerCurvature` switch arm in v0.6.1 Phase 2.
458
+ * Implements the F-5 Weyl-formula pipeline:
459
+ *
460
+ * 1. Resolve `x`, `g`, `g_inv`, `g(x)`, `g_inv(x)` from `inputs`.
461
+ * 2. Compute Riemann R^ρ_{σμν} via `christoffelAt` + `dGammaAt` + `buildRiemann`.
462
+ * 3. Contract Ricci R_{μν} = R^λ_{μλν} via `contractRiemannJS`.
463
+ * 4. Compute Ricci scalar R = Σ_{μν} g^{μν} R_{μν}.
464
+ * 5. Assemble Weyl via `computeWeylTensor({...})` using the F-5 formula.
465
+ *
466
+ * Naming convention (must match the caller's inputs map):
467
+ * inputs.tensors[metricName] — g_{μν} at x
468
+ * inputs.tensors[metricName + '_inv'] — g^{μν} at x
469
+ * inputs.tensors['x'] — coordinate 4-vector
470
+ * inputs.fields[metricName] — coordinate-dependent g closure
471
+ * inputs.fields[metricName + '_inv'] — coordinate-dependent g^{-1} closure
472
+ *
473
+ * @returns engine.fromNested(C, [N,N,N,N])
474
+ */
475
+ export function lowerWeylTensor(node, inputs, engine) {
476
+ const N = dimensionOf(inputs);
477
+ const metricName = node.metric.name;
478
+ const metricInvName = `${metricName}_inv`;
479
+ const x = flattenNestedArray(requireValue('x', inputs), N);
480
+ const gFn = inputs.fields?.get(metricName);
481
+ const gInverseFn = inputs.fields?.get(metricInvName);
482
+ if (!gFn || !gInverseFn) {
483
+ throw new NumericalBackendError(`lowering: weyl-tensor requires coordinate-dependent metric closures in ` +
484
+ `inputs.fields for "${metricName}" and "${metricInvName}". ` +
485
+ `Got fields=[${[...(inputs.fields?.keys() ?? [])].join(',')}].`);
486
+ }
487
+ // Step 1-2: Riemann R^ρ_{σμν} via FD pipeline.
488
+ const gamma = christoffelAt(x, gFn, gInverseFn, N, engine);
489
+ const dGamma = dGammaAt(x, gFn, gInverseFn, N, engine);
490
+ const Rup = buildRiemann(gamma, dGamma, N);
491
+ // Step 3: Ricci R_{μν} = R^λ_{μλν} (Carroll Eq. 3.91).
492
+ const flatRup = flattenNestedArray(Rup, N * N * N * N);
493
+ const Ric = contractRiemannJS(flatRup, N, {
494
+ upperAxis: 0, lowerAxis: 2, outAxes: [1, 3],
495
+ });
496
+ // Step 4: Ricci scalar R = Σ_{μν} g^{μν} R_{μν}.
497
+ const gInvFlat = flattenNestedArray(requireValue(metricInvName, inputs), N * N);
498
+ let Rscalar = 0;
499
+ for (let mu = 0; mu < N; mu++) {
500
+ for (let nu = 0; nu < N; nu++) {
501
+ Rscalar += gInvFlat[mu * N + nu] * Ric[mu][nu];
502
+ }
503
+ }
504
+ // Step 5: point-sample of covariant metric + inverse, then assemble.
505
+ const gFlat = flattenNestedArray(requireValue(metricName, inputs), N * N);
506
+ const gMat = Array.from({ length: N }, (_, i) => Array.from({ length: N }, (__, j) => gFlat[i * N + j]));
507
+ const gInvMat = Array.from({ length: N }, (_, i) => Array.from({ length: N }, (__, j) => gInvFlat[i * N + j]));
508
+ const C = computeWeylTensor({
509
+ riemann: Rup,
510
+ ricci: Ric,
511
+ ricciScalar: Rscalar,
512
+ metric: gMat,
513
+ metricInverse: gInvMat,
514
+ });
515
+ return engine.fromNested(C, [N, N, N, N]);
516
+ }
378
517
  //# sourceMappingURL=curvature-lowering-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"curvature-lowering-helpers.js","sourceRoot":"","sources":["../../src/numerical/curvature-lowering-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"curvature-lowering-helpers.js","sourceRoot":"","sources":["../../src/numerical/curvature-lowering-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Derivative-arm lowering — extracted from `lowering.ts`'s switch
3
+ * to close the v0.6.1 sprint-target LOC miss (903 vs ≤890).
4
+ *
5
+ * Exports two pure functions:
6
+ * - `lowerTensorPartialDerivative` (∂_μ over tensor-symbol or
7
+ * metric-tensor `of` operands, three numericalForm strategies)
8
+ * - `lowerCovariantDerivative` (∇_μ over tensor-symbol or
9
+ * metric-tensor `of`; sign rule applied per free index)
10
+ *
11
+ * Both functions take a `recur` thunk for the recursive `lowerNode`
12
+ * call (the covariant-derivative arm needs it twice, once to lower
13
+ * the `of` operand and once to lower a synthesized
14
+ * `tensor-partial-derivative` for the partial component of ∇).
15
+ * Threading the recursion via parameter avoids a forward-import
16
+ * cycle between this module and `lowering.ts`.
17
+ *
18
+ * @module numerical/derivative-lowering
19
+ */
20
+ import type { ExprNode } from '../dimensional/validator.js';
21
+ import type { EngineTensor, TensorEngine } from './tensor-engine.js';
22
+ import type { NumericalInputs } from './types.js';
23
+ /**
24
+ * Thunk signature for the recursive `lowerNode` call. `lowering.ts`
25
+ * passes its own `lowerNode` as this argument; the derivative arms
26
+ * use it to lower sub-expressions (the `of` operand of a covariant
27
+ * derivative, and a synthesized partial-derivative subtree).
28
+ *
29
+ * @internal
30
+ */
31
+ export type LowerNodeRecur = (node: ExprNode, inputs: NumericalInputs, engine: TensorEngine) => EngineTensor;
32
+ /**
33
+ * Lower a `tensor-partial-derivative` node (∂_μ over an `of` operand).
34
+ *
35
+ * v0.3.5/v0.4.0 scope: `of` is a tensor-symbol or metric-tensor.
36
+ * ∂_μ(of) adds the wrtIndex as a trailing axis — the result shape is
37
+ * [...ofShape, N], NOT ofShape. (For BE-37, `of` = the scalar S is
38
+ * rank-0, so ∂_μ S is the rank-1 wave covector k_μ, shape [N].)
39
+ *
40
+ * Three numericalForm dispatches: 'symbolic' (caller-supplied
41
+ * derivatives map), 'numerical-fn' (rank-0 scalar field, all-axes
42
+ * stack), 'grid' (sampled derivative field).
43
+ *
44
+ * @internal
45
+ */
46
+ export declare function lowerTensorPartialDerivative(node: Extract<ExprNode, {
47
+ kind: 'tensor-partial-derivative';
48
+ }>, inputs: NumericalInputs, engine: TensorEngine): EngineTensor;
49
+ /**
50
+ * Lower a `covariant-derivative` node (∇_μ over an `of` operand).
51
+ *
52
+ * Calls `recur` to lower the `of` subtree and a synthesized
53
+ * `tensor-partial-derivative` (the ∂ component of ∇). The Christoffel
54
+ * correction (Γ^α_{μν} sign rule per free index of `of`) builds on
55
+ * the metric-derivative data supplied via `inputs.metricDerivatives`.
56
+ *
57
+ * v0.4.0 contract: `of.derivativeStrategy === 'zero'` short-circuits
58
+ * to a zero result. `'computed'` on a raw-tensor metric reduces to
59
+ * the partial only (constant metric → Γ = 0). `'supplied'` invokes
60
+ * the full Christoffel pipeline.
61
+ *
62
+ * @internal
63
+ */
64
+ export declare function lowerCovariantDerivative(node: Extract<ExprNode, {
65
+ kind: 'covariant-derivative';
66
+ }>, inputs: NumericalInputs, engine: TensorEngine, recur: LowerNodeRecur): EngineTensor;
67
+ //# sourceMappingURL=derivative-lowering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derivative-lowering.d.ts","sourceRoot":"","sources":["../../src/numerical/derivative-lowering.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAM5D,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,YAAY,CAAC;AAmB/D;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG,CAC3B,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,YAAY,KACjB,YAAY,CAAC;AAMlB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,2BAA2B,CAAA;CAAE,CAAC,EAC9D,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,YAAY,GACnB,YAAY,CAgGd;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,sBAAsB,CAAA;CAAE,CAAC,EACzD,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,cAAc,GACpB,YAAY,CAwId"}