universal-physics-tensor 9.0.0 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (824) hide show
  1. package/README.md +19 -16
  2. package/data/atlas/atlas.json +55 -44
  3. package/data/atlas/atlas.jsonld +1 -1
  4. package/data/atlas/diffusion.json +19 -18
  5. package/data/atlas/oscillators.json +15 -10
  6. package/data/atlas/waves.json +23 -18
  7. package/data/bridge-catalog.json +886 -1473
  8. package/data/bridge-catalog.schema.json +349 -132
  9. package/data/quantities.json +53 -19
  10. package/data/schemas/atlas-record.v0.json +184 -46
  11. package/data/units.json +33 -4
  12. package/dist/atlas/applicability.d.ts.map +1 -1
  13. package/dist/atlas/applicability.js +14 -3
  14. package/dist/atlas/applicability.js.map +1 -1
  15. package/dist/atlas/association.js.map +1 -1
  16. package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -1
  17. package/dist/atlas/benchmark/backend-shapes.js +5 -1
  18. package/dist/atlas/benchmark/backend-shapes.js.map +1 -1
  19. package/dist/atlas/benchmark/baselines.d.ts.map +1 -1
  20. package/dist/atlas/benchmark/baselines.js +8 -0
  21. package/dist/atlas/benchmark/baselines.js.map +1 -1
  22. package/dist/atlas/benchmark/hybrid-retrieval.d.ts +3 -2
  23. package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
  24. package/dist/atlas/benchmark/hybrid-retrieval.js +15 -8
  25. package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
  26. package/dist/atlas/benchmark/leakage.js.map +1 -1
  27. package/dist/atlas/benchmark/loader.js.map +1 -1
  28. package/dist/atlas/benchmark/run-atlas.d.ts.map +1 -1
  29. package/dist/atlas/benchmark/run-atlas.js +14 -2
  30. package/dist/atlas/benchmark/run-atlas.js.map +1 -1
  31. package/dist/atlas/benchmark/stats.d.ts +1 -1
  32. package/dist/atlas/benchmark/stats.d.ts.map +1 -1
  33. package/dist/atlas/benchmark/stats.js +1 -1
  34. package/dist/atlas/benchmark/stats.js.map +1 -1
  35. package/dist/atlas/benchmark/study.js.map +1 -1
  36. package/dist/atlas/benchmark/types.js.map +1 -1
  37. package/dist/atlas/bridge-record.d.ts +4 -4
  38. package/dist/atlas/bridge-record.d.ts.map +1 -1
  39. package/dist/atlas/bridge-record.js +6 -6
  40. package/dist/atlas/bridge-record.js.map +1 -1
  41. package/dist/atlas/catalog-formal-ref.js.map +1 -1
  42. package/dist/atlas/chain-pipeline.d.ts +0 -11
  43. package/dist/atlas/chain-pipeline.d.ts.map +1 -1
  44. package/dist/atlas/chain-pipeline.js +5 -16
  45. package/dist/atlas/chain-pipeline.js.map +1 -1
  46. package/dist/atlas/composition-table.js.map +1 -1
  47. package/dist/atlas/conventions.js.map +1 -1
  48. package/dist/atlas/coverage.d.ts +2 -2
  49. package/dist/atlas/coverage.js.map +1 -1
  50. package/dist/atlas/derivation.js.map +1 -1
  51. package/dist/atlas/derive-evidence.d.ts +6 -4
  52. package/dist/atlas/derive-evidence.d.ts.map +1 -1
  53. package/dist/atlas/derive-evidence.js +7 -2
  54. package/dist/atlas/derive-evidence.js.map +1 -1
  55. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
  56. package/dist/atlas/diffusion/bridges-closure.js +0 -5
  57. package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
  58. package/dist/atlas/diffusion/bridges.d.ts.map +1 -1
  59. package/dist/atlas/diffusion/bridges.js +0 -3
  60. package/dist/atlas/diffusion/bridges.js.map +1 -1
  61. package/dist/atlas/diffusion/dimensions.js.map +1 -1
  62. package/dist/atlas/diffusion/index.d.ts +1 -1
  63. package/dist/atlas/diffusion/index.d.ts.map +1 -1
  64. package/dist/atlas/diffusion/index.js.map +1 -1
  65. package/dist/atlas/diffusion/models.js.map +1 -1
  66. package/dist/atlas/diffusion/numerics.js.map +1 -1
  67. package/dist/atlas/error-algebra.d.ts +6 -0
  68. package/dist/atlas/error-algebra.d.ts.map +1 -1
  69. package/dist/atlas/error-algebra.js +26 -0
  70. package/dist/atlas/error-algebra.js.map +1 -1
  71. package/dist/atlas/export.d.ts +18 -2
  72. package/dist/atlas/export.d.ts.map +1 -1
  73. package/dist/atlas/export.js +9 -3
  74. package/dist/atlas/export.js.map +1 -1
  75. package/dist/atlas/families.d.ts +19 -2
  76. package/dist/atlas/families.d.ts.map +1 -1
  77. package/dist/atlas/families.js +26 -3
  78. package/dist/atlas/families.js.map +1 -1
  79. package/dist/atlas/family.d.ts +27 -0
  80. package/dist/atlas/family.d.ts.map +1 -0
  81. package/dist/atlas/family.js +12 -0
  82. package/dist/atlas/family.js.map +1 -0
  83. package/dist/atlas/index.d.ts +3 -2
  84. package/dist/atlas/index.d.ts.map +1 -1
  85. package/dist/atlas/index.js +2 -1
  86. package/dist/atlas/index.js.map +1 -1
  87. package/dist/atlas/link-prediction.d.ts +1 -1
  88. package/dist/atlas/link-prediction.d.ts.map +1 -1
  89. package/dist/atlas/link-prediction.js.map +1 -1
  90. package/dist/atlas/model.js.map +1 -1
  91. package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -1
  92. package/dist/atlas/oscillators/bridges-coarse.js +0 -1
  93. package/dist/atlas/oscillators/bridges-coarse.js.map +1 -1
  94. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
  95. package/dist/atlas/oscillators/bridges-exact.js +0 -3
  96. package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
  97. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
  98. package/dist/atlas/oscillators/bridges-limits.js +0 -2
  99. package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
  100. package/dist/atlas/oscillators/dimensions.js.map +1 -1
  101. package/dist/atlas/oscillators/index.d.ts +1 -16
  102. package/dist/atlas/oscillators/index.d.ts.map +1 -1
  103. package/dist/atlas/oscillators/index.js.map +1 -1
  104. package/dist/atlas/oscillators/limit-witnesses.js.map +1 -1
  105. package/dist/atlas/oscillators/models.js.map +1 -1
  106. package/dist/atlas/oscillators/norm-transport-witness.js.map +1 -1
  107. package/dist/atlas/oscillators/norm-transport.js.map +1 -1
  108. package/dist/atlas/oscillators/norms.js.map +1 -1
  109. package/dist/atlas/oscillators/pendulum-motion.js.map +1 -1
  110. package/dist/atlas/oscillators/phase-carriage.js.map +1 -1
  111. package/dist/atlas/oscillators/phase-translation.js.map +1 -1
  112. package/dist/atlas/oscillators/position-translation.js.map +1 -1
  113. package/dist/atlas/oscillators/rejections.js.map +1 -1
  114. package/dist/atlas/path-bound.js.map +1 -1
  115. package/dist/atlas/physjs-entries.generated.js.map +1 -1
  116. package/dist/atlas/physjs-ref.d.ts +79 -45
  117. package/dist/atlas/physjs-ref.d.ts.map +1 -1
  118. package/dist/atlas/physjs-ref.js +143 -62
  119. package/dist/atlas/physjs-ref.js.map +1 -1
  120. package/dist/atlas/physjs-reviewed.d.ts +31 -0
  121. package/dist/atlas/physjs-reviewed.d.ts.map +1 -0
  122. package/dist/atlas/physjs-reviewed.js +194 -0
  123. package/dist/atlas/physjs-reviewed.js.map +1 -0
  124. package/dist/atlas/poster/associations.js.map +1 -1
  125. package/dist/atlas/poster/derivations.js.map +1 -1
  126. package/dist/atlas/poster/statements.js.map +1 -1
  127. package/dist/atlas/proof-target.js.map +1 -1
  128. package/dist/atlas/public.d.ts +2 -1
  129. package/dist/atlas/public.d.ts.map +1 -1
  130. package/dist/atlas/public.js +2 -1
  131. package/dist/atlas/public.js.map +1 -1
  132. package/dist/atlas/regime.js.map +1 -1
  133. package/dist/atlas/serialize.d.ts +18 -12
  134. package/dist/atlas/serialize.d.ts.map +1 -1
  135. package/dist/atlas/serialize.js +28 -18
  136. package/dist/atlas/serialize.js.map +1 -1
  137. package/dist/atlas/statement.js.map +1 -1
  138. package/dist/atlas/translation-registry.js.map +1 -1
  139. package/dist/atlas/translation.js.map +1 -1
  140. package/dist/atlas/types.d.ts +9 -2
  141. package/dist/atlas/types.d.ts.map +1 -1
  142. package/dist/atlas/types.js +1 -1
  143. package/dist/atlas/types.js.map +1 -1
  144. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
  145. package/dist/atlas/waves/bridges-closure.js +0 -3
  146. package/dist/atlas/waves/bridges-closure.js.map +1 -1
  147. package/dist/atlas/waves/bridges.d.ts.map +1 -1
  148. package/dist/atlas/waves/bridges.js +0 -4
  149. package/dist/atlas/waves/bridges.js.map +1 -1
  150. package/dist/atlas/waves/index.d.ts +1 -1
  151. package/dist/atlas/waves/index.d.ts.map +1 -1
  152. package/dist/atlas/waves/index.js.map +1 -1
  153. package/dist/atlas/waves/models.js.map +1 -1
  154. package/dist/atlas/waves/numerics.js.map +1 -1
  155. package/dist/atlas/witness-artifact.js.map +1 -1
  156. package/dist/atlas/witness-dominance.d.ts +4 -3
  157. package/dist/atlas/witness-dominance.d.ts.map +1 -1
  158. package/dist/atlas/witness-dominance.js +15 -5
  159. package/dist/atlas/witness-dominance.js.map +1 -1
  160. package/dist/atlas/witness-numeric.d.ts +8 -4
  161. package/dist/atlas/witness-numeric.d.ts.map +1 -1
  162. package/dist/atlas/witness-numeric.js +27 -2
  163. package/dist/atlas/witness-numeric.js.map +1 -1
  164. package/dist/atlas/witness-result.d.ts +7 -1
  165. package/dist/atlas/witness-result.d.ts.map +1 -1
  166. package/dist/atlas/witness-result.js.map +1 -1
  167. package/dist/atlas/witness-specs.js.map +1 -1
  168. package/dist/atlas/witness-symbolic.js.map +1 -1
  169. package/dist/atlas/witnesses/quantum-support.js.map +1 -1
  170. package/dist/bridges/caller-table.d.ts +1 -1
  171. package/dist/bridges/caller-table.d.ts.map +1 -1
  172. package/dist/bridges/caller-table.js.map +1 -1
  173. package/dist/bridges/carrier-sign.d.ts.map +1 -1
  174. package/dist/bridges/carrier-sign.js +8 -3
  175. package/dist/bridges/carrier-sign.js.map +1 -1
  176. package/dist/bridges/catalog-adapter.d.ts +12 -3
  177. package/dist/bridges/catalog-adapter.d.ts.map +1 -1
  178. package/dist/bridges/catalog-adapter.js +17 -9
  179. package/dist/bridges/catalog-adapter.js.map +1 -1
  180. package/dist/bridges/catalog-load.d.ts +12 -2
  181. package/dist/bridges/catalog-load.d.ts.map +1 -1
  182. package/dist/bridges/catalog-load.js +171 -8
  183. package/dist/bridges/catalog-load.js.map +1 -1
  184. package/dist/bridges/catalog-types.d.ts +48 -24
  185. package/dist/bridges/catalog-types.d.ts.map +1 -1
  186. package/dist/bridges/catalog-types.js.map +1 -1
  187. package/dist/bridges/coefficient-statement.js +1 -5
  188. package/dist/bridges/coefficient-statement.js.map +1 -1
  189. package/dist/bridges/confrontation-coverage.js.map +1 -1
  190. package/dist/bridges/confrontations.d.ts +1 -1
  191. package/dist/bridges/confrontations.d.ts.map +1 -1
  192. package/dist/bridges/confrontations.js +1 -1
  193. package/dist/bridges/confrontations.js.map +1 -1
  194. package/dist/bridges/evaluation-errors.d.ts +15 -2
  195. package/dist/bridges/evaluation-errors.d.ts.map +1 -1
  196. package/dist/bridges/evaluation-errors.js +20 -2
  197. package/dist/bridges/evaluation-errors.js.map +1 -1
  198. package/dist/bridges/evaluator-inputs.js.map +1 -1
  199. package/dist/bridges/evaluators.d.ts +17 -2
  200. package/dist/bridges/evaluators.d.ts.map +1 -1
  201. package/dist/bridges/evaluators.js +49 -16
  202. package/dist/bridges/evaluators.js.map +1 -1
  203. package/dist/bridges/expr-parse.d.ts +27 -4
  204. package/dist/bridges/expr-parse.d.ts.map +1 -1
  205. package/dist/bridges/expr-parse.js +90 -10
  206. package/dist/bridges/expr-parse.js.map +1 -1
  207. package/dist/bridges/holds.d.ts +5 -1
  208. package/dist/bridges/holds.d.ts.map +1 -1
  209. package/dist/bridges/holds.js +18 -3
  210. package/dist/bridges/holds.js.map +1 -1
  211. package/dist/bridges/index.d.ts +15 -14
  212. package/dist/bridges/index.d.ts.map +1 -1
  213. package/dist/bridges/index.js +14 -15
  214. package/dist/bridges/index.js.map +1 -1
  215. package/dist/bridges/input-contract.js.map +1 -1
  216. package/dist/bridges/membership.d.ts +5 -3
  217. package/dist/bridges/membership.d.ts.map +1 -1
  218. package/dist/bridges/membership.js +5 -6
  219. package/dist/bridges/membership.js.map +1 -1
  220. package/dist/bridges/notices.js.map +1 -1
  221. package/dist/bridges/observations/types.js.map +1 -1
  222. package/dist/bridges/rejected.d.ts +11 -17
  223. package/dist/bridges/rejected.d.ts.map +1 -1
  224. package/dist/bridges/rejected.js +13 -68
  225. package/dist/bridges/rejected.js.map +1 -1
  226. package/dist/bridges/relation-eval.d.ts +5 -6
  227. package/dist/bridges/relation-eval.d.ts.map +1 -1
  228. package/dist/bridges/relation-eval.js +9 -38
  229. package/dist/bridges/relation-eval.js.map +1 -1
  230. package/dist/bridges/rhs-registry.js.map +1 -1
  231. package/dist/bridges/sensitivity.d.ts +11 -3
  232. package/dist/bridges/sensitivity.d.ts.map +1 -1
  233. package/dist/bridges/sensitivity.js +24 -10
  234. package/dist/bridges/sensitivity.js.map +1 -1
  235. package/dist/bridges/tensor-index.js.map +1 -1
  236. package/dist/bridges/types.d.ts +1 -7
  237. package/dist/bridges/types.d.ts.map +1 -1
  238. package/dist/bridges/types.js +1 -4
  239. package/dist/bridges/types.js.map +1 -1
  240. package/dist/canonical/canonical-equation.js.map +1 -1
  241. package/dist/canonical/dimensional-fields.js.map +1 -1
  242. package/dist/canonical/entries/_l1-build.js.map +1 -1
  243. package/dist/canonical/entries/atomic.js.map +1 -1
  244. package/dist/canonical/entries/condensed-matter.js +4 -4
  245. package/dist/canonical/entries/condensed-matter.js.map +1 -1
  246. package/dist/canonical/entries/dimensional-classics.js +2 -2
  247. package/dist/canonical/entries/dimensional-classics.js.map +1 -1
  248. package/dist/canonical/entries/electromagnetism.js +2 -2
  249. package/dist/canonical/entries/electromagnetism.js.map +1 -1
  250. package/dist/canonical/entries/fluids-waves.js.map +1 -1
  251. package/dist/canonical/entries/mechanics.js.map +1 -1
  252. package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
  253. package/dist/canonical/entries/nonmonomial.js +29 -22
  254. package/dist/canonical/entries/nonmonomial.js.map +1 -1
  255. package/dist/canonical/entries/relativity.js.map +1 -1
  256. package/dist/canonical/entries/statistical-mechanics.js +5 -5
  257. package/dist/canonical/entries/statistical-mechanics.js.map +1 -1
  258. package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
  259. package/dist/canonical/linkage.d.ts +29 -4
  260. package/dist/canonical/linkage.d.ts.map +1 -1
  261. package/dist/canonical/linkage.js +31 -29
  262. package/dist/canonical/linkage.js.map +1 -1
  263. package/dist/canonical/normal-form.d.ts +0 -8
  264. package/dist/canonical/normal-form.d.ts.map +1 -1
  265. package/dist/canonical/normal-form.js +17 -12
  266. package/dist/canonical/normal-form.js.map +1 -1
  267. package/dist/canonical/registry.js.map +1 -1
  268. package/dist/canonical/residual.js.map +1 -1
  269. package/dist/canonical/seed-l-layer.d.ts +7 -1
  270. package/dist/canonical/seed-l-layer.d.ts.map +1 -1
  271. package/dist/canonical/seed-l-layer.js +7 -1
  272. package/dist/canonical/seed-l-layer.js.map +1 -1
  273. package/dist/canonical/structural.d.ts +21 -0
  274. package/dist/canonical/structural.d.ts.map +1 -1
  275. package/dist/canonical/structural.js +24 -4
  276. package/dist/canonical/structural.js.map +1 -1
  277. package/dist/cases/brownian-sphere.js +4 -4
  278. package/dist/cases/brownian-sphere.js.map +1 -1
  279. package/dist/cases/damped-resonator.js +2 -2
  280. package/dist/cases/damped-resonator.js.map +1 -1
  281. package/dist/cases/index.js.map +1 -1
  282. package/dist/cases/kepler-rv.js.map +1 -1
  283. package/dist/cases/lumped-cooling.js +1 -1
  284. package/dist/cases/lumped-cooling.js.map +1 -1
  285. package/dist/cases/quadrature.js.map +1 -1
  286. package/dist/cases/resistor-noise.js +3 -3
  287. package/dist/cases/resistor-noise.js.map +1 -1
  288. package/dist/cases/skin-depth.js.map +1 -1
  289. package/dist/cases/types.js.map +1 -1
  290. package/dist/cli/args.d.ts +7 -2
  291. package/dist/cli/args.d.ts.map +1 -1
  292. package/dist/cli/args.js +18 -2
  293. package/dist/cli/args.js.map +1 -1
  294. package/dist/cli/bindings.d.ts +13 -0
  295. package/dist/cli/bindings.d.ts.map +1 -0
  296. package/dist/cli/bindings.js +32 -0
  297. package/dist/cli/bindings.js.map +1 -0
  298. package/dist/cli/closed-form-range.js.map +1 -1
  299. package/dist/cli/command.js.map +1 -1
  300. package/dist/cli/commands/_atlas-map.d.ts +3 -3
  301. package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
  302. package/dist/cli/commands/_atlas-map.js +43 -18
  303. package/dist/cli/commands/_atlas-map.js.map +1 -1
  304. package/dist/cli/commands/_atlas-route.js.map +1 -1
  305. package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
  306. package/dist/cli/commands/_discovery-opts.js +42 -7
  307. package/dist/cli/commands/_discovery-opts.js.map +1 -1
  308. package/dist/cli/commands/atlas.d.ts.map +1 -1
  309. package/dist/cli/commands/atlas.js +1 -3
  310. package/dist/cli/commands/atlas.js.map +1 -1
  311. package/dist/cli/commands/audit.d.ts.map +1 -1
  312. package/dist/cli/commands/audit.js +13 -20
  313. package/dist/cli/commands/audit.js.map +1 -1
  314. package/dist/cli/commands/axes.js.map +1 -1
  315. package/dist/cli/commands/candidates.d.ts.map +1 -1
  316. package/dist/cli/commands/candidates.js +16 -8
  317. package/dist/cli/commands/candidates.js.map +1 -1
  318. package/dist/cli/commands/canonical.js.map +1 -1
  319. package/dist/cli/commands/chain.js +1 -1
  320. package/dist/cli/commands/chain.js.map +1 -1
  321. package/dist/cli/commands/confront.d.ts.map +1 -1
  322. package/dist/cli/commands/confront.js +22 -14
  323. package/dist/cli/commands/confront.js.map +1 -1
  324. package/dist/cli/commands/connectors.js.map +1 -1
  325. package/dist/cli/commands/coverage.js.map +1 -1
  326. package/dist/cli/commands/derive.d.ts.map +1 -1
  327. package/dist/cli/commands/derive.js +42 -17
  328. package/dist/cli/commands/derive.js.map +1 -1
  329. package/dist/cli/commands/discover.d.ts.map +1 -1
  330. package/dist/cli/commands/discover.js +15 -9
  331. package/dist/cli/commands/discover.js.map +1 -1
  332. package/dist/cli/commands/eval.d.ts.map +1 -1
  333. package/dist/cli/commands/eval.js +13 -10
  334. package/dist/cli/commands/eval.js.map +1 -1
  335. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  336. package/dist/cli/commands/evaluate.js +53 -31
  337. package/dist/cli/commands/evaluate.js.map +1 -1
  338. package/dist/cli/commands/explain.d.ts.map +1 -1
  339. package/dist/cli/commands/explain.js +14 -7
  340. package/dist/cli/commands/explain.js.map +1 -1
  341. package/dist/cli/commands/frontier.js.map +1 -1
  342. package/dist/cli/commands/ground.d.ts.map +1 -1
  343. package/dist/cli/commands/ground.js +40 -10
  344. package/dist/cli/commands/ground.js.map +1 -1
  345. package/dist/cli/commands/index.js.map +1 -1
  346. package/dist/cli/commands/map.d.ts.map +1 -1
  347. package/dist/cli/commands/map.js +82 -89
  348. package/dist/cli/commands/map.js.map +1 -1
  349. package/dist/cli/commands/metric.d.ts.map +1 -1
  350. package/dist/cli/commands/metric.js +53 -18
  351. package/dist/cli/commands/metric.js.map +1 -1
  352. package/dist/cli/commands/path.js +4 -4
  353. package/dist/cli/commands/path.js.map +1 -1
  354. package/dist/cli/commands/predict.js.map +1 -1
  355. package/dist/cli/commands/priority.js.map +1 -1
  356. package/dist/cli/commands/probe.d.ts.map +1 -1
  357. package/dist/cli/commands/probe.js +50 -26
  358. package/dist/cli/commands/probe.js.map +1 -1
  359. package/dist/cli/commands/recover.js +1 -1
  360. package/dist/cli/commands/recover.js.map +1 -1
  361. package/dist/cli/commands/regime.d.ts +5 -4
  362. package/dist/cli/commands/regime.d.ts.map +1 -1
  363. package/dist/cli/commands/regime.js +24 -26
  364. package/dist/cli/commands/regime.js.map +1 -1
  365. package/dist/cli/commands/retrieve.d.ts.map +1 -1
  366. package/dist/cli/commands/retrieve.js +22 -14
  367. package/dist/cli/commands/retrieve.js.map +1 -1
  368. package/dist/cli/commands/search.d.ts.map +1 -1
  369. package/dist/cli/commands/search.js +8 -4
  370. package/dist/cli/commands/search.js.map +1 -1
  371. package/dist/cli/commands/symbolic.d.ts.map +1 -1
  372. package/dist/cli/commands/symbolic.js +13 -9
  373. package/dist/cli/commands/symbolic.js.map +1 -1
  374. package/dist/cli/commands/testplan.js +1 -1
  375. package/dist/cli/commands/testplan.js.map +1 -1
  376. package/dist/cli/conventions.js.map +1 -1
  377. package/dist/cli/determination.js.map +1 -1
  378. package/dist/cli/errors.js.map +1 -1
  379. package/dist/cli/euler-guard.js.map +1 -1
  380. package/dist/cli/eval-numbers.js.map +1 -1
  381. package/dist/cli/expr-print.d.ts +29 -2
  382. package/dist/cli/expr-print.d.ts.map +1 -1
  383. package/dist/cli/expr-print.js +46 -2
  384. package/dist/cli/expr-print.js.map +1 -1
  385. package/dist/cli/flag-help.js.map +1 -1
  386. package/dist/cli/graphs.js.map +1 -1
  387. package/dist/cli/library-defaults.d.ts +19 -0
  388. package/dist/cli/library-defaults.d.ts.map +1 -0
  389. package/dist/cli/library-defaults.js +22 -0
  390. package/dist/cli/library-defaults.js.map +1 -0
  391. package/dist/cli/main.js +7 -3
  392. package/dist/cli/main.js.map +1 -1
  393. package/dist/cli/map-evidence.js.map +1 -1
  394. package/dist/cli/output.d.ts +3 -6
  395. package/dist/cli/output.d.ts.map +1 -1
  396. package/dist/cli/output.js.map +1 -1
  397. package/dist/cli/published-url.js.map +1 -1
  398. package/dist/cli/record-reach.d.ts +6 -0
  399. package/dist/cli/record-reach.d.ts.map +1 -1
  400. package/dist/cli/record-reach.js +16 -10
  401. package/dist/cli/record-reach.js.map +1 -1
  402. package/dist/cli/record-tables.js +1 -1
  403. package/dist/cli/record-tables.js.map +1 -1
  404. package/dist/cli/record.d.ts.map +1 -1
  405. package/dist/cli/record.js +31 -12
  406. package/dist/cli/record.js.map +1 -1
  407. package/dist/cli/search-index.d.ts +5 -0
  408. package/dist/cli/search-index.d.ts.map +1 -1
  409. package/dist/cli/search-index.js +12 -1
  410. package/dist/cli/search-index.js.map +1 -1
  411. package/dist/cli/statuses.js.map +1 -1
  412. package/dist/cli/top-level-help.js.map +1 -1
  413. package/dist/cli/version.js.map +1 -1
  414. package/dist/cli-api.d.ts +15 -9
  415. package/dist/cli-api.d.ts.map +1 -1
  416. package/dist/cli-api.js +14 -13
  417. package/dist/cli-api.js.map +1 -1
  418. package/dist/composition/adjudication.js.map +1 -1
  419. package/dist/composition/aliases.js.map +1 -1
  420. package/dist/composition/audit-coverage.d.ts +2 -0
  421. package/dist/composition/audit-coverage.d.ts.map +1 -1
  422. package/dist/composition/audit-coverage.js.map +1 -1
  423. package/dist/composition/axes.d.ts +12 -0
  424. package/dist/composition/axes.d.ts.map +1 -1
  425. package/dist/composition/axes.js +18 -6
  426. package/dist/composition/axes.js.map +1 -1
  427. package/dist/composition/axis-audit.js.map +1 -1
  428. package/dist/composition/bridge-analysis.d.ts +0 -18
  429. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  430. package/dist/composition/bridge-analysis.js +57 -47
  431. package/dist/composition/bridge-analysis.js.map +1 -1
  432. package/dist/composition/bridge-prediction.d.ts +5 -1
  433. package/dist/composition/bridge-prediction.d.ts.map +1 -1
  434. package/dist/composition/bridge-prediction.js +12 -16
  435. package/dist/composition/bridge-prediction.js.map +1 -1
  436. package/dist/composition/buckingham-filter.js.map +1 -1
  437. package/dist/composition/canonical-compare.d.ts.map +1 -1
  438. package/dist/composition/canonical-compare.js +12 -2
  439. package/dist/composition/canonical-compare.js.map +1 -1
  440. package/dist/composition/canonical-graph.d.ts +8 -9
  441. package/dist/composition/canonical-graph.d.ts.map +1 -1
  442. package/dist/composition/canonical-graph.js +25 -67
  443. package/dist/composition/canonical-graph.js.map +1 -1
  444. package/dist/composition/canonical-json.js.map +1 -1
  445. package/dist/composition/canonical-prefactors.js.map +1 -1
  446. package/dist/composition/catalog-graph.d.ts.map +1 -1
  447. package/dist/composition/catalog-graph.js +6 -20
  448. package/dist/composition/catalog-graph.js.map +1 -1
  449. package/dist/composition/chain-candidate.d.ts +2 -0
  450. package/dist/composition/chain-candidate.d.ts.map +1 -1
  451. package/dist/composition/chain-candidate.js +2 -0
  452. package/dist/composition/chain-candidate.js.map +1 -1
  453. package/dist/composition/chain-match.js.map +1 -1
  454. package/dist/composition/chain-regime.js.map +1 -1
  455. package/dist/composition/chain-result.js.map +1 -1
  456. package/dist/composition/compose-surface.js.map +1 -1
  457. package/dist/composition/compose-symbolic.js.map +1 -1
  458. package/dist/composition/compose.d.ts.map +1 -1
  459. package/dist/composition/compose.js +153 -36
  460. package/dist/composition/compose.js.map +1 -1
  461. package/dist/composition/composition-recovery.js.map +1 -1
  462. package/dist/composition/consequence.d.ts.map +1 -1
  463. package/dist/composition/consequence.js +15 -6
  464. package/dist/composition/consequence.js.map +1 -1
  465. package/dist/composition/consistency.js.map +1 -1
  466. package/dist/composition/descriptor.d.ts +1 -1
  467. package/dist/composition/descriptor.d.ts.map +1 -1
  468. package/dist/composition/descriptor.js.map +1 -1
  469. package/dist/composition/dimension-adjacency.js.map +1 -1
  470. package/dist/composition/discovery.d.ts +21 -11
  471. package/dist/composition/discovery.d.ts.map +1 -1
  472. package/dist/composition/discovery.js +81 -21
  473. package/dist/composition/discovery.js.map +1 -1
  474. package/dist/composition/edge.d.ts +19 -8
  475. package/dist/composition/edge.d.ts.map +1 -1
  476. package/dist/composition/edge.js +24 -11
  477. package/dist/composition/edge.js.map +1 -1
  478. package/dist/composition/enumerate.d.ts +2 -2
  479. package/dist/composition/enumerate.d.ts.map +1 -1
  480. package/dist/composition/enumerate.js.map +1 -1
  481. package/dist/composition/evaluate-relation.js.map +1 -1
  482. package/dist/composition/explain.d.ts +14 -9
  483. package/dist/composition/explain.d.ts.map +1 -1
  484. package/dist/composition/explain.js +46 -13
  485. package/dist/composition/explain.js.map +1 -1
  486. package/dist/composition/expr-eval.js.map +1 -1
  487. package/dist/composition/expr-simplify.d.ts.map +1 -1
  488. package/dist/composition/expr-simplify.js +9 -39
  489. package/dist/composition/expr-simplify.js.map +1 -1
  490. package/dist/composition/expr-subst.js.map +1 -1
  491. package/dist/composition/formula-shape.d.ts +9 -0
  492. package/dist/composition/formula-shape.d.ts.map +1 -1
  493. package/dist/composition/formula-shape.js +54 -0
  494. package/dist/composition/formula-shape.js.map +1 -1
  495. package/dist/composition/frontier-account.d.ts +3 -2
  496. package/dist/composition/frontier-account.d.ts.map +1 -1
  497. package/dist/composition/frontier-account.js +7 -3
  498. package/dist/composition/frontier-account.js.map +1 -1
  499. package/dist/composition/graph-viz-svg.js.map +1 -1
  500. package/dist/composition/graph-viz.js.map +1 -1
  501. package/dist/composition/grounding.js.map +1 -1
  502. package/dist/composition/identifiability.js.map +1 -1
  503. package/dist/composition/index.d.ts +6 -4
  504. package/dist/composition/index.d.ts.map +1 -1
  505. package/dist/composition/index.js +4 -3
  506. package/dist/composition/index.js.map +1 -1
  507. package/dist/composition/mathts-quiet.d.ts +28 -0
  508. package/dist/composition/mathts-quiet.d.ts.map +1 -0
  509. package/dist/composition/mathts-quiet.js +56 -0
  510. package/dist/composition/mathts-quiet.js.map +1 -0
  511. package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -1
  512. package/dist/composition/mathts-scalar-symbols.js +18 -34
  513. package/dist/composition/mathts-scalar-symbols.js.map +1 -1
  514. package/dist/composition/not-composable-seeds.d.ts +3 -1
  515. package/dist/composition/not-composable-seeds.d.ts.map +1 -1
  516. package/dist/composition/not-composable-seeds.js +2 -0
  517. package/dist/composition/not-composable-seeds.js.map +1 -1
  518. package/dist/composition/probe/backend-protocol.js.map +1 -1
  519. package/dist/composition/probe/candidate-store.js.map +1 -1
  520. package/dist/composition/probe/corpus.js.map +1 -1
  521. package/dist/composition/probe/dataset.js.map +1 -1
  522. package/dist/composition/probe/experiment-design.js.map +1 -1
  523. package/dist/composition/probe/expression-gaps.js.map +1 -1
  524. package/dist/composition/probe/falsify.d.ts +14 -3
  525. package/dist/composition/probe/falsify.d.ts.map +1 -1
  526. package/dist/composition/probe/falsify.js +14 -27
  527. package/dist/composition/probe/falsify.js.map +1 -1
  528. package/dist/composition/probe/fingerprint.js.map +1 -1
  529. package/dist/composition/probe/fit.d.ts +1 -1
  530. package/dist/composition/probe/fit.d.ts.map +1 -1
  531. package/dist/composition/probe/fit.js +2 -1
  532. package/dist/composition/probe/fit.js.map +1 -1
  533. package/dist/composition/probe/frontier.js.map +1 -1
  534. package/dist/composition/probe/generator.js.map +1 -1
  535. package/dist/composition/probe/index.d.ts +4 -2
  536. package/dist/composition/probe/index.d.ts.map +1 -1
  537. package/dist/composition/probe/index.js +4 -2
  538. package/dist/composition/probe/index.js.map +1 -1
  539. package/dist/composition/probe/limits.js.map +1 -1
  540. package/dist/composition/probe/metadata.js.map +1 -1
  541. package/dist/composition/probe/pipeline.d.ts +5 -0
  542. package/dist/composition/probe/pipeline.d.ts.map +1 -1
  543. package/dist/composition/probe/pipeline.js +13 -6
  544. package/dist/composition/probe/pipeline.js.map +1 -1
  545. package/dist/composition/probe/problem.d.ts +8 -0
  546. package/dist/composition/probe/problem.d.ts.map +1 -1
  547. package/dist/composition/probe/problem.js +78 -12
  548. package/dist/composition/probe/problem.js.map +1 -1
  549. package/dist/composition/probe/report.js.map +1 -1
  550. package/dist/composition/probe/residual.js.map +1 -1
  551. package/dist/composition/probe/run-manifest.js +2 -2
  552. package/dist/composition/probe/run-manifest.js.map +1 -1
  553. package/dist/composition/probe/scoring.d.ts +2 -1
  554. package/dist/composition/probe/scoring.d.ts.map +1 -1
  555. package/dist/composition/probe/scoring.js +21 -7
  556. package/dist/composition/probe/scoring.js.map +1 -1
  557. package/dist/composition/probe/search-budget.js.map +1 -1
  558. package/dist/composition/probe/serialize.js.map +1 -1
  559. package/dist/composition/probe/structure.js.map +1 -1
  560. package/dist/composition/probe/study.d.ts +4 -3
  561. package/dist/composition/probe/study.d.ts.map +1 -1
  562. package/dist/composition/probe/study.js +5 -3
  563. package/dist/composition/probe/study.js.map +1 -1
  564. package/dist/composition/probe/types.d.ts +3 -1
  565. package/dist/composition/probe/types.d.ts.map +1 -1
  566. package/dist/composition/probe/types.js +2 -0
  567. package/dist/composition/probe/types.js.map +1 -1
  568. package/dist/composition/proposed-bridges.d.ts +11 -4
  569. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  570. package/dist/composition/proposed-bridges.js +11 -4
  571. package/dist/composition/proposed-bridges.js.map +1 -1
  572. package/dist/composition/quantities.d.ts +0 -4
  573. package/dist/composition/quantities.d.ts.map +1 -1
  574. package/dist/composition/quantities.js +5 -5
  575. package/dist/composition/quantities.js.map +1 -1
  576. package/dist/composition/quantity.d.ts +18 -2
  577. package/dist/composition/quantity.d.ts.map +1 -1
  578. package/dist/composition/quantity.js +35 -6
  579. package/dist/composition/quantity.js.map +1 -1
  580. package/dist/composition/representative-values.js.map +1 -1
  581. package/dist/composition/retrodiction.d.ts +16 -6
  582. package/dist/composition/retrodiction.d.ts.map +1 -1
  583. package/dist/composition/retrodiction.js +34 -9
  584. package/dist/composition/retrodiction.js.map +1 -1
  585. package/dist/composition/uncertainty.js.map +1 -1
  586. package/dist/composition/user-equation.js.map +1 -1
  587. package/dist/core/axes-registry.d.ts +8 -5
  588. package/dist/core/axes-registry.d.ts.map +1 -1
  589. package/dist/core/axes-registry.js.map +1 -1
  590. package/dist/core/cell.js.map +1 -1
  591. package/dist/core/constants.d.ts +8 -8
  592. package/dist/core/constants.d.ts.map +1 -1
  593. package/dist/core/constants.js +8 -10
  594. package/dist/core/constants.js.map +1 -1
  595. package/dist/core/data-file.js.map +1 -1
  596. package/dist/core/flux-rules.js +1 -1
  597. package/dist/core/flux-rules.js.map +1 -1
  598. package/dist/core/json-schema.d.ts +1 -1
  599. package/dist/core/json-schema.d.ts.map +1 -1
  600. package/dist/core/json-schema.js +31 -7
  601. package/dist/core/json-schema.js.map +1 -1
  602. package/dist/core/labeled-tensor.d.ts +6 -1
  603. package/dist/core/labeled-tensor.d.ts.map +1 -1
  604. package/dist/core/labeled-tensor.js +18 -8
  605. package/dist/core/labeled-tensor.js.map +1 -1
  606. package/dist/core/regime-registry.d.ts +6 -2
  607. package/dist/core/regime-registry.d.ts.map +1 -1
  608. package/dist/core/regime-registry.js.map +1 -1
  609. package/dist/core/regime-rule-install.js.map +1 -1
  610. package/dist/core/regimes-builtins.js.map +1 -1
  611. package/dist/core/tensor.d.ts +7 -4
  612. package/dist/core/tensor.d.ts.map +1 -1
  613. package/dist/core/tensor.js +40 -8
  614. package/dist/core/tensor.js.map +1 -1
  615. package/dist/core/types.js.map +1 -1
  616. package/dist/core/universal-index.js.map +1 -1
  617. package/dist/diff/bridge-ast-gradient.d.ts +4 -5
  618. package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
  619. package/dist/diff/bridge-ast-gradient.js +10 -6
  620. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  621. package/dist/diff/bridge-gradient.d.ts +24 -80
  622. package/dist/diff/bridge-gradient.d.ts.map +1 -1
  623. package/dist/diff/bridge-gradient.js +21 -98
  624. package/dist/diff/bridge-gradient.js.map +1 -1
  625. package/dist/diff/bridge-specs.d.ts +16 -5
  626. package/dist/diff/bridge-specs.d.ts.map +1 -1
  627. package/dist/diff/bridge-specs.js +16 -4
  628. package/dist/diff/bridge-specs.js.map +1 -1
  629. package/dist/dimensional/algebra.js.map +1 -1
  630. package/dist/dimensional/ast-builders.d.ts +5 -4
  631. package/dist/dimensional/ast-builders.d.ts.map +1 -1
  632. package/dist/dimensional/ast-builders.js +6 -5
  633. package/dist/dimensional/ast-builders.js.map +1 -1
  634. package/dist/dimensional/ast-types.js.map +1 -1
  635. package/dist/dimensional/bridge-check.js.map +1 -1
  636. package/dist/dimensional/buckingham.js.map +1 -1
  637. package/dist/dimensional/connection-validators.d.ts +2 -1
  638. package/dist/dimensional/connection-validators.d.ts.map +1 -1
  639. package/dist/dimensional/connection-validators.js.map +1 -1
  640. package/dist/dimensional/connection.js.map +1 -1
  641. package/dist/dimensional/constant-rows.d.ts.map +1 -1
  642. package/dist/dimensional/constant-rows.js +9 -5
  643. package/dist/dimensional/constant-rows.js.map +1 -1
  644. package/dist/dimensional/constants.d.ts +5 -6
  645. package/dist/dimensional/constants.d.ts.map +1 -1
  646. package/dist/dimensional/constants.js +5 -6
  647. package/dist/dimensional/constants.js.map +1 -1
  648. package/dist/dimensional/curvature-composite.js.map +1 -1
  649. package/dist/dimensional/curvature-invariants.js.map +1 -1
  650. package/dist/dimensional/curvature.js.map +1 -1
  651. package/dist/dimensional/dimension-inference.js.map +1 -1
  652. package/dist/dimensional/dimension-spec.d.ts +13 -7
  653. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  654. package/dist/dimensional/dimension-spec.js +49 -23
  655. package/dist/dimensional/dimension-spec.js.map +1 -1
  656. package/dist/dimensional/einstein-equation.js.map +1 -1
  657. package/dist/dimensional/errors.d.ts +3 -1
  658. package/dist/dimensional/errors.d.ts.map +1 -1
  659. package/dist/dimensional/errors.js +2 -2
  660. package/dist/dimensional/errors.js.map +1 -1
  661. package/dist/dimensional/exact-scale.js.map +1 -1
  662. package/dist/dimensional/field-equation-helpers.js.map +1 -1
  663. package/dist/dimensional/formula-names.js.map +1 -1
  664. package/dist/dimensional/fresh-label.js.map +1 -1
  665. package/dist/dimensional/friedmann-equation.d.ts +3 -3
  666. package/dist/dimensional/friedmann-equation.js +3 -3
  667. package/dist/dimensional/friedmann-equation.js.map +1 -1
  668. package/dist/dimensional/gauge-field.d.ts +2 -3
  669. package/dist/dimensional/gauge-field.d.ts.map +1 -1
  670. package/dist/dimensional/gauge-field.js +0 -1
  671. package/dist/dimensional/gauge-field.js.map +1 -1
  672. package/dist/dimensional/hyphen-names.d.ts.map +1 -1
  673. package/dist/dimensional/hyphen-names.js +8 -0
  674. package/dist/dimensional/hyphen-names.js.map +1 -1
  675. package/dist/dimensional/killing-validators.js.map +1 -1
  676. package/dist/dimensional/klein-gordon-equation.js.map +1 -1
  677. package/dist/dimensional/metric-validators.d.ts +2 -1
  678. package/dist/dimensional/metric-validators.d.ts.map +1 -1
  679. package/dist/dimensional/metric-validators.js.map +1 -1
  680. package/dist/dimensional/metric.js.map +1 -1
  681. package/dist/dimensional/natural-units.js.map +1 -1
  682. package/dist/dimensional/quantity-registry.d.ts +13 -0
  683. package/dist/dimensional/quantity-registry.d.ts.map +1 -1
  684. package/dist/dimensional/quantity-registry.js +14 -6
  685. package/dist/dimensional/quantity-registry.js.map +1 -1
  686. package/dist/dimensional/rg-flow.js.map +1 -1
  687. package/dist/dimensional/stress-energy-validators.js.map +1 -1
  688. package/dist/dimensional/symbolic-constants.d.ts.map +1 -1
  689. package/dist/dimensional/symbolic-constants.js +7 -2
  690. package/dist/dimensional/symbolic-constants.js.map +1 -1
  691. package/dist/dimensional/tensor-trace.js.map +1 -1
  692. package/dist/dimensional/tensor.js.map +1 -1
  693. package/dist/dimensional/types.js.map +1 -1
  694. package/dist/dimensional/unit-convention.d.ts +0 -2
  695. package/dist/dimensional/unit-convention.d.ts.map +1 -1
  696. package/dist/dimensional/unit-convention.js +2 -2
  697. package/dist/dimensional/unit-convention.js.map +1 -1
  698. package/dist/dimensional/unit-data.d.ts.map +1 -1
  699. package/dist/dimensional/unit-data.js +9 -5
  700. package/dist/dimensional/unit-data.js.map +1 -1
  701. package/dist/dimensional/units.d.ts.map +1 -1
  702. package/dist/dimensional/units.js +38 -20
  703. package/dist/dimensional/units.js.map +1 -1
  704. package/dist/dimensional/validator-registry.js.map +1 -1
  705. package/dist/dimensional/validator.d.ts +0 -16
  706. package/dist/dimensional/validator.d.ts.map +1 -1
  707. package/dist/dimensional/validator.js +65 -29
  708. package/dist/dimensional/validator.js.map +1 -1
  709. package/dist/dimensional/weyl-validators.js.map +1 -1
  710. package/dist/index.d.ts +50 -5
  711. package/dist/index.d.ts.map +1 -1
  712. package/dist/index.js +12 -20
  713. package/dist/index.js.map +1 -1
  714. package/dist/numerical/bianchi-residual.js.map +1 -1
  715. package/dist/numerical/binding-value.d.ts +11 -6
  716. package/dist/numerical/binding-value.d.ts.map +1 -1
  717. package/dist/numerical/binding-value.js +126 -122
  718. package/dist/numerical/binding-value.js.map +1 -1
  719. package/dist/numerical/christoffel-flat.js.map +1 -1
  720. package/dist/numerical/connection-lowering-helpers.js.map +1 -1
  721. package/dist/numerical/covariant-eikonal.d.ts.map +1 -1
  722. package/dist/numerical/covariant-eikonal.js +2 -2
  723. package/dist/numerical/covariant-eikonal.js.map +1 -1
  724. package/dist/numerical/curvature-lowering-helpers.d.ts +20 -0
  725. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  726. package/dist/numerical/curvature-lowering-helpers.js +6 -3
  727. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  728. package/dist/numerical/derivative-lowering.js.map +1 -1
  729. package/dist/numerical/einstein-equation.js.map +1 -1
  730. package/dist/numerical/engine-registry.js.map +1 -1
  731. package/dist/numerical/errors.d.ts +7 -3
  732. package/dist/numerical/errors.d.ts.map +1 -1
  733. package/dist/numerical/errors.js +5 -5
  734. package/dist/numerical/errors.js.map +1 -1
  735. package/dist/numerical/evaluator-uncertainty.d.ts.map +1 -1
  736. package/dist/numerical/evaluator-uncertainty.js +19 -2
  737. package/dist/numerical/evaluator-uncertainty.js.map +1 -1
  738. package/dist/numerical/formula-contract.d.ts +63 -7
  739. package/dist/numerical/formula-contract.d.ts.map +1 -1
  740. package/dist/numerical/formula-contract.js +61 -42
  741. package/dist/numerical/formula-contract.js.map +1 -1
  742. package/dist/numerical/formula-dimension.d.ts +8 -7
  743. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  744. package/dist/numerical/formula-dimension.js +58 -36
  745. package/dist/numerical/formula-dimension.js.map +1 -1
  746. package/dist/numerical/formula-mathts.d.ts.map +1 -1
  747. package/dist/numerical/formula-mathts.js +5 -2
  748. package/dist/numerical/formula-mathts.js.map +1 -1
  749. package/dist/numerical/formula-registry.d.ts +13 -3
  750. package/dist/numerical/formula-registry.d.ts.map +1 -1
  751. package/dist/numerical/formula-registry.js +7 -2
  752. package/dist/numerical/formula-registry.js.map +1 -1
  753. package/dist/numerical/geodesic-integrator.js.map +1 -1
  754. package/dist/numerical/geometrized.js.map +1 -1
  755. package/dist/numerical/gl4-integrator.d.ts +28 -27
  756. package/dist/numerical/gl4-integrator.d.ts.map +1 -1
  757. package/dist/numerical/gl4-integrator.js +41 -42
  758. package/dist/numerical/gl4-integrator.js.map +1 -1
  759. package/dist/numerical/grid-field.js.map +1 -1
  760. package/dist/numerical/index.js.map +1 -1
  761. package/dist/numerical/input-validation.d.ts +3 -6
  762. package/dist/numerical/input-validation.d.ts.map +1 -1
  763. package/dist/numerical/input-validation.js +4 -8
  764. package/dist/numerical/input-validation.js.map +1 -1
  765. package/dist/numerical/killing.d.ts +8 -5
  766. package/dist/numerical/killing.d.ts.map +1 -1
  767. package/dist/numerical/killing.js.map +1 -1
  768. package/dist/numerical/klein-gordon.js.map +1 -1
  769. package/dist/numerical/kretschmann.js.map +1 -1
  770. package/dist/numerical/lowering-utils.js.map +1 -1
  771. package/dist/numerical/lowering.d.ts.map +1 -1
  772. package/dist/numerical/lowering.js +7 -17
  773. package/dist/numerical/lowering.js.map +1 -1
  774. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  775. package/dist/numerical/mathts-engine.js +11 -6
  776. package/dist/numerical/mathts-engine.js.map +1 -1
  777. package/dist/numerical/metric-inverse.js.map +1 -1
  778. package/dist/numerical/null-ic.js.map +1 -1
  779. package/dist/numerical/null-ray-integrator.js +4 -4
  780. package/dist/numerical/null-ray-integrator.js.map +1 -1
  781. package/dist/numerical/painleve-gullstrand-metric.js.map +1 -1
  782. package/dist/numerical/pderiv.d.ts.map +1 -1
  783. package/dist/numerical/pderiv.js +9 -2
  784. package/dist/numerical/pderiv.js.map +1 -1
  785. package/dist/numerical/perihelion-finder.js.map +1 -1
  786. package/dist/numerical/quadrature.d.ts +5 -2
  787. package/dist/numerical/quadrature.d.ts.map +1 -1
  788. package/dist/numerical/quadrature.js +20 -3
  789. package/dist/numerical/quadrature.js.map +1 -1
  790. package/dist/numerical/spacetime-metrics.d.ts +13 -19
  791. package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
  792. package/dist/numerical/spacetime-metrics.js +126 -248
  793. package/dist/numerical/spacetime-metrics.js.map +1 -1
  794. package/dist/numerical/strides.js.map +1 -1
  795. package/dist/numerical/tensor-engine.d.ts +9 -5
  796. package/dist/numerical/tensor-engine.d.ts.map +1 -1
  797. package/dist/numerical/tensor-engine.js.map +1 -1
  798. package/dist/numerical/types.js.map +1 -1
  799. package/dist/numerical/weyl-lowering.js.map +1 -1
  800. package/dist/relations/category.js.map +1 -1
  801. package/dist/relations/composition-table.d.ts +4 -4
  802. package/dist/relations/composition-table.js +4 -4
  803. package/dist/relations/composition-table.js.map +1 -1
  804. package/dist/relations/conventions.js.map +1 -1
  805. package/dist/relations/domain-regimes.js.map +1 -1
  806. package/dist/relations/regime-registration.js.map +1 -1
  807. package/dist/relations/regime-vocabularies.js.map +1 -1
  808. package/dist/relations/regime.d.ts +18 -8
  809. package/dist/relations/regime.d.ts.map +1 -1
  810. package/dist/relations/regime.js +26 -14
  811. package/dist/relations/regime.js.map +1 -1
  812. package/dist/relations/types.d.ts +18 -5
  813. package/dist/relations/types.d.ts.map +1 -1
  814. package/dist/relations/types.js +5 -3
  815. package/dist/relations/types.js.map +1 -1
  816. package/package.json +10 -14
  817. package/dist/bridges/registry.d.ts +0 -60
  818. package/dist/bridges/registry.d.ts.map +0 -1
  819. package/dist/bridges/registry.js +0 -87
  820. package/dist/bridges/registry.js.map +0 -1
  821. package/dist/cli/poster-source.d.ts +0 -154
  822. package/dist/cli/poster-source.d.ts.map +0 -1
  823. package/dist/cli/poster-source.js +0 -184
  824. package/dist/cli/poster-source.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Universal Physics Tensor Framework\n *\n * Computational framework for exploring unified physics through tensor formalism\n *\n * @packageDocumentation\n */\n\nexport { UniversalTensor } from './core/tensor.js';\n// v0.5.1 — canonical flat CODATA 2018 / SI-defined constants (PC-1).\n// Single source of truth across numerical, dimensional, and bridge layers.\n// See src/core/constants.ts and docs/planning/v0.5.1-Implementation-Plan.md.\nexport {\n C_SI,\n G_SI,\n H_SI,\n HBAR_SI,\n K_B_SI,\n E_SI,\n ALPHA,\n M_P_SI,\n L_P_SI,\n T_P_SI,\n H0_SI,\n // v0.8.0 punch-list — promoted from the calibration-edges module\n M_SUN_SI,\n // IAU 2015 nominal solar GM. Not G_SI * M_SUN_SI.\n GM_SUN_SI,\n // v0.11 — electron mass (namespacing criterion-3 pin)\n M_E_SI,\n // canonical registry — Wien displacement constant (CE-wien)\n B_WIEN_SI,\n} from './core/constants.js';\nexport type {\n TensorConfig,\n TensorIndices,\n PhysicalLaw,\n BridgeEquation,\n EmergentPhenomenon,\n PhysicalScale,\n Force,\n Symmetry,\n InformationMeasure,\n} from './core/types.js';\nexport { PhysicalConstants } from './core/types.js';\n\n// v0.7 Proposal 3 — Typed `Cell` discriminated union (storage-layer\n// surface). `PhysicalLaw` / `BridgeEquation` / `EmergentPhenomenon`\n// above remain the legacy surface (consumers haven't migrated yet);\n// the new `Cell` union is the preferred forward-looking shape.\nexport type {\n Cell,\n CellBase,\n CellConfidence,\n LawCell,\n BridgeCell,\n EmergenceCell,\n} from './core/cell.js';\nexport { compose } from './core/tensor.js';\n\n// v0.7 Proposal 2 — Sparse semantic catalog (flux rules + adapter).\n// Per Decision #9, only the consumer-facing types are re-exported;\n// FluxRule / FluxRuleKind / FluxRuleResult stay @internal.\nexport type {\n FluxDiagnostic,\n FluxReport,\n} from './core/flux-rules.js';\nexport { FluxViolationError } from './core/flux-rules.js';\nexport type {\n CatalogEntryStatus,\n CatalogIngestionReport,\n} from './bridges/catalog-adapter.js';\nexport {\n catalogToCells,\n scanCatalog,\n ingestCatalog,\n ingestionReportToFluxReport,\n CatalogIngestionError,\n} from './bridges/catalog-adapter.js';\n\n// v0.7 Proposal 1 — Intelligent Index layer (UniversalIndex + Axes\n// + LabeledTensor wrapper). Per Decision #10, 10 public symbols.\n// MergedLabels<L,R> and canonicalLabelOrder stay @internal.\nexport type {\n AxisName,\n UniversalIndex,\n UniversalIndexId,\n MakeIndexOptions,\n} from './core/universal-index.js';\nexport { makeIndex } from './core/universal-index.js';\nexport type { AxesRegistry } from './core/axes-registry.js';\nexport { Axes } from './core/axes-registry.js';\nexport {\n LabeledTensor,\n LabeledTensorConstructionError,\n AxisMismatchError,\n IdentityConflictError,\n IndexNameMismatchError,\n RankPreservationError,\n AxisOrderError,\n AxisMergeError,\n AxisSplitError,\n} from './core/labeled-tensor.js';\n\n// v0.8 Proposal 5 — RegimeType extension system. Per P5 Decision #1,\n// ship the mechanism + the 18 v0.6-shipped values pre-registered;\n// closed taxonomy of new physics-regime built-ins deferred to v0.9.\nexport type {\n RegimeProvenance,\n RegimeValueBase,\n RegimeSpec,\n} from './core/regime-registry.js';\nexport {\n defineRegime,\n defineScale,\n defineForce,\n defineSymmetry,\n defineInformation,\n defineDimension,\n defineTopology,\n lookupRegime,\n listRegimesByAxis,\n provenanceFor,\n attachRegimesToCell,\n getCellRegimes,\n RegimeCollisionError,\n} from './core/regime-registry.js';\n// Phase 4 wiring side-effect: installs the regime-consistency rule.\nimport './core/regime-rule-install.js';\n// Phase 2 side-effect: pre-registers the 18 built-in regimes.\nimport './core/regimes-builtins.js';\n\n// v0.9 Proposal 8 — Bridge Parameter Differentiation (P8 Decision #1: lives\n// in src/diff/, doesn't touch src/bridges/). `bridgeGradientNumerical` is\n// central finite differences over a spec, engine-free. Engine AD of a spec\n// is unreachable by construction (`evaluate` returns a number, which carries\n// no tape); the exact AD path is `bridgeGradientAST` over the symbolic RHS.\nexport type { BridgeDiffSpec, BridgeNumericalGradientResult } from './diff/bridge-gradient.js';\nexport { bridgeGradientNumerical } from './diff/bridge-gradient.js';\n// Exact bridge gradients via reverse-mode AD over the symbolic RHS AST\n// (traced lowering through mathts-autograd; faithful encodings only).\nexport type { ASTGradientResult } from './diff/bridge-ast-gradient.js';\nexport {\n bridgeGradientAST,\n bridgeGradientASTById,\n astDifferentiableBridgeIds,\n} from './diff/bridge-ast-gradient.js';\n/** Differentiable relations: Shapiro delay, perihelion advance, Hawking temperature, and the decoherence rate. */\nexport {\n SHAPIRO_DELAY_DIFF,\n PERIHELION_ADVANCE_DIFF,\n HAWKING_TEMPERATURE_DIFF,\n DECOHERENCE_RATE_DIFF,\n DIFFERENTIABLE_RELATIONS,\n} from './diff/bridge-specs.js';\n\n// The catalog rows of `data/bridge-catalog.json`, in id order.\n// `BridgeEquationEntry` is a different shape from the runtime `BridgeEquation`\n// interface above: the entry is the catalog's record of an equation (status,\n// known issues, references, dependencies), while `BridgeEquation` describes a\n// runtime bridge between two tensor regimes.\nexport { BRIDGE_EQUATIONS } from './bridges/index.js';\n/** Request a caller-table confrontation. The catalog status does not change. */\nexport {\n requestCallerTableConfrontation,\n} from './bridges/caller-table.js';\n/** Types of a caller-table request and of its refusal or hit. */\nexport type {\n MeasuredCouplingRow,\n RunningProcedureRecord,\n RunningProcedure,\n CallerTableRequest,\n CallerTableRefusal,\n CallerTableHit,\n CallerTableResult,\n} from './bridges/caller-table.js';\nexport type {\n BridgeEquationEntry,\n BridgeEquationStatus,\n BridgeIssueSeverity,\n BridgeIssueFixable,\n KnownIssue,\n} from './bridges/index.js';\n\n/**\n * Constants that stay on the package root, and `CarrierSignError`.\n * Per-bridge evaluate functions are not on this root.\n */\nexport {\n VON_KLITZING_SI,\n JOSEPHSON_CONSTANT_SI,\n LORENZ_NUMBER_SI,\n BCS_GAP_RATIO,\n LANE_EMDEN_OMEGA3,\n THOMSON_CROSS_SECTION_SI,\n M_PROTON_SI,\n CarrierSignError,\n} from './bridges/index.js';\n/**\n * One evaluation of a catalog id or a canonical id.\n * A sourced number is `kind: 'value'`. An unset coefficient is `kind: 'unset'`.\n * @public\n */\nexport { evaluateRelation, CoefficientUnsetError } from './composition/index.js';\n/** The input errors {@link evaluateRelation} throws before any domain check; a domain failure is `DomainViolationError`. */\nexport {\n DuplicateInputError,\n InputTypeError,\n MissingInputError,\n NonFiniteInputError,\n UnknownInputError,\n} from './composition/index.js';\n/** A caller input that names a registered constant (`G`, `k_B`, `m_p`, …) is refused on every evaluation path. */\nexport { ConstantInputError } from './bridges/index.js';\n/** The result of {@link evaluateRelation}. A value carries a public `Dimension`. */\nexport type { Evaluation } from './composition/index.js';\n\nexport type { EvaluatorSpec, EvaluatorParameter, ParameterAlternate, GeometryRole } from './bridges/evaluators.js';\n/** An extra output an `EvaluatorSpec` returns beside its `value`. */\nexport type { CatalogEvaluatorOutput } from './bridges/catalog-types.js';\n/** The input contract an evaluator's `run` checks before the domain, and what a caller asks `run` for. */\nexport type { ContractAlternate, EvaluationWant, InputContract, InputSlot } from './bridges/input-contract.js';\n/** Build an input contract; throws when one spelling or alternate would bind two slots. */\nexport { inputContract } from './bridges/input-contract.js';\n\n// v0.4.0 connection layer — Christoffel formula builder and covariant derivative\n// AST node type. `christoffel` is public because bridge modules and downstream\n// callers compose Γ trees directly; `CovariantDerivativeNode` is the structural\n// type for the new ∇_μ AST kind.\nexport { christoffel } from './dimensional/connection.js';\n// CovariantDerivativeNode is re-exported from validator.ts (which holds the union);\n// importing from there avoids creating a separate source-of-truth.\nexport type { CovariantDerivativeNode } from './dimensional/validator.js';\n\n// v0.5.0 curvature layer — Ricci tensor helper (Task 7). `ricci(R)` wraps a\n// RiemannTensorNode and produces the contracted R_μν = R^λ_{λμν} as a\n// composite ExprNode (own validator + lowering arms).\nexport { ricci } from './dimensional/curvature.js';\nexport type { RicciTensorNode } from './dimensional/validator.js';\n\n// v0.5.0 curvature layer — Einstein tensor helper (Task 8). `einstein(R, g,\n// gInverse)` wraps a RiemannTensorNode + metric pair and produces the\n// composite G_μν = R_μν − ½ R g_μν as an ExprNode (own validator +\n// lowering arms — no AST rewrite). Vacuum-Einstein scope; matter-coupled\n// `G_μν = κ T_μν` is deferred to v0.6.0+.\nexport { einstein } from './dimensional/curvature.js';\nexport type { EinsteinTensorNode } from './dimensional/validator.js';\n\n// v0.5.0 curvature layer — Bianchi residual helper (Task 9). `bianchiResidual(R)`\n// returns {residual, evaluate, evaluateMax} for the cyclic second-Bianchi-identity\n// check ∇_{[λ} R_{μν]ρσ} = 0. The evaluator lives in numerical so curvature.ts\n// does not import it. Closes Phase 1 — Foundations.\nexport { bianchiResidual } from './numerical/bianchi-residual.js';\nexport type { BianchiResidualNode } from './dimensional/validator.js';\n\n// v0.6.0 Phase 1 — Killing-vector machinery (Task 1.3).\n// `verifyKillingEquation` checks the Killing equation ∇_μ ξ_ν + ∇_ν ξ_μ = 0\n// numerically at a point using a hybrid impl (exact Christoffels + analytic\n// metric derivatives). `evaluateConservedCharge` evaluates Q = ξ^μ p_μ along\n// a geodesic. `ChristoffelAccess` is the layout-agnostic Christoffel accessor\n// type that insulates consumers from the Phase 2 BR-2 flat-layout migration.\nexport {\n verifyKillingEquation,\n checkKillingEquation,\n evaluateConservedCharge,\n} from './numerical/killing.js';\nexport type {\n KillingEquationOptions,\n KillingEquationCheck,\n ChristoffelAccess,\n} from './numerical/killing.js';\n\n// v0.4.0 geodesic integrator (RK4 solver — headline feature of v0.4.0)\nexport {\n integrateGeodesic,\n type GeodesicIntegratorInputs,\n type GeodesicIntegratorResult,\n} from './numerical/geodesic-integrator.js';\n\n// v0.14 G-9 increment 2 — geometrized-units boundary adapters. Convert a scalar\n// between SI and geometrized (G = c = 1) units, driven by its `Dimension`\n// exponent vector (factor G^M·c^(T−2M)). For consumers running the GR pipeline\n// in geometrized units; the default-pipeline migration is a later increment.\nexport {\n toGeometrized,\n fromGeometrized,\n geometrizedFactor,\n NonGeometrizableDimensionError,\n} from './numerical/geometrized.js';\n\n// v0.7.1 M-1 — Surface restoration: five v0.7 dimensional primitives were\n// @public-tagged during the BE-X re-encoding sprint but absent from this\n// manifest. Re-exported here per Phase 1 Task 1.2 (Decision #2 guard).\n// Mirrors the v0.6.0 EinsteinFieldEquationNode / KretschmannScalarNode /\n// RicciTensorNode pattern — predicate-node types + validators are @public.\nexport type {\n TracableTensorNode,\n TensorTraceNode,\n TensorTraceValidationResult,\n TensorTraceOptions,\n} from './dimensional/tensor-trace.js';\nexport { validateTensorTrace } from './dimensional/tensor-trace.js';\n\nexport type {\n FriedmannVariant,\n FriedmannEquationNode,\n FriedmannEquationValidationResult,\n} from './dimensional/friedmann-equation.js';\nexport { validateFriedmannEquation } from './dimensional/friedmann-equation.js';\n\nexport type {\n RGCouplingNode,\n BetaFunctionNode,\n BetaFunctionValidationResult,\n} from './dimensional/rg-flow.js';\nexport { rgCoupling, validateRGCoupling, validateBetaFunction } from './dimensional/rg-flow.js';\n\nexport type {\n ArrowOfTime,\n GaugeFieldNode,\n TimeSymmetryPredicateNode,\n TimeSymmetryPredicateValidationResult,\n} from './dimensional/gauge-field.js';\nexport { validateGaugeField, validateTimeSymmetryPredicate } from './dimensional/gauge-field.js';\n\nexport type {\n ScalarFieldNode,\n KleinGordonEquationNode,\n KleinGordonEquationValidationResult,\n} from './dimensional/klein-gordon-equation.js';\nexport { validateKleinGordonEquation } from './dimensional/klein-gordon-equation.js';\n\n// Dimensional analyzer (Tier 4) — SI dimension propagation through bridge\n// equations expressed as ExprNode trees. See src/dimensional/README.md.\n// Every symbol re-exported in this block is `@public` — the consumer-facing\n// dimensional/metric surface (stabilised in v0.3.0).\nexport type { Dimension } from './dimensional/types.js';\n/** The one unit reader: parse a unit, convert a value exactly, and the typed errors it throws. */\nexport {\n AmbiguousUnitError,\n convertValue,\n parseUnit,\n UnitError,\n UnitRefusedError,\n UnknownUnitError,\n} from './dimensional/units.js';\n/** A parsed unit, a converted value, and how a temperature is read. */\nexport type { AffineTemperature, ConvertedValue, ParsedUnit, TemperatureReading } from './dimensional/units.js';\nexport {\n DIMENSIONLESS,\n LENGTH,\n AREA,\n TIME,\n FREQUENCY,\n MASS,\n VELOCITY,\n ACCELERATION,\n FORCE,\n ENERGY,\n POWER,\n ACTION,\n TEMPERATURE,\n ENTROPY,\n CHARGE,\n} from './dimensional/types.js';\nexport {\n multiply,\n divide,\n power,\n add,\n subtract,\n equals,\n format,\n DimensionMismatchError,\n} from './dimensional/algebra.js';\nexport type { ExprNode, TranscendentalFn, ValidationResult, Violation } from './dimensional/validator.js';\nexport { validate, validateEquation, validateInverseMetricPair } from './dimensional/validator.js';\nexport { inferDimensionForBridge } from './dimensional/bridge-check.js';\n\n// v0.6.0 Phase 2 Task 2.4 — Einstein-equation numerical evaluator.\n// `evaluateEinsteinEquationResidual` computes the scale-normalized max residual\n// |G_μν + Λ g_μν − κ T_μν| / |g_μν| at a coordinate point. Accepts metric\n// closures + stress-energy closure; returns a dimensionless relative residual.\n// For Schwarzschild vacuum (T=0, Λ=0) the residual is the FD truncation floor\n// (~1e-10 relative at 4th-order stencil accuracy).\nexport {\n evaluateEinsteinEquationResidual,\n} from './numerical/einstein-equation.js';\nexport type {\n EinsteinEquationResidualInput,\n MetricClosure,\n Vec4,\n} from './numerical/einstein-equation.js';\n\n// v0.6.0 Phase 2 Task 2.3 — EinsteinFieldEquationNode predicate AST + validator.\n// Represents G_μν + Λ g_μν = (8πG/c⁴) T_μν as a structurally-validated AST node.\n// Validator checks: free-index agreement, per-component dim equality [L⁻²],\n// and symmetry agreement (Decision #3 + #11).\nexport { validateEinsteinFieldEquation } from './dimensional/einstein-equation.js';\nexport type {\n EinsteinFieldEquationNode,\n EinsteinFieldEquationValidationResult,\n} from './dimensional/einstein-equation.js';\n\n// v0.6.0 Phase 3 Task 3.5 — KretschmannScalarNode AST + validator.\n// K = R_{ρσμν} R^{ρσμν} is the canonical curvature invariant; scalar (rank-0),\n// dim [L⁻⁴]. Diverges at genuine singularities; finite at coordinate ones.\nexport type {\n KretschmannScalarNode,\n KretschmannScalarValidationResult,\n} from './dimensional/curvature-invariants.js';\nexport { validateKretschmannScalar } from './dimensional/curvature-invariants.js';\n\n// v0.6.0 Phase 3 Task 3.6 — Kretschmann scalar numerical contraction.\n// O(4⁸) = 65536 multiplications per call — diagnostic/sample-point use only.\nexport { computeKretschmann } from './numerical/kretschmann.js';\n\n// Numerical-contraction backend (v0.3.5+). See docs/planning/v0.3.5-Design.md\n// and docs/planning/v0.4.0-Implementation-Plan.md (v0.4.0 additions below).\n// Every symbol below is `@public` — the consumer-facing (TensorJS) surface.\n// `MathTSEngine` is intentionally NOT re-exported here. It is reachable only\n// via the `universal-physics-tensor/numerical/mathts-engine` subpath. The\n// MathTS packages are required dependencies.\n/** Numerical evaluation, the covariant eikonal integrator, the GL4 geodesic integrator, and the perihelion finder. */\nexport {\n evaluateNumerical,\n evaluateNumericalRaw,\n evaluateMetricInverse,\n getActiveEngine,\n setActiveEngine,\n NumericalBackendError,\n // v0.4.0 additions to the numerical surface\n DuplicateCoordinateWarning,\n EngineCapabilityError,\n hasAutogradSupport,\n evaluateCovariantEikonalNumerical,\n // v0.5.0 GL4 symplectic integrator\n integrateGeodesicGL4,\n // v0.5.0 perihelion finder (Task 4)\n findPerihelion,\n} from './numerical/index.js';\n/** Types for numerical evaluation, gradients, the GL4 integrator, the perihelion finder, and the covariant eikonal. */\nexport type {\n NumericalResult,\n NumericalRawResult,\n EvaluateOptions,\n NumericalInputs,\n TensorEngine,\n EngineTensor,\n EinsumSpec,\n NestedArray,\n GridField,\n // v0.4.0 type additions\n ForwardGradResult,\n ReverseGradResult,\n // v0.5.0 GL4 type additions\n GL4State,\n GL4Snapshot,\n GL4Options,\n // v0.5.0 perihelion-finder type additions (Task 4)\n PerihelionResult,\n FindPerihelionOptions,\n CovariantEikonalInputs,\n CovariantEikonalResult,\n} from './numerical/index.js';\n\n// ---------------------------------------------------------------------------\n// v0.8.0 — Composition graph (graph-lite Quantity/BridgeEdge/composeEdges\n// beside the catalog; see docs/planning/v0.8.0-Design.md). The operator is\n// `composeEdges`, NOT `compose` — `compose` is the v0.7 Cell factory above.\n// ---------------------------------------------------------------------------\nexport {\n composeEdges,\n consistencyRatio,\n evaluateEdge,\n minConfidence,\n regimesDiffer,\n QUANTITY_IDENTIFICATIONS,\n CompositionDimensionError,\n CompositionJunctionError,\n DomainViolationError,\n // Calibration edges (pre-registered CT-1/CT-1b/CT-2/CT-3 targets)\n M_SUN_KG,\n} from './composition/index.js';\nexport type {\n BridgeEdge,\n ComposeOptions,\n EdgeConfidence,\n Quantity,\n QuantityIdentification,\n RegimeAttributes,\n ValidityDomain,\n} from './composition/index.js';\n\n// v0.8.0 — Bridge-membership criterion + negative catalog (G-2 / P-4)\nexport { adjudicateBridgeEntry, adjudicateCatalog } from './bridges/membership.js';\nexport { REJECTED_BRIDGE_ADJUDICATIONS, REJECTED_BRIDGE_IDS } from './bridges/rejected.js';\nexport type { BridgeVerdict, CatalogAdjudicationReport } from './bridges/membership.js';\nexport type { RejectedBridgeAdjudication } from './bridges/rejected.js';\n\n// v0.8.0 — GW170817 → BE-36 real-data confrontation (G-3)\n\n// v0.28+ — Mercury perihelion → BE-52 real-data confrontation (established bridge)\n\n// v0.10.0 — Phase-D enumeration + uncertainty propagation (T3/T4)\nexport {\n enumerateCompositions,\n REGISTERED_COMPOSITION_IDS,\n propagateUncertainty,\n} from './composition/index.js';\nexport type {\n CompositionCandidate,\n EnumerationReport,\n UncertaintyResult,\n} from './composition/index.js';\n\n// Identifiability classifier (structural over/exactly/under-determined\n// over the composition graph — Consequence 1 of the bridge-inference\n// epistemics note)\nexport {\n classifyIdentifiability,\n classifyAll,\n forwardClosure,\n} from './composition/index.js';\nexport type {\n IdentifiabilityVerdict,\n IdentifiabilityResult,\n IdentifiabilityOptions,\n} from './composition/index.js';\n\n// Retrodiction harness (the framework's own falsification benchmark —\n// Consequence 2 of the bridge-inference epistemics note)\nexport { retrodict, retrodictNode } from './composition/index.js';\n/** The retrodiction harness's result, prediction, refusal, report and option types. */\nexport type {\n RetrodictionOutcome,\n RetrodictionPrediction,\n RetrodictionResult,\n RetrodictionRefusal,\n RetrodictionReport,\n RetrodictionOptions,\n} from './composition/index.js';\n\n// Unified \"explain this quantity\" entry point over the three inference\n// primitives (identifiability + retrodiction + Buckingham-π)\nexport { explainQuantity } from './composition/index.js';\nexport type {\n DerivationExplanation,\n ExplainOptions,\n QuantityExplanation,\n} from './composition/index.js';\n\n// v0.12 — symbolic bridge composition (the Observable contract). Composes\n// bridges' symbolic ExprNode forms (not just numeric closures), dimensionally\n// validated and numerically evaluable.\nexport { composeSymbolic, SymbolicCompositionError, SymbolicEvalError } from './composition/index.js';\nexport type { Observable, ComposeSymbolicOptions } from './composition/index.js';\n\n// Physics-map visualization — render the bipartite, clustered hypergraph\n// (quantities = nodes, equations = junctions) as Mermaid / Graphviz-DOT source.\nexport { buildVizModel, edgeToJunction } from './composition/index.js';\nexport type {\n VizStatus,\n VizJunction,\n VizCluster,\n VizOptions,\n VizModel,\n VizFilterStats,\n} from './composition/index.js';\n// SVG rendering via the optional @viz-js/viz peer (separate module so the\n// graph-viz model stays pure/synchronous/dependency-free).\nexport { renderDotToSvg, SvgRendererUnavailableError } from './composition/index.js';\n\n// User-equation injection — parse a free-form \"TARGET = EXPR\" and place it into\n// the map as a connected 'user' junction (with a \"did you mean?\" hint).\nexport {\n parseUserEquation,\n suggestQuantities,\n suggestByDimension,\n equationLanding,\n analyzeUserEquation,\n UserEquationError,\n} from './composition/index.js';\n/** The catalog or parameter name a spelling means. One owner for a target and an input. */\nexport { resolveQuantityName } from './composition/index.js';\nexport type { UserEquation, EquationLanding, EquationAnalysis, EquationHint } from './composition/index.js';\n\n// Phase 1 — string → dimensional ExprNode parser + single-unknown dimensional\n// inference (the front-end to the physics AST).\nexport { parsePhysics } from './numerical/formula-registry.js';\nexport { FormulaDimensionError } from './numerical/formula-dimension.js';\nexport type { ParsedPhysics } from './numerical/formula-dimension.js';\nexport { inferUnknownDimension, substituteSymbolDim } from './dimensional/dimension-inference.js';\n// Dimension-adjacency review surface (name-divergent but same-dimension quantities).\nexport { dimensionAdjacency } from './composition/index.js';\nexport type { DimensionAdjacency } from './composition/index.js';\n\n\n// Buckingham-π enumerator (the principled primitive for the exactly-\n// determined case — build target 1 of the bridge-inference epistemics\n// note; FORM only, never the dimensionless constant)\nexport {\n buckinghamPi,\n dimensionallyDetermines,\n RationalizationError,\n} from './dimensional/buckingham.js';\nexport type {\n DimensionalVariable,\n PiGroup,\n BuckinghamVerdict,\n BuckinghamResult,\n DimensionalDeterminationResult,\n} from './dimensional/buckingham.js';\n\n// v0.11 — namespacing gate (Option D: name-collision rule + dispositions)\nexport {\n CompositionAliasError,\n SOURCE_ALIAS_DISPOSITIONS,\n} from './composition/compose-surface.js';\nexport type {\n AliasDisposition,\n DispositionRequired,\n} from './composition/compose-surface.js';\n\n// v0.11 — Klein-Gordon dispersion evaluator (G-7 closure, plane-wave sector)\nexport {\n evaluateKGDispersionResidual,\n verifyKleinGordonPlaneWave,\n} from './numerical/klein-gordon.js';\nexport type {\n KGDispersionResidualInput,\n KGPlaneWaveVerifyInput,\n KGPlaneWaveVerifyResult,\n} from './numerical/klein-gordon.js';\n\n// v0.11 — BE-23 Planckian-dissipation data confrontation (2nd real-data check)\n\n// The composition graph is the relation projection of the catalog.\nexport { CATALOG_GRAPH } from './composition/index.js';\n\n// The standard-physics counterpart: the canonical L-layer projected into the\n// composition-graph edge vocabulary, so the discovery/analysis funnel can run\n// on textbook physics ALONE (bridges excluded). See `composition/canonical-graph`.\nexport {\n CANONICAL_GRAPH,\n canonicalToEdges,\n CANONICAL_CONSTANTS,\n} from './composition/index.js';\n\n// ── Canonical-equation registry (the L-layer ground truth) ──────────────────\n// Textbook physics equations bridges are validated against. Multi-fidelity\n// (L0 dimensional / L1 scalar-AST / L2 field-equation) with epistemic-honesty\n// and provenance fields. See docs/planning/Canonical-Equation-Registry-A-*.\nexport {\n CANONICAL_EQUATIONS,\n CANONICAL_BY_ID,\n canonicalById,\n canonicalByDomain,\n partneredBridgeIds,\n bridgesWithoutCanonicalPartner,\n} from './canonical/registry.js';\nexport {\n canonicalToLaw,\n seedCanonicalLaws,\n CANONICAL_TENSOR_CONFIG,\n} from './canonical/seed-l-layer.js';\nexport type {\n CanonicalEquation,\n CanonicalDomain,\n EpistemicStatus,\n CanonicalForms,\n FieldEquationNode,\n} from './canonical/canonical-equation.js';\n// Sub-project B — bridge↔canonical linkage (validate vs standard physics).\n// `normalForm` is the structural hash up to dimensionless factors;\n// `classifyLinkage`/`scanLinkages` recover/contain bridges against canonicals\n// with the F4 circularity guard (`restates-canonical` vs genuine `recovers`).\nexport { normalForm, structurallyEqual } from './canonical/normal-form.js';\nexport { classifyLinkage, scanLinkages } from './canonical/linkage.js';\nexport type { LinkageResult, RecoveryOutcome } from './canonical/linkage.js';\n\n// Adjudication ledger — human verdicts on discovery-funnel identification\n// hypotheses (review memory the funnel must not re-surface as fresh).\n// Precedent: SOURCE_ALIAS_DISPOSITIONS/AliasDisposition above is the repo's\n// other reviewable judgment registry, and is index-exported the same way.\nexport {\n candidateId,\n ADJUDICATIONS,\n adjudicationFor,\n annotateAdjudications,\n} from './composition/adjudication.js';\nexport type { AnnotatedCandidate } from './composition/adjudication.js';\n/** The adjudication ledger's verdict and record types, exported from their owner, the catalog file's types. */\nexport type { AdjudicationVerdict, CatalogAdjudication } from './bridges/catalog-types.js';\n\n// Consequence propagation — the machine pre-classifier for the human\n// adjudication ledger. Annotates discovery candidates with the\n// entailed/novel-consequence/inconclusive signal; never mutates the\n// catalog/graph, never re-orders or re-scores.\nexport { annotateConsequences, classifyProposal } from './composition/consequence.js';\nexport type {\n ConsequenceAnnotatedCandidate,\n ConsequenceSignal,\n ConsequenceEvidence,\n} from './composition/consequence.js';\n\n// Epistemic-grounding ledger (PI-instrument Phase 1). A pure, derived view over\n// a candidate's falsifier results: which gates passed vs abstained, plus the\n// honest no-mechanism/no-data ceiling. Annotation-only; changes no verdict.\nexport { describeGrounding } from './composition/grounding.js';\nexport type { CandidateGrounding } from './composition/grounding.js';\n\n// Discovery funnel — vet link-candidate identifications against the inference\n// suite (Direction 2). rankDiscoveries is the entry point; VettedCandidate is\n// the output type. Required to feed annotateAdjudications from the public API.\nexport { rankDiscoveries } from './composition/discovery.js';\nexport type { VettedCandidate } from './composition/discovery.js';\n\n// v0.33.0 — `upt confront` real-data confrontation subsystem: typed\n// observations + a normalized ConfrontationOutcome (discriminated on `kind`)\n// wrap the per-bridge confrontation modules (be-23/36/37/48/52) behind one\n// registry, plus deciding-measurement elasticity for value-kind entries.\nexport {\n residualInSigma,\n combineInQuadrature,\n consistencyComparison,\n} from './bridges/observations/types.js';\nexport type {\n ConsistencyComparison,\n ObservationProvenance,\n SigmaComponent,\n ObservationKind,\n ConfrontationOutcome,\n ConfrontationDataHandling,\n ConfrontationPreprocessing,\n ConfrontationIndependence,\n SourceRef,\n SourceRefs,\n} from './bridges/observations/types.js';\n\n// BE-53 — one-loop coefficient, and a confrontation only when the caller supplies both inputs.\nexport { oneLoopCoefficientStatement } from './bridges/coefficient-statement.js';\nexport type { OneLoopCoefficientStatement, OneLoopCoefficientSign } from './bridges/coefficient-statement.js';\n\n// The confrontation registry: every committed confrontation of\n// `data/bridge-catalog.json`, the single lookup surface for `upt confront`.\nexport {\n CONFRONTATIONS,\n listConfrontations,\n runConfrontation,\n // Rigor hierarchy of the evidence spine (2026-07-05) — stringent/moderate/loose.\n CONFRONTATION_RIGOR,\n confrontationRigor,\n rigorDistribution,\n} from './bridges/confrontations.js';\nexport type { ConfrontationEntry, RigorTier } from './bridges/confrontations.js';\n\n// Deciding-measurement elasticity — which input a value-kind confrontation's\n// prediction depends on most strongly (central-difference log-sensitivity).\nexport { decidingMeasurement } from './bridges/sensitivity.js';\nexport type { Elasticity } from './bridges/sensitivity.js';\n\n// The PUBLIC atlas surface as a namespace (Atlas API review, Tier 1). The full\n// @internal surface stays on the universal-physics-tensor/atlas subpath.\nexport * as atlas from './atlas/public.js';\n\n// ---------------------------------------------------------------------------\n// Closure under type references (tests/api/root-public-closure.test.ts).\n// Every type a root export names is itself importable from the root or from\n// a package.json subpath; the names below were reachable only through the\n// public declarations that mention them.\n// ---------------------------------------------------------------------------\n/** The base class of every error this package throws. */\nexport type { UPTError } from './dimensional/errors.js';\n/** Which constants a natural-unit evaluation sets to one. */\nexport type { UnitMode } from './dimensional/natural-units.js';\n/** The tensor and curvature node family of the dimensional AST. */\nexport type {\n Variance,\n Role,\n TensorIndex,\n UpperIndex,\n CovariantIndex,\n TensorSymbolNode,\n TensorProductNode,\n MetricTensorNode,\n KroneckerDeltaNode,\n TensorPartialDerivativeNode,\n RiemannTensorNode,\n WeylTensorNode,\n KillingVectorNode,\n ConservedChargeNode,\n StressEnergyTensorNode,\n CosmologicalConstantNode,\n} from './dimensional/ast-types.js';\n/** The generic shape the curvature node types instantiate, and its kind union (referenced by the exported node types). */\nexport type { CurvatureCompositeNode, CurvatureKind } from './dimensional/curvature-composite.js';\n/** The kind of a flux rule. */\nexport type { FluxRuleKind } from './core/flux-rules.js';\n/** The per-axis value tables of the core axis registry. */\nexport type { ScaleAxes, ForceAxes, SymmetryAxes, InformationAxes } from './core/axes-registry.js';\n/** The convenience form a regime registration accepts for an axis. */\nexport type { AxisConvenience } from './core/regime-registry.js';\n/** The named inputs of the four bridge differentiation specs. */\nexport type { ShapiroInput, PerihelionInput, HawkingInput, DecoherenceInput } from './diff/bridge-specs.js';\n/** The contraction and free-axis records an einsum plan is made of. */\nexport type { EinsumContraction, EinsumFreeAxis } from './numerical/tensor-engine.js';\n/** The callbacks a Killing-equation check takes: the vector field, the metric and the connection. */\nexport type { KillingFn, KillingMetricFn, ChristoffelAtFn } from './numerical/killing.js';\n/** A relation's input contract and the sign and unit conventions it states. */\nexport type { RelationContract, Conventions } from './relations/types.js';\n/** The classification axes of the composition registry. */\nexport type {\n ScaleAxis,\n ForceAxis,\n InformationAxis,\n SymmetryAxis,\n TopologyAxis,\n StatisticsAxis,\n} from './composition/axes.js';\n/** Options of the chain enumerator. */\nexport type { EnumerationOptions } from './composition/enumerate.js';\n/** Options of the uncertainty propagation. */\nexport type { UncertaintyOptions } from './composition/uncertainty.js';\n/** Options of a user-equation analysis and the short form of a binding. */\nexport type { AnalyzeUserEquationOptions, ShortBinding } from './composition/user-equation.js';\n/** A constant as the canonical graph declares it. */\nexport type { ConstantDef } from './composition/canonical-graph.js';\n/** An identity consequence the surfacer proposes; never written to the catalog. */\nexport type { ProposedBridge } from './composition/proposed-bridges.js';\n/** Options of the discovery funnel. */\nexport type { DiscoveryOptions } from './composition/discovery.js';\n/** A representative value of a quantity with its source. */\nexport type { RepresentativeValue } from './composition/representative-values.js';\n/** A canonical prefactor, scalar or per dimensionless group, with its source. */\nexport type { SourcedPrefactor, SourcedGroupPrefactor } from './canonical/canonical-equation.js';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"bianchi-residual.js","sourceRoot":"","sources":["../../src/numerical/bianchi-residual.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAO/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,eAAe,CAAC,CAAoB;IAKlD,MAAM,QAAQ,GAAwB,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAE/E,MAAM,QAAQ,GAAkB,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACvD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,QAAoB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACjF,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,KAAK,EACvB,MAAoB,EACpB,MAAuB,EACN,EAAE;QACnB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7C,kEAAkE;QAClE,qEAAqE;QACrE,uEAAuE;QACvE,sCAAsC;QACtC,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,MAAM,IAAI,GAAG,CAAC,CAAkC,EAAQ,EAAE;YACxD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,GAAG,GAAG;oBAAE,GAAG,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrB,KAAK,MAAM,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC3B,OAAO;YACT,CAAC;YACD,MAAM,IAAI,KAAK,CACb,iEAAiE;kBAC/D,6BAA6B,OAAO,CAAC,EAAE,CAC1C,CAAC;QACJ,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,CAAC;QACZ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,QAAoB,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"bianchi-residual.js","sourceRoot":"","sources":["../../src/numerical/bianchi-residual.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAO/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,eAAe,CAAC,CAAoB;IAKlD,MAAM,QAAQ,GAAwB,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAE/E,MAAM,QAAQ,GAAkB,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACvD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,QAAoB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACjF,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,KAAK,EACvB,MAAoB,EACpB,MAAuB,EACN,EAAE;QACnB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7C,kEAAkE;QAClE,qEAAqE;QACrE,uEAAuE;QACvE,sCAAsC;QACtC,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,MAAM,IAAI,GAAG,CAAC,CAAkC,EAAQ,EAAE;YACxD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,GAAG,GAAG;oBAAE,GAAG,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrB,KAAK,MAAM,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC3B,OAAO;YACT,CAAC;YACD,MAAM,IAAI,KAAK,CACb,iEAAiE;kBAC/D,6BAA6B,OAAO,CAAC,EAAE,CAC1C,CAAC;QACJ,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,CAAC;QACZ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,QAAoB,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AACnE,CAAC","sourcesContent":["/**\n * Evaluator for the second-Bianchi-identity residual.\n *\n * The validators stay in `dimensional/curvature.ts`. This module holds the\n * constructor that calls `evaluateNumerical`, so `curvature.ts` does not\n * import `numerical`. `numerical/index.ts` does not import this file: that\n * edge would be a cycle, because this file imports `evaluateNumerical` from\n * the index.\n *\n * @module numerical/bianchi-residual\n */\n\nimport type {\n BianchiResidualNode,\n ExprNode,\n RiemannTensorNode,\n} from '../dimensional/ast-types.js';\nimport type { TensorEngine } from './tensor-engine.js';\nimport type { NumericalInputs, NestedArray } from './types.js';\nimport { evaluateNumerical } from './index.js';\n\ntype LazyEvaluator = (\n engine: TensorEngine,\n inputs: NumericalInputs,\n) => Promise<NestedArray>;\n\n/**\n * Build the second-Bianchi-identity residual `B_{λμνρσ}` as a composite\n * object with both an AST representation and evaluator closures.\n *\n * **Return shape (deviates from `ricci()`/`einstein()`'s plain-ExprNode\n * return):** Bianchi is a 5-index residual tensor whose primary purpose is\n * to be EVALUATED and reduced to its max-absolute value. Callers that just\n * want the scalar self-consistency check use `evaluateMax`; callers that\n * want to inspect per-component residual structure use `evaluate`. The\n * underlying `residual: ExprNode` is exposed for downstream symbolic\n * consumers (validator, equation-homogeneity checks).\n *\n * **Convention.** Carroll Eq. 3.95 cyclic form on the first three lower\n * indices of the all-lower Riemann:\n *\n * B_{λμνρσ} = ∇_λ R_{μνρσ} + ∇_μ R_{νλρσ} + ∇_ν R_{λμρσ} = 0\n *\n * **Implementation (Approach 1 — full ∇, not raw ∂).** Lowering computes\n * each `∇_λ R_{μνρσ}` term with full Christoffel corrections (one per lower\n * index of R), then sums cyclically. The lowered Riemann itself is computed\n * by lowering the upper-ρ of R^ρ_{σμν} on the JS side after the Riemann\n * lowering pipeline (Task 6) — no v0.3.0 `lower()` AST round-trip per FD\n * sample.\n *\n * **Numerical-noise discussion.** The cyclic sum involves one extra\n * coordinate-derivative on R_{μνρσ}, which itself sits on a ∂g→Γ→∂Γ→R FD\n * stack. Schwarzschild + de Sitter empirical residuals are reported in\n * `tests/dimensional/bianchi-residual.test.ts`; expected per-component\n * noise floor is ~1e-7 to 1e-8 — much looser than the Task 6 Riemann floor\n * (~8e-10) because of the extra FD layer.\n *\n * @public\n */\nexport function bianchiResidual(R: RiemannTensorNode): {\n residual: ExprNode;\n evaluate: LazyEvaluator;\n evaluateMax: (engine: TensorEngine, inputs: NumericalInputs) => Promise<number>;\n} {\n const residual: BianchiResidualNode = { kind: 'bianchi-residual', riemann: R };\n\n const evaluate: LazyEvaluator = async (engine, inputs) => {\n const result = await evaluateNumerical(residual as ExprNode, inputs, { engine });\n return result.value;\n };\n\n const evaluateMax = async (\n engine: TensorEngine,\n inputs: NumericalInputs,\n ): Promise<number> => {\n const value = await evaluate(engine, inputs);\n // Walk the 5-deep nested array (or any depth) and return max |x|.\n // v0.5.1 TS-3: signature accepts `NestedArray` (the public type from\n // evaluate()) plus a typed-array escape hatch; unexpected shapes throw\n // rather than being silently ignored.\n let max = 0;\n const walk = (v: NestedArray | readonly number[]): void => {\n if (typeof v === 'number') {\n const a = Math.abs(v);\n if (a > max) max = a;\n return;\n }\n if (Array.isArray(v)) {\n for (const c of v) walk(c);\n return;\n }\n throw new Error(\n `bianchiResidual.evaluateMax: unexpected value shape — expected `\n + `number | NestedArray, got ${typeof v}`,\n );\n };\n walk(value);\n return max;\n };\n\n return { residual: residual as ExprNode, evaluate, evaluateMax };\n}\n"]}
@@ -2,12 +2,17 @@
2
2
  * A binding value: a bare number, a number with a unit, or an expression of
3
3
  * registered constants and unit literals (`pi/2`, `0.6*c`, `2*1km`).
4
4
  *
5
- * The MathTS parser produces the node this module evaluates, so a unit
6
- * literal keeps its dimension. A bare `e` is the elementary charge.
7
- * Euler's number is `exp(x)`. A bare number, or an expression whose result is
8
- * dimensionless and contains no unit literal, is already in the caller's
9
- * unit. Anything else is an SI quantity: the caller converts it into the
10
- * declared unit when the dimensions agree.
5
+ * The MathTS parser produces the node this module reads. The number is the
6
+ * MathTS formula parser's, evaluated over the registered constants and the
7
+ * spliced unit literals; this module walks the same parse tree for the
8
+ * dimension and the cycle count only, so a unit literal keeps its dimension
9
+ * and there is one arithmetic. The scalar functions are the one table in
10
+ * `formula-contract.ts`, read for arity and dimension rule here and for the
11
+ * numeric body there. A bare `e` is the elementary charge. Euler's number is
12
+ * `exp(x)`. A bare number, or an expression whose result is dimensionless
13
+ * and contains no unit literal, is already in the caller's unit. Anything
14
+ * else is an SI quantity: the caller converts it into the declared unit when
15
+ * the dimensions agree.
11
16
  *
12
17
  * A unit literal is recognized only where it is glued to a number (`1km`,
13
18
  * `1h`, `1G`). A bare name is a constant (`h`, `G`, `c`), never that unit.
@@ -1 +1 @@
1
- {"version":3,"file":"binding-value.d.ts","sourceRoot":"","sources":["../../src/numerical/binding-value.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAUH,OAAO,EAA4B,KAAK,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAG1F,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EAOL,SAAS,EAET,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AAIjC,gKAAgK;AAChK,qBAAa,uBAAwB,SAAQ,SAAS;IACpD,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,+FAA+F;AAC/F,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAiFD,8EAA8E;AAC9E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,oEAAoE;IACpE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IACpC,6FAA6F;IAC7F,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAgQD,iFAAiF;AACjF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IACL,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnD,oGAAoG;IACpG,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC,GACA,YAAY,CAqDd;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAA;CAAE,GACzE,YAAY,CAuCd;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,kBAA+B,EACxC,IAAI,GAAE,QAAe,GACpB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;CAAE,CAc/E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAO3G"}
1
+ {"version":3,"file":"binding-value.d.ts","sourceRoot":"","sources":["../../src/numerical/binding-value.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAUH,OAAO,EAA4B,KAAK,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAG1F,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EAOL,SAAS,EAGT,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AAKjC,gKAAgK;AAChK,qBAAa,uBAAwB,SAAQ,SAAS;IACpD,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,+FAA+F;AAC/F,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAiFD,8EAA8E;AAC9E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,oEAAoE;IACpE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IACpC,6FAA6F;IAC7F,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AA0QD,iFAAiF;AACjF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IACL,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnD,oGAAoG;IACpG,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC,GACA,YAAY,CAuDd;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAA;CAAE,GACzE,YAAY,CAwCd;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,kBAA+B,EACxC,IAAI,GAAE,QAAe,GACpB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;CAAE,CAc/E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAO3G"}
@@ -2,12 +2,17 @@
2
2
  * A binding value: a bare number, a number with a unit, or an expression of
3
3
  * registered constants and unit literals (`pi/2`, `0.6*c`, `2*1km`).
4
4
  *
5
- * The MathTS parser produces the node this module evaluates, so a unit
6
- * literal keeps its dimension. A bare `e` is the elementary charge.
7
- * Euler's number is `exp(x)`. A bare number, or an expression whose result is
8
- * dimensionless and contains no unit literal, is already in the caller's
9
- * unit. Anything else is an SI quantity: the caller converts it into the
10
- * declared unit when the dimensions agree.
5
+ * The MathTS parser produces the node this module reads. The number is the
6
+ * MathTS formula parser's, evaluated over the registered constants and the
7
+ * spliced unit literals; this module walks the same parse tree for the
8
+ * dimension and the cycle count only, so a unit literal keeps its dimension
9
+ * and there is one arithmetic. The scalar functions are the one table in
10
+ * `formula-contract.ts`, read for arity and dimension rule here and for the
11
+ * numeric body there. A bare `e` is the elementary charge. Euler's number is
12
+ * `exp(x)`. A bare number, or an expression whose result is dimensionless
13
+ * and contains no unit literal, is already in the caller's unit. Anything
14
+ * else is an SI quantity: the caller converts it into the declared unit when
15
+ * the dimensions agree.
11
16
  *
12
17
  * A unit literal is recognized only where it is glued to a number (`1km`,
13
18
  * `1h`, `1G`). A bare name is a constant (`h`, `G`, `c`), never that unit.
@@ -24,9 +29,10 @@ import { naturalConstantOverrides } from '../dimensional/natural-units.js';
24
29
  import { CONSTANT_REGISTRY, constantRecord } from '../dimensional/symbolic-constants.js';
25
30
  import { divide, equals, format, multiply, power } from '../dimensional/algebra.js';
26
31
  import { DIMENSIONLESS, ENERGY, TEMPERATURE } from '../dimensional/types.js';
27
- import { AmbiguousUnitError, convertValue, parseUnit, readQuantityLiteral, readUnit, unitConventionNotes, UnitError, UnitRefusedError, } from '../dimensional/units.js';
28
- import { callBuiltinFunction, EulerNumberError, FormulaError } from './formula-contract.js';
29
- import { parseFormulaPNode, UnsupportedSyntaxError } from './formula-dimension.js';
32
+ import { AmbiguousUnitError, convertValue, parseUnit, readQuantityLiteral, readUnit, unitConventionNotes, UnitError, UnitRefusedError, UnknownUnitError, } from '../dimensional/units.js';
33
+ import { arityMessage, EulerNumberError, FormulaError, SCALAR_FUNCTIONS, unknownFunctionMessage } from './formula-contract.js';
34
+ import { constantExponent, parseFormulaPNode, UnsupportedSyntaxError } from './formula-dimension.js';
35
+ import { mathtsFormulaParser } from './formula-mathts.js';
30
36
  /** A value on a temperature slot has a dimension that is neither a temperature nor an energy, or a temperature was read onto a dimensionless slot. @internal */
31
37
  export class TemperatureBindingError extends UnitError {
32
38
  constructor(message) {
@@ -111,7 +117,8 @@ function boltzmannBindingScale(pending) {
111
117
  }
112
118
  return K_B_SI;
113
119
  }
114
- const GLUED_NUMBER = /(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/g;
120
+ /** A number glued to a unit; `spliceUnits` builds its own global copy. */
121
+ const GLUED_NUMBER = /(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/;
115
122
  function finite(raw, value) {
116
123
  if (!Number.isFinite(value))
117
124
  throw new BindingNumberError(`'${raw}' is not a finite number`);
@@ -131,10 +138,6 @@ function scopeFor(mode) {
131
138
  }
132
139
  return m;
133
140
  }
134
- /** A unit the parser recognized and refused, rather than a prefix that is not a unit. */
135
- function unitRefusal(e) {
136
- return e instanceof UnitRefusedError || e instanceof AmbiguousUnitError ? e : null;
137
- }
138
141
  /** The text has an operator, so it is an expression rather than a lone word. */
139
142
  const hasOperator = (text) => /[+\-*/^()]/.test(text);
140
143
  /** The longest unit expression at the start of `rest`, or null. */
@@ -157,10 +160,11 @@ function longestUnit(rest) {
157
160
  best = prefix;
158
161
  }
159
162
  catch (e) {
160
- const refused = unitRefusal(e);
161
- if (refused !== null)
162
- throw refused;
163
- // A longer prefix may still be a unit (`m` then `m/s`, `M` then `Msun`).
163
+ // An unknown unit at this length: a longer prefix may still be one
164
+ // (`m` then `m/s`, `M` then `Msun`). A refused or ambiguous unit, and
165
+ // anything that is not a unit error, propagates.
166
+ if (!(e instanceof UnknownUnitError))
167
+ throw e;
164
168
  }
165
169
  }
166
170
  return best;
@@ -201,138 +205,130 @@ function spliceUnits(src) {
201
205
  out += src.slice(last);
202
206
  return { expr: out, slots, notes };
203
207
  }
204
- function evalAst(node, scope, slots) {
208
+ /**
209
+ * An exponent is a dimensionless numeric constant (`2`, `-1`, `1/2`); its
210
+ * value raises the base's dimension. The number of the whole expression is
211
+ * MathTS's, so this is the one place a value is folded here, and it is the
212
+ * same folding the formula dimension checker uses.
213
+ */
214
+ function exponentValue(node, scope, slots) {
215
+ const exp = dimensionWalk(node, scope, slots);
216
+ const value = constantExponent(node);
217
+ if (!equals(exp.dim, DIMENSIONLESS) || value === undefined) {
218
+ throw new UnitError('an exponent must be a dimensionless number');
219
+ }
220
+ return value;
221
+ }
222
+ /**
223
+ * The dimension and cycle count of a parse tree, by the dimensional rules of
224
+ * each node and the one function table. No number is computed here except an
225
+ * exponent's; unknown names, unlike sums and dimensioned transcendental
226
+ * arguments are refused.
227
+ */
228
+ function dimensionWalk(node, scope, slots) {
205
229
  switch (node.kind) {
206
230
  case 'num':
207
- return { value: node.value, dim: DIMENSIONLESS, cycles: 0 };
231
+ return { dim: DIMENSIONLESS, cycles: 0 };
208
232
  case 'sym': {
209
233
  if (node.name === 'euler')
210
234
  throw new EulerNumberError();
211
- const slot = slots.get(node.name);
212
- if (slot !== undefined)
213
- return slot;
214
- const known = scope.get(node.name);
215
- if (known !== undefined)
216
- return known;
217
- throw new UnknownNameError(node.name);
218
- }
219
- case 'neg': {
220
- const a = evalAst(node.arg, scope, slots);
221
- return { value: -a.value, dim: a.dim, cycles: a.cycles };
235
+ const known = slots.get(node.name) ?? scope.get(node.name);
236
+ if (known === undefined)
237
+ throw new UnknownNameError(node.name);
238
+ return { dim: known.dim, cycles: known.cycles };
222
239
  }
240
+ case 'neg':
241
+ return dimensionWalk(node.arg, scope, slots);
223
242
  case 'op':
224
- return evalOp(node.op, node.args.map((a) => evalAst(a, scope, slots)));
243
+ return dimensionOfOp(node.op, node.args.map((a) => dimensionWalk(a, scope, slots)));
225
244
  case 'pow': {
226
- const base = evalAst(node.base, scope, slots);
227
- const exp = evalAst(node.exp, scope, slots);
228
- if (!equals(exp.dim, DIMENSIONLESS))
229
- throw new UnitError('an exponent must be dimensionless');
230
- return { value: Math.pow(base.value, exp.value), dim: power(base.dim, exp.value), cycles: base.cycles * exp.value };
245
+ const base = dimensionWalk(node.base, scope, slots);
246
+ const n = exponentValue(node.exp, scope, slots);
247
+ return { dim: power(base.dim, n), cycles: base.cycles * n };
231
248
  }
232
249
  case 'call':
233
- if (node.fn === 'euler')
234
- throw new EulerNumberError();
235
- return evalCall(node.fn, node.args.map((a) => evalAst(a, scope, slots)));
250
+ return dimensionOfCall(node.fn, node.args, scope, slots);
236
251
  }
237
252
  }
238
- function evalOp(op, args) {
239
- if (args.length === 0)
253
+ function dimensionOfOp(op, args) {
254
+ const first = args[0];
255
+ if (first === undefined)
240
256
  throw new UnitError(`cannot ${op}`);
241
257
  if (op === '+' || op === '-') {
242
- const first = args[0];
243
- if (args.length === 1) {
244
- return op === '-' ? { value: -first.value, dim: first.dim, cycles: first.cycles } : first;
245
- }
246
- let value = first.value;
247
258
  let cycles = first.cycles;
248
259
  for (const next of args.slice(1)) {
249
260
  if (!equals(first.dim, next.dim)) {
250
261
  throw new UnitError(`cannot ${op === '+' ? 'add' : 'subtract'} ${format(first.dim)} and ${format(next.dim)}`);
251
262
  }
252
- value = op === '+' ? value + next.value : value - next.value;
253
263
  // A sum of a cycle rate and a plain rate has no single cycle count.
254
264
  if (next.cycles !== cycles)
255
265
  cycles = Number.NaN;
256
266
  }
257
- return { value, dim: first.dim, cycles };
258
- }
259
- if (op === '*') {
260
- let value = 1;
261
- let dim = DIMENSIONLESS;
262
- let cycles = 0;
263
- for (const a of args) {
264
- value *= a.value;
265
- dim = multiply(dim, a.dim);
266
- cycles += a.cycles;
267
- }
268
- return { value, dim, cycles };
267
+ return { dim: first.dim, cycles };
269
268
  }
270
- let value = args[0].value;
271
- let dim = args[0].dim;
272
- let cycles = args[0].cycles;
273
- for (const next of args.slice(1)) {
274
- value /= next.value;
275
- dim = divide(dim, next.dim);
276
- cycles -= next.cycles;
269
+ let dim = op === '*' ? DIMENSIONLESS : first.dim;
270
+ let cycles = op === '*' ? 0 : first.cycles;
271
+ for (const a of op === '*' ? args : args.slice(1)) {
272
+ dim = op === '*' ? multiply(dim, a.dim) : divide(dim, a.dim);
273
+ cycles = op === '*' ? cycles + a.cycles : cycles - a.cycles;
277
274
  }
278
- return { value, dim, cycles };
275
+ return { dim, cycles };
279
276
  }
280
- function evalCall(fn, args) {
281
- if (fn === 'sqrt' || fn === 'cbrt') {
282
- if (args.length !== 1)
283
- throw new UnitError(`${fn} expected 1 argument`);
284
- const n = fn === 'sqrt' ? 0.5 : 1 / 3;
285
- const value = fn === 'sqrt' ? Math.sqrt(args[0].value) : Math.cbrt(args[0].value);
286
- return { value, dim: power(args[0].dim, n), cycles: args[0].cycles * n };
287
- }
288
- if (fn === 'abs') {
289
- if (args.length !== 1)
290
- throw new UnitError('abs expected 1 argument');
291
- return { value: Math.abs(args[0].value), dim: args[0].dim, cycles: args[0].cycles };
292
- }
293
- if (fn === 'pow') {
294
- if (args.length !== 2)
295
- throw new UnitError('pow expects 2 arguments');
296
- if (!equals(args[1].dim, DIMENSIONLESS))
297
- throw new UnitError('an exponent must be dimensionless');
298
- return {
299
- value: Math.pow(args[0].value, args[1].value),
300
- dim: power(args[0].dim, args[1].value),
301
- cycles: args[0].cycles * args[1].value,
302
- };
303
- }
304
- if (fn === 'atan2') {
305
- if (args.length !== 2)
306
- throw new UnitError('atan2 expects 2 arguments');
307
- if (!equals(args[0].dim, args[1].dim))
308
- throw new UnitError('atan2 arguments must have the same dimension');
309
- return { value: Math.atan2(args[0].value, args[1].value), dim: DIMENSIONLESS, cycles: 0 };
310
- }
311
- for (const a of args) {
312
- if (!equals(a.dim, DIMENSIONLESS))
313
- throw new UnitError(`${fn} expects a dimensionless argument`);
277
+ /** A call, by the one table's arity and dimension rule. */
278
+ function dimensionOfCall(fn, args, scope, slots) {
279
+ if (fn === 'euler')
280
+ throw new EulerNumberError();
281
+ const spec = SCALAR_FUNCTIONS[fn];
282
+ if (spec === undefined)
283
+ throw new UnitError(unknownFunctionMessage(fn));
284
+ if (args.length !== spec.arity)
285
+ throw new UnitError(arityMessage(fn, spec.arity));
286
+ const rule = spec.dimension;
287
+ const first = dimensionWalk(args[0], scope, slots);
288
+ switch (rule.kind) {
289
+ case 'root':
290
+ return { dim: power(first.dim, rule.power), cycles: first.cycles * rule.power };
291
+ case 'same':
292
+ return first;
293
+ case 'transcendental':
294
+ if (!equals(first.dim, DIMENSIONLESS))
295
+ throw new UnitError(`${fn} expects a dimensionless argument`);
296
+ return { dim: DIMENSIONLESS, cycles: 0 };
297
+ case 'power': {
298
+ const n = exponentValue(args[1], scope, slots);
299
+ return { dim: power(first.dim, n), cycles: first.cycles * n };
300
+ }
301
+ case 'ratio': {
302
+ const second = dimensionWalk(args[1], scope, slots);
303
+ if (!equals(first.dim, second.dim))
304
+ throw new UnitError(`${fn} arguments must have the same dimension`);
305
+ return { dim: DIMENSIONLESS, cycles: 0 };
306
+ }
314
307
  }
308
+ }
309
+ /**
310
+ * The number of a spliced expression: the MathTS formula parser over the
311
+ * registered constants and the unit slots. The dimension walk has already
312
+ * refused unknown names, so a failure here is a non-finite result.
313
+ */
314
+ function numberOf(raw, expr, scope, slots) {
315
+ const values = {};
316
+ for (const [name, qty] of scope)
317
+ values[name] = qty.value;
318
+ for (const [name, qty] of slots)
319
+ values[name] = qty.value;
315
320
  try {
316
- return { value: callBuiltinFunction(fn, args.map((a) => a.value)), dim: DIMENSIONLESS, cycles: 0 };
321
+ return mathtsFormulaParser.parse(expr).evaluate(values);
317
322
  }
318
323
  catch (e) {
319
324
  if (e instanceof FormulaError)
320
- throw new UnitError(e.message);
325
+ throw new BindingNumberError(`'${raw}' is not a finite number`);
321
326
  throw e;
322
327
  }
323
328
  }
324
329
  /** The literal path: a number with an optional unit, read exactly by the one unit reader. */
325
330
  function literalBinding(raw, reading) {
326
- let literal;
327
- try {
328
- literal = readQuantityLiteral(raw, reading);
329
- }
330
- catch (e) {
331
- const refused = unitRefusal(e);
332
- if (refused !== null)
333
- throw refused;
334
- throw e;
335
- }
331
+ const literal = readQuantityLiteral(raw, reading);
336
332
  if (literal === null)
337
333
  return null;
338
334
  return {
@@ -367,6 +363,10 @@ function declaredUnitReading(raw, target, reading) {
367
363
  catch (error) {
368
364
  if (error instanceof AmbiguousUnitError)
369
365
  throw error;
366
+ // A unit the reader could not match to the target is the "not this
367
+ // reading" outcome; anything that is not a unit error propagates.
368
+ if (!(error instanceof UnitError))
369
+ throw error;
370
370
  return undefined;
371
371
  }
372
372
  }
@@ -397,8 +397,11 @@ export function readNamedBinding(name, raw, opts) {
397
397
  try {
398
398
  pending.push({ name: sibling.name, read: readBinding(sibling.raw, { mode, reading }) });
399
399
  }
400
- catch {
401
- // A sibling that does not parse is that sibling's own error.
400
+ catch (error) {
401
+ // A sibling that does not read as a value is that sibling's own error,
402
+ // reported where it is read. A programming error propagates.
403
+ if (!(error instanceof UnitError))
404
+ throw error;
402
405
  }
403
406
  }
404
407
  const declaredDim = declared !== undefined && declared !== '' ? parseUnit(declared).dim : undefined;
@@ -464,9 +467,10 @@ export function readBinding(raw, opts) {
464
467
  }
465
468
  throw e;
466
469
  }
467
- let qty;
470
+ const scope = scopeFor(mode);
471
+ let shape;
468
472
  try {
469
- qty = evalAst(ast, scopeFor(mode), spliced.slots);
473
+ shape = dimensionWalk(ast, scope, spliced.slots);
470
474
  }
471
475
  catch (e) {
472
476
  if (e instanceof UnknownNameError && spliced.slots.size === 0 && !hasOperator(trimmed))
@@ -474,11 +478,11 @@ export function readBinding(raw, opts) {
474
478
  throw e;
475
479
  }
476
480
  return {
477
- value: finite(trimmed, qty.value),
478
- dimensioned: spliced.slots.size > 0 || !equals(qty.dim, DIMENSIONLESS),
479
- dimension: qty.dim,
481
+ value: finite(trimmed, numberOf(trimmed, spliced.expr, scope, spliced.slots)),
482
+ dimensioned: spliced.slots.size > 0 || !equals(shape.dim, DIMENSIONLESS),
483
+ dimension: shape.dim,
480
484
  notes: spliced.notes,
481
- cycles: qty.cycles,
485
+ cycles: shape.cycles,
482
486
  };
483
487
  }
484
488
  /**