universal-physics-tensor 0.47.0 → 1.0.1

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 (591) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +396 -383
  3. package/bin/upt.mjs +28 -22
  4. package/dist/atlas/benchmark/hybrid-retrieval.d.ts +108 -0
  5. package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -0
  6. package/dist/atlas/benchmark/hybrid-retrieval.js +241 -0
  7. package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -0
  8. package/dist/atlas/catalog-formal-ref.d.ts +24 -0
  9. package/dist/atlas/catalog-formal-ref.d.ts.map +1 -0
  10. package/dist/atlas/catalog-formal-ref.js +36 -0
  11. package/dist/atlas/catalog-formal-ref.js.map +1 -0
  12. package/dist/atlas/composition-table.d.ts +11 -46
  13. package/dist/atlas/composition-table.d.ts.map +1 -1
  14. package/dist/atlas/composition-table.js +7 -124
  15. package/dist/atlas/composition-table.js.map +1 -1
  16. package/dist/atlas/conventions.d.ts +4 -58
  17. package/dist/atlas/conventions.d.ts.map +1 -1
  18. package/dist/atlas/conventions.js +3 -88
  19. package/dist/atlas/conventions.js.map +1 -1
  20. package/dist/atlas/derive-evidence.d.ts +50 -3
  21. package/dist/atlas/derive-evidence.d.ts.map +1 -1
  22. package/dist/atlas/derive-evidence.js +73 -4
  23. package/dist/atlas/derive-evidence.js.map +1 -1
  24. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
  25. package/dist/atlas/diffusion/bridges-closure.js +5 -1
  26. package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
  27. package/dist/atlas/index.d.ts +9 -7
  28. package/dist/atlas/index.d.ts.map +1 -1
  29. package/dist/atlas/index.js +6 -5
  30. package/dist/atlas/index.js.map +1 -1
  31. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
  32. package/dist/atlas/oscillators/bridges-exact.js +6 -0
  33. package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
  34. package/dist/atlas/oscillators/bridges-limits.d.ts +2 -0
  35. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
  36. package/dist/atlas/oscillators/bridges-limits.js +20 -19
  37. package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
  38. package/dist/atlas/oscillators/limit-witnesses.d.ts +93 -0
  39. package/dist/atlas/oscillators/limit-witnesses.d.ts.map +1 -0
  40. package/dist/atlas/oscillators/limit-witnesses.js +152 -0
  41. package/dist/atlas/oscillators/limit-witnesses.js.map +1 -0
  42. package/dist/atlas/oscillators/models.d.ts +2 -1
  43. package/dist/atlas/oscillators/models.d.ts.map +1 -1
  44. package/dist/atlas/oscillators/models.js +4 -3
  45. package/dist/atlas/oscillators/models.js.map +1 -1
  46. package/dist/atlas/oscillators/norm-transport-witness.d.ts +37 -0
  47. package/dist/atlas/oscillators/norm-transport-witness.d.ts.map +1 -0
  48. package/dist/atlas/oscillators/norm-transport-witness.js +58 -0
  49. package/dist/atlas/oscillators/norm-transport-witness.js.map +1 -0
  50. package/dist/atlas/oscillators/norm-transport.d.ts +44 -0
  51. package/dist/atlas/oscillators/norm-transport.d.ts.map +1 -0
  52. package/dist/atlas/oscillators/norm-transport.js +66 -0
  53. package/dist/atlas/oscillators/norm-transport.js.map +1 -0
  54. package/dist/atlas/oscillators/norms.d.ts +11 -0
  55. package/dist/atlas/oscillators/norms.d.ts.map +1 -0
  56. package/dist/atlas/oscillators/norms.js +11 -0
  57. package/dist/atlas/oscillators/norms.js.map +1 -0
  58. package/dist/atlas/oscillators/pendulum-motion.d.ts +38 -0
  59. package/dist/atlas/oscillators/pendulum-motion.d.ts.map +1 -0
  60. package/dist/atlas/oscillators/pendulum-motion.js +122 -0
  61. package/dist/atlas/oscillators/pendulum-motion.js.map +1 -0
  62. package/dist/atlas/oscillators/phase-carriage.d.ts +38 -0
  63. package/dist/atlas/oscillators/phase-carriage.d.ts.map +1 -0
  64. package/dist/atlas/oscillators/phase-carriage.js +96 -0
  65. package/dist/atlas/oscillators/phase-carriage.js.map +1 -0
  66. package/dist/atlas/oscillators/phase-translation.d.ts +46 -0
  67. package/dist/atlas/oscillators/phase-translation.d.ts.map +1 -0
  68. package/dist/atlas/oscillators/phase-translation.js +178 -0
  69. package/dist/atlas/oscillators/phase-translation.js.map +1 -0
  70. package/dist/atlas/oscillators/position-translation.d.ts +59 -0
  71. package/dist/atlas/oscillators/position-translation.d.ts.map +1 -0
  72. package/dist/atlas/oscillators/position-translation.js +254 -0
  73. package/dist/atlas/oscillators/position-translation.js.map +1 -0
  74. package/dist/atlas/path-bound.d.ts +126 -9
  75. package/dist/atlas/path-bound.d.ts.map +1 -1
  76. package/dist/atlas/path-bound.js +372 -23
  77. package/dist/atlas/path-bound.js.map +1 -1
  78. package/dist/atlas/physjs-ref.d.ts +112 -0
  79. package/dist/atlas/physjs-ref.d.ts.map +1 -0
  80. package/dist/atlas/physjs-ref.js +842 -0
  81. package/dist/atlas/physjs-ref.js.map +1 -0
  82. package/dist/atlas/regime.d.ts +12 -136
  83. package/dist/atlas/regime.d.ts.map +1 -1
  84. package/dist/atlas/regime.js +8 -254
  85. package/dist/atlas/regime.js.map +1 -1
  86. package/dist/atlas/serialize.d.ts.map +1 -1
  87. package/dist/atlas/serialize.js +25 -0
  88. package/dist/atlas/serialize.js.map +1 -1
  89. package/dist/atlas/translation-registry.d.ts +22 -0
  90. package/dist/atlas/translation-registry.d.ts.map +1 -0
  91. package/dist/atlas/translation-registry.js +31 -0
  92. package/dist/atlas/translation-registry.js.map +1 -0
  93. package/dist/atlas/translation.d.ts +116 -0
  94. package/dist/atlas/translation.d.ts.map +1 -0
  95. package/dist/atlas/translation.js +34 -0
  96. package/dist/atlas/translation.js.map +1 -0
  97. package/dist/atlas/types.d.ts +74 -240
  98. package/dist/atlas/types.d.ts.map +1 -1
  99. package/dist/atlas/types.js +5 -37
  100. package/dist/atlas/types.js.map +1 -1
  101. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
  102. package/dist/atlas/waves/bridges-closure.js +4 -0
  103. package/dist/atlas/waves/bridges-closure.js.map +1 -1
  104. package/dist/atlas/waves/bridges.d.ts.map +1 -1
  105. package/dist/atlas/waves/bridges.js +3 -0
  106. package/dist/atlas/waves/bridges.js.map +1 -1
  107. package/dist/atlas/waves/models.js +1 -1
  108. package/dist/atlas/waves/models.js.map +1 -1
  109. package/dist/atlas/witness-dominance.d.ts +50 -0
  110. package/dist/atlas/witness-dominance.d.ts.map +1 -0
  111. package/dist/atlas/witness-dominance.js +86 -0
  112. package/dist/atlas/witness-dominance.js.map +1 -0
  113. package/dist/atlas/witness-specs.d.ts +30 -0
  114. package/dist/atlas/witness-specs.d.ts.map +1 -1
  115. package/dist/atlas/witness-specs.js +107 -0
  116. package/dist/atlas/witness-specs.js.map +1 -1
  117. package/dist/bridges/be53-yang-mills-confrontation.d.ts +81 -0
  118. package/dist/bridges/be53-yang-mills-confrontation.d.ts.map +1 -0
  119. package/dist/bridges/be53-yang-mills-confrontation.js +110 -0
  120. package/dist/bridges/be53-yang-mills-confrontation.js.map +1 -0
  121. package/dist/bridges/confrontations.d.ts +1 -1
  122. package/dist/bridges/confrontations.d.ts.map +1 -1
  123. package/dist/bridges/confrontations.js +291 -3
  124. package/dist/bridges/confrontations.js.map +1 -1
  125. package/dist/bridges/equations/be-13-einstein-trace.d.ts +2 -3
  126. package/dist/bridges/equations/be-13-einstein-trace.d.ts.map +1 -1
  127. package/dist/bridges/equations/be-13-einstein-trace.js +2 -3
  128. package/dist/bridges/equations/be-13-einstein-trace.js.map +1 -1
  129. package/dist/bridges/equations/be-38-mond.d.ts +7 -5
  130. package/dist/bridges/equations/be-38-mond.d.ts.map +1 -1
  131. package/dist/bridges/equations/be-38-mond.js +7 -5
  132. package/dist/bridges/equations/be-38-mond.js.map +1 -1
  133. package/dist/bridges/equations/be-53-yang-mills-beta.d.ts +21 -0
  134. package/dist/bridges/equations/be-53-yang-mills-beta.d.ts.map +1 -1
  135. package/dist/bridges/equations/be-53-yang-mills-beta.js +12 -0
  136. package/dist/bridges/equations/be-53-yang-mills-beta.js.map +1 -1
  137. package/dist/bridges/evaluator-inputs.d.ts +21 -0
  138. package/dist/bridges/evaluator-inputs.d.ts.map +1 -0
  139. package/dist/bridges/evaluator-inputs.js +75 -0
  140. package/dist/bridges/evaluator-inputs.js.map +1 -0
  141. package/dist/bridges/evaluators.d.ts +38 -0
  142. package/dist/bridges/evaluators.d.ts.map +1 -1
  143. package/dist/bridges/evaluators.js +41 -15
  144. package/dist/bridges/evaluators.js.map +1 -1
  145. package/dist/bridges/gravitational-lensing.d.ts +1 -1
  146. package/dist/bridges/gravitational-lensing.js +1 -1
  147. package/dist/bridges/index.d.ts +1 -1
  148. package/dist/bridges/index.d.ts.map +1 -1
  149. package/dist/bridges/index.js +13 -13
  150. package/dist/bridges/index.js.map +1 -1
  151. package/dist/bridges/observations/types.d.ts +110 -2
  152. package/dist/bridges/observations/types.d.ts.map +1 -1
  153. package/dist/bridges/observations/types.js +29 -0
  154. package/dist/bridges/observations/types.js.map +1 -1
  155. package/dist/bridges/perihelion-precession.d.ts +1 -1
  156. package/dist/bridges/perihelion-precession.js +1 -1
  157. package/dist/canonical/canonical-equation.d.ts +1 -1
  158. package/dist/canonical/canonical-equation.d.ts.map +1 -1
  159. package/dist/canonical/entries/atomic.d.ts.map +1 -1
  160. package/dist/canonical/entries/atomic.js +32 -10
  161. package/dist/canonical/entries/atomic.js.map +1 -1
  162. package/dist/canonical/entries/dimensional-classics.js +2 -2
  163. package/dist/canonical/entries/dimensional-classics.js.map +1 -1
  164. package/dist/canonical/entries/mechanics.d.ts.map +1 -1
  165. package/dist/canonical/entries/mechanics.js +10 -6
  166. package/dist/canonical/entries/mechanics.js.map +1 -1
  167. package/dist/canonical/entries/relativity.d.ts.map +1 -1
  168. package/dist/canonical/entries/relativity.js +41 -8
  169. package/dist/canonical/entries/relativity.js.map +1 -1
  170. package/dist/canonical/entries/thermo-nuclear-cosmo.js +5 -5
  171. package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
  172. package/dist/canonical/linkage.d.ts.map +1 -1
  173. package/dist/canonical/linkage.js +14 -8
  174. package/dist/canonical/linkage.js.map +1 -1
  175. package/dist/canonical/normal-form.d.ts +17 -0
  176. package/dist/canonical/normal-form.d.ts.map +1 -1
  177. package/dist/canonical/normal-form.js +21 -4
  178. package/dist/canonical/normal-form.js.map +1 -1
  179. package/dist/cases/brownian-sphere.d.ts +68 -0
  180. package/dist/cases/brownian-sphere.d.ts.map +1 -0
  181. package/dist/cases/brownian-sphere.js +353 -0
  182. package/dist/cases/brownian-sphere.js.map +1 -0
  183. package/dist/cases/damped-resonator.d.ts +23 -0
  184. package/dist/cases/damped-resonator.d.ts.map +1 -0
  185. package/dist/cases/damped-resonator.js +224 -0
  186. package/dist/cases/damped-resonator.js.map +1 -0
  187. package/dist/cases/index.d.ts +11 -0
  188. package/dist/cases/index.d.ts.map +1 -0
  189. package/dist/cases/index.js +29 -0
  190. package/dist/cases/index.js.map +1 -0
  191. package/dist/cases/kepler-rv.d.ts +13 -0
  192. package/dist/cases/kepler-rv.d.ts.map +1 -0
  193. package/dist/cases/kepler-rv.js +168 -0
  194. package/dist/cases/kepler-rv.js.map +1 -0
  195. package/dist/cases/lumped-cooling.d.ts +46 -0
  196. package/dist/cases/lumped-cooling.d.ts.map +1 -0
  197. package/dist/cases/lumped-cooling.js +261 -0
  198. package/dist/cases/lumped-cooling.js.map +1 -0
  199. package/dist/cases/quadrature.d.ts +14 -0
  200. package/dist/cases/quadrature.d.ts.map +1 -0
  201. package/dist/cases/quadrature.js +41 -0
  202. package/dist/cases/quadrature.js.map +1 -0
  203. package/dist/cases/resistor-noise.d.ts +14 -0
  204. package/dist/cases/resistor-noise.d.ts.map +1 -0
  205. package/dist/cases/resistor-noise.js +210 -0
  206. package/dist/cases/resistor-noise.js.map +1 -0
  207. package/dist/cases/skin-depth.d.ts +21 -0
  208. package/dist/cases/skin-depth.d.ts.map +1 -0
  209. package/dist/cases/skin-depth.js +174 -0
  210. package/dist/cases/skin-depth.js.map +1 -0
  211. package/dist/cases/types.d.ts +115 -0
  212. package/dist/cases/types.d.ts.map +1 -0
  213. package/dist/cases/types.js +20 -0
  214. package/dist/cases/types.js.map +1 -0
  215. package/dist/cli/commands/_atlas-map.d.ts +409 -0
  216. package/dist/cli/commands/_atlas-map.d.ts.map +1 -0
  217. package/dist/cli/commands/_atlas-map.js +1014 -0
  218. package/dist/cli/commands/_atlas-map.js.map +1 -0
  219. package/dist/cli/commands/_atlas-route.d.ts +111 -0
  220. package/dist/cli/commands/_atlas-route.d.ts.map +1 -0
  221. package/dist/cli/commands/_atlas-route.js +140 -0
  222. package/dist/cli/commands/_atlas-route.js.map +1 -0
  223. package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
  224. package/dist/cli/commands/_discovery-opts.js +10 -1
  225. package/dist/cli/commands/_discovery-opts.js.map +1 -1
  226. package/dist/cli/commands/atlas.d.ts +20 -0
  227. package/dist/cli/commands/atlas.d.ts.map +1 -1
  228. package/dist/cli/commands/atlas.js +333 -19
  229. package/dist/cli/commands/atlas.js.map +1 -1
  230. package/dist/cli/commands/audit.d.ts.map +1 -1
  231. package/dist/cli/commands/audit.js +14 -5
  232. package/dist/cli/commands/audit.js.map +1 -1
  233. package/dist/cli/commands/axes.js +4 -4
  234. package/dist/cli/commands/candidates.d.ts.map +1 -1
  235. package/dist/cli/commands/candidates.js +6 -5
  236. package/dist/cli/commands/candidates.js.map +1 -1
  237. package/dist/cli/commands/canonical.d.ts.map +1 -1
  238. package/dist/cli/commands/canonical.js +41 -12
  239. package/dist/cli/commands/canonical.js.map +1 -1
  240. package/dist/cli/commands/confront.d.ts.map +1 -1
  241. package/dist/cli/commands/confront.js +210 -28
  242. package/dist/cli/commands/confront.js.map +1 -1
  243. package/dist/cli/commands/connectors.d.ts.map +1 -1
  244. package/dist/cli/commands/connectors.js +11 -10
  245. package/dist/cli/commands/connectors.js.map +1 -1
  246. package/dist/cli/commands/coverage.js +3 -3
  247. package/dist/cli/commands/derive.d.ts.map +1 -1
  248. package/dist/cli/commands/derive.js +22 -10
  249. package/dist/cli/commands/derive.js.map +1 -1
  250. package/dist/cli/commands/discover.d.ts.map +1 -1
  251. package/dist/cli/commands/discover.js +149 -32
  252. package/dist/cli/commands/discover.js.map +1 -1
  253. package/dist/cli/commands/eval.d.ts.map +1 -1
  254. package/dist/cli/commands/eval.js +76 -17
  255. package/dist/cli/commands/eval.js.map +1 -1
  256. package/dist/cli/commands/evaluate.d.ts +30 -0
  257. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  258. package/dist/cli/commands/evaluate.js +440 -25
  259. package/dist/cli/commands/evaluate.js.map +1 -1
  260. package/dist/cli/commands/explain.d.ts.map +1 -1
  261. package/dist/cli/commands/explain.js +38 -11
  262. package/dist/cli/commands/explain.js.map +1 -1
  263. package/dist/cli/commands/frontier.d.ts +3 -0
  264. package/dist/cli/commands/frontier.d.ts.map +1 -0
  265. package/dist/cli/commands/frontier.js +28 -0
  266. package/dist/cli/commands/frontier.js.map +1 -0
  267. package/dist/cli/commands/ground.d.ts.map +1 -1
  268. package/dist/cli/commands/ground.js +37 -12
  269. package/dist/cli/commands/ground.js.map +1 -1
  270. package/dist/cli/commands/index.d.ts +5 -0
  271. package/dist/cli/commands/index.d.ts.map +1 -1
  272. package/dist/cli/commands/index.js +5 -0
  273. package/dist/cli/commands/index.js.map +1 -1
  274. package/dist/cli/commands/map.d.ts +8 -0
  275. package/dist/cli/commands/map.d.ts.map +1 -1
  276. package/dist/cli/commands/map.js +401 -64
  277. package/dist/cli/commands/map.js.map +1 -1
  278. package/dist/cli/commands/metric.d.ts +3 -0
  279. package/dist/cli/commands/metric.d.ts.map +1 -0
  280. package/dist/cli/commands/metric.js +136 -0
  281. package/dist/cli/commands/metric.js.map +1 -0
  282. package/dist/cli/commands/path.d.ts +109 -1
  283. package/dist/cli/commands/path.d.ts.map +1 -1
  284. package/dist/cli/commands/path.js +1019 -109
  285. package/dist/cli/commands/path.js.map +1 -1
  286. package/dist/cli/commands/predict.d.ts.map +1 -1
  287. package/dist/cli/commands/predict.js +6 -5
  288. package/dist/cli/commands/predict.js.map +1 -1
  289. package/dist/cli/commands/priority.d.ts.map +1 -1
  290. package/dist/cli/commands/priority.js +4 -3
  291. package/dist/cli/commands/priority.js.map +1 -1
  292. package/dist/cli/commands/probe.d.ts +7 -0
  293. package/dist/cli/commands/probe.d.ts.map +1 -1
  294. package/dist/cli/commands/probe.js +234 -52
  295. package/dist/cli/commands/probe.js.map +1 -1
  296. package/dist/cli/commands/recover.d.ts.map +1 -1
  297. package/dist/cli/commands/recover.js +17 -6
  298. package/dist/cli/commands/recover.js.map +1 -1
  299. package/dist/cli/commands/regime.d.ts +1 -1
  300. package/dist/cli/commands/regime.d.ts.map +1 -1
  301. package/dist/cli/commands/regime.js +134 -33
  302. package/dist/cli/commands/regime.js.map +1 -1
  303. package/dist/cli/commands/retrieve.d.ts +3 -0
  304. package/dist/cli/commands/retrieve.d.ts.map +1 -0
  305. package/dist/cli/commands/retrieve.js +65 -0
  306. package/dist/cli/commands/retrieve.js.map +1 -0
  307. package/dist/cli/commands/search.d.ts +3 -0
  308. package/dist/cli/commands/search.d.ts.map +1 -0
  309. package/dist/cli/commands/search.js +70 -0
  310. package/dist/cli/commands/search.js.map +1 -0
  311. package/dist/cli/commands/symbolic.d.ts.map +1 -1
  312. package/dist/cli/commands/symbolic.js +112 -21
  313. package/dist/cli/commands/symbolic.js.map +1 -1
  314. package/dist/cli/commands/testplan.d.ts +3 -0
  315. package/dist/cli/commands/testplan.d.ts.map +1 -0
  316. package/dist/cli/commands/testplan.js +131 -0
  317. package/dist/cli/commands/testplan.js.map +1 -0
  318. package/dist/cli/conventions.d.ts +22 -0
  319. package/dist/cli/conventions.d.ts.map +1 -0
  320. package/dist/cli/conventions.js +48 -0
  321. package/dist/cli/conventions.js.map +1 -0
  322. package/dist/cli/euler-guard.d.ts +9 -0
  323. package/dist/cli/euler-guard.d.ts.map +1 -0
  324. package/dist/cli/euler-guard.js +11 -0
  325. package/dist/cli/euler-guard.js.map +1 -0
  326. package/dist/cli/eval-numbers.d.ts +26 -0
  327. package/dist/cli/eval-numbers.d.ts.map +1 -0
  328. package/dist/cli/eval-numbers.js +49 -0
  329. package/dist/cli/eval-numbers.js.map +1 -0
  330. package/dist/cli/expr-print.d.ts +25 -0
  331. package/dist/cli/expr-print.d.ts.map +1 -0
  332. package/dist/cli/expr-print.js +123 -0
  333. package/dist/cli/expr-print.js.map +1 -0
  334. package/dist/cli/graphs.d.ts +26 -0
  335. package/dist/cli/graphs.d.ts.map +1 -1
  336. package/dist/cli/graphs.js +19 -0
  337. package/dist/cli/graphs.js.map +1 -1
  338. package/dist/cli/main.d.ts +4 -10
  339. package/dist/cli/main.d.ts.map +1 -1
  340. package/dist/cli/main.js +370 -167
  341. package/dist/cli/main.js.map +1 -1
  342. package/dist/cli/map-evidence.d.ts +47 -0
  343. package/dist/cli/map-evidence.d.ts.map +1 -0
  344. package/dist/cli/map-evidence.js +53 -0
  345. package/dist/cli/map-evidence.js.map +1 -0
  346. package/dist/cli/output.d.ts +21 -1
  347. package/dist/cli/output.d.ts.map +1 -1
  348. package/dist/cli/output.js +5 -1
  349. package/dist/cli/output.js.map +1 -1
  350. package/dist/{composition → cli}/poster-source.d.ts +3 -2
  351. package/dist/cli/poster-source.d.ts.map +1 -0
  352. package/dist/{composition → cli}/poster-source.js +2 -1
  353. package/dist/cli/poster-source.js.map +1 -0
  354. package/dist/cli/record-reach.d.ts +44 -0
  355. package/dist/cli/record-reach.d.ts.map +1 -0
  356. package/dist/cli/record-reach.js +228 -0
  357. package/dist/cli/record-reach.js.map +1 -0
  358. package/dist/cli/record-tables.d.ts +38 -0
  359. package/dist/cli/record-tables.d.ts.map +1 -0
  360. package/dist/cli/record-tables.js +110 -0
  361. package/dist/cli/record-tables.js.map +1 -0
  362. package/dist/cli/record.d.ts +141 -0
  363. package/dist/cli/record.d.ts.map +1 -0
  364. package/dist/cli/record.js +612 -0
  365. package/dist/cli/record.js.map +1 -0
  366. package/dist/cli/search-index.d.ts +56 -0
  367. package/dist/cli/search-index.d.ts.map +1 -0
  368. package/dist/cli/search-index.js +190 -0
  369. package/dist/cli/search-index.js.map +1 -0
  370. package/dist/cli/statuses.d.ts +25 -0
  371. package/dist/cli/statuses.d.ts.map +1 -0
  372. package/dist/cli/statuses.js +276 -0
  373. package/dist/cli/statuses.js.map +1 -0
  374. package/dist/cli/version.d.ts +8 -0
  375. package/dist/cli/version.d.ts.map +1 -1
  376. package/dist/cli/version.js +32 -1
  377. package/dist/cli/version.js.map +1 -1
  378. package/dist/cli-api.d.ts +33 -15
  379. package/dist/cli-api.d.ts.map +1 -1
  380. package/dist/cli-api.js +31 -11
  381. package/dist/cli-api.js.map +1 -1
  382. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  383. package/dist/composition/bridge-analysis.js +2 -1
  384. package/dist/composition/bridge-analysis.js.map +1 -1
  385. package/dist/composition/canonical-compare.d.ts +36 -11
  386. package/dist/composition/canonical-compare.d.ts.map +1 -1
  387. package/dist/composition/canonical-compare.js +424 -56
  388. package/dist/composition/canonical-compare.js.map +1 -1
  389. package/dist/composition/canonical-graph.d.ts +2 -2
  390. package/dist/composition/canonical-graph.js +3 -3
  391. package/dist/composition/canonical-graph.js.map +1 -1
  392. package/dist/composition/canonical-prefactors.d.ts +24 -1
  393. package/dist/composition/canonical-prefactors.d.ts.map +1 -1
  394. package/dist/composition/canonical-prefactors.js +97 -1
  395. package/dist/composition/canonical-prefactors.js.map +1 -1
  396. package/dist/composition/compose-symbolic.js +1 -1
  397. package/dist/composition/compose-symbolic.js.map +1 -1
  398. package/dist/composition/compose.d.ts.map +1 -1
  399. package/dist/composition/compose.js +17 -9
  400. package/dist/composition/compose.js.map +1 -1
  401. package/dist/composition/composition-recovery.d.ts +47 -0
  402. package/dist/composition/composition-recovery.d.ts.map +1 -0
  403. package/dist/composition/composition-recovery.js +77 -0
  404. package/dist/composition/composition-recovery.js.map +1 -0
  405. package/dist/composition/consequence.d.ts +39 -0
  406. package/dist/composition/consequence.d.ts.map +1 -1
  407. package/dist/composition/consequence.js +37 -0
  408. package/dist/composition/consequence.js.map +1 -1
  409. package/dist/composition/discovery.d.ts +20 -0
  410. package/dist/composition/discovery.d.ts.map +1 -1
  411. package/dist/composition/discovery.js +27 -5
  412. package/dist/composition/discovery.js.map +1 -1
  413. package/dist/composition/edge.d.ts +1 -1
  414. package/dist/composition/edge.d.ts.map +1 -1
  415. package/dist/composition/edge.js.map +1 -1
  416. package/dist/composition/edges/_catalog-helpers.d.ts +4 -0
  417. package/dist/composition/edges/_catalog-helpers.d.ts.map +1 -1
  418. package/dist/composition/edges/_catalog-helpers.js +15 -0
  419. package/dist/composition/edges/_catalog-helpers.js.map +1 -1
  420. package/dist/composition/edges/calibration.d.ts.map +1 -1
  421. package/dist/composition/edges/calibration.js +57 -0
  422. package/dist/composition/edges/calibration.js.map +1 -1
  423. package/dist/composition/edges/catalog-fields.d.ts.map +1 -1
  424. package/dist/composition/edges/catalog-fields.js +2 -1
  425. package/dist/composition/edges/catalog-fields.js.map +1 -1
  426. package/dist/composition/edges/catalog-gravitation-cosmology.d.ts.map +1 -1
  427. package/dist/composition/edges/catalog-gravitation-cosmology.js +2 -1
  428. package/dist/composition/edges/catalog-gravitation-cosmology.js.map +1 -1
  429. package/dist/composition/edges/catalog-quantum.d.ts.map +1 -1
  430. package/dist/composition/edges/catalog-quantum.js +26 -0
  431. package/dist/composition/edges/catalog-quantum.js.map +1 -1
  432. package/dist/composition/edges/catalog-tranche.d.ts.map +1 -1
  433. package/dist/composition/edges/catalog-tranche.js +2 -1
  434. package/dist/composition/edges/catalog-tranche.js.map +1 -1
  435. package/dist/composition/expr-eval.d.ts.map +1 -1
  436. package/dist/composition/expr-eval.js +4 -1
  437. package/dist/composition/expr-eval.js.map +1 -1
  438. package/dist/composition/expr-simplify.js +1 -1
  439. package/dist/composition/expr-simplify.js.map +1 -1
  440. package/dist/composition/frontier-account.d.ts +78 -0
  441. package/dist/composition/frontier-account.d.ts.map +1 -0
  442. package/dist/composition/frontier-account.js +127 -0
  443. package/dist/composition/frontier-account.js.map +1 -0
  444. package/dist/composition/graph-viz.d.ts +7 -22
  445. package/dist/composition/graph-viz.d.ts.map +1 -1
  446. package/dist/composition/graph-viz.js +4 -27
  447. package/dist/composition/graph-viz.js.map +1 -1
  448. package/dist/composition/grounding.d.ts +49 -0
  449. package/dist/composition/grounding.d.ts.map +1 -1
  450. package/dist/composition/grounding.js +38 -0
  451. package/dist/composition/grounding.js.map +1 -1
  452. package/dist/composition/index.d.ts +0 -2
  453. package/dist/composition/index.d.ts.map +1 -1
  454. package/dist/composition/index.js +1 -1
  455. package/dist/composition/index.js.map +1 -1
  456. package/dist/composition/probe/expression-gaps.d.ts +27 -0
  457. package/dist/composition/probe/expression-gaps.d.ts.map +1 -0
  458. package/dist/composition/probe/expression-gaps.js +47 -0
  459. package/dist/composition/probe/expression-gaps.js.map +1 -0
  460. package/dist/composition/probe/frontier.d.ts +2 -1
  461. package/dist/composition/probe/frontier.d.ts.map +1 -1
  462. package/dist/composition/probe/frontier.js +3 -2
  463. package/dist/composition/probe/frontier.js.map +1 -1
  464. package/dist/composition/probe/index.d.ts +4 -1
  465. package/dist/composition/probe/index.d.ts.map +1 -1
  466. package/dist/composition/probe/index.js +3 -1
  467. package/dist/composition/probe/index.js.map +1 -1
  468. package/dist/composition/probe/pipeline.d.ts +2 -0
  469. package/dist/composition/probe/pipeline.d.ts.map +1 -1
  470. package/dist/composition/probe/pipeline.js +6 -2
  471. package/dist/composition/probe/pipeline.js.map +1 -1
  472. package/dist/composition/probe/problem.d.ts +7 -0
  473. package/dist/composition/probe/problem.d.ts.map +1 -1
  474. package/dist/composition/probe/problem.js +15 -5
  475. package/dist/composition/probe/problem.js.map +1 -1
  476. package/dist/composition/probe/search-budget.d.ts.map +1 -1
  477. package/dist/composition/probe/search-budget.js +6 -2
  478. package/dist/composition/probe/search-budget.js.map +1 -1
  479. package/dist/composition/probe/study.d.ts +340 -0
  480. package/dist/composition/probe/study.d.ts.map +1 -0
  481. package/dist/composition/probe/study.js +1519 -0
  482. package/dist/composition/probe/study.js.map +1 -0
  483. package/dist/composition/proposed-bridges.js +1 -1
  484. package/dist/composition/proposed-bridges.js.map +1 -1
  485. package/dist/composition/quantities.d.ts +4 -16
  486. package/dist/composition/quantities.d.ts.map +1 -1
  487. package/dist/composition/quantities.js +4 -16
  488. package/dist/composition/quantities.js.map +1 -1
  489. package/dist/composition/retrodiction.d.ts.map +1 -1
  490. package/dist/composition/retrodiction.js +6 -2
  491. package/dist/composition/retrodiction.js.map +1 -1
  492. package/dist/composition/uncertainty.d.ts +1 -1
  493. package/dist/composition/uncertainty.d.ts.map +1 -1
  494. package/dist/composition/user-equation.d.ts +87 -14
  495. package/dist/composition/user-equation.d.ts.map +1 -1
  496. package/dist/composition/user-equation.js +266 -59
  497. package/dist/composition/user-equation.js.map +1 -1
  498. package/dist/core/constants.d.ts +9 -4
  499. package/dist/core/constants.d.ts.map +1 -1
  500. package/dist/core/constants.js +9 -4
  501. package/dist/core/constants.js.map +1 -1
  502. package/dist/core/types.d.ts +1 -1
  503. package/dist/core/types.d.ts.map +1 -1
  504. package/dist/core/types.js +2 -1
  505. package/dist/core/types.js.map +1 -1
  506. package/dist/dimensional/curvature.d.ts +7 -56
  507. package/dist/dimensional/curvature.d.ts.map +1 -1
  508. package/dist/dimensional/curvature.js +7 -76
  509. package/dist/dimensional/curvature.js.map +1 -1
  510. package/dist/dimensional/dimension-spec.d.ts +7 -1
  511. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  512. package/dist/dimensional/dimension-spec.js +131 -3
  513. package/dist/dimensional/dimension-spec.js.map +1 -1
  514. package/dist/dimensional/formula-names.d.ts +30 -0
  515. package/dist/dimensional/formula-names.d.ts.map +1 -0
  516. package/dist/dimensional/formula-names.js +37 -0
  517. package/dist/dimensional/formula-names.js.map +1 -0
  518. package/dist/dimensional/natural-units.d.ts +33 -0
  519. package/dist/dimensional/natural-units.d.ts.map +1 -0
  520. package/dist/dimensional/natural-units.js +58 -0
  521. package/dist/dimensional/natural-units.js.map +1 -0
  522. package/dist/{composition → dimensional}/symbolic-constants.d.ts +21 -2
  523. package/dist/dimensional/symbolic-constants.d.ts.map +1 -0
  524. package/dist/dimensional/symbolic-constants.js +116 -0
  525. package/dist/dimensional/symbolic-constants.js.map +1 -0
  526. package/dist/dimensional/unit-convention.d.ts +30 -0
  527. package/dist/dimensional/unit-convention.d.ts.map +1 -0
  528. package/dist/dimensional/unit-convention.js +60 -0
  529. package/dist/dimensional/unit-convention.js.map +1 -0
  530. package/dist/dimensional/units.d.ts +43 -0
  531. package/dist/dimensional/units.d.ts.map +1 -0
  532. package/dist/dimensional/units.js +197 -0
  533. package/dist/dimensional/units.js.map +1 -0
  534. package/dist/index.d.ts +8 -4
  535. package/dist/index.d.ts.map +1 -1
  536. package/dist/index.js +7 -3
  537. package/dist/index.js.map +1 -1
  538. package/dist/numerical/bianchi-residual.d.ts +55 -0
  539. package/dist/numerical/bianchi-residual.d.ts.map +1 -0
  540. package/dist/numerical/bianchi-residual.js +79 -0
  541. package/dist/numerical/bianchi-residual.js.map +1 -0
  542. package/dist/numerical/binding-value.d.ts +67 -0
  543. package/dist/numerical/binding-value.d.ts.map +1 -0
  544. package/dist/numerical/binding-value.js +347 -0
  545. package/dist/numerical/binding-value.js.map +1 -0
  546. package/dist/numerical/connection-lowering-helpers.d.ts.map +1 -1
  547. package/dist/numerical/connection-lowering-helpers.js +13 -26
  548. package/dist/numerical/connection-lowering-helpers.js.map +1 -1
  549. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  550. package/dist/numerical/curvature-lowering-helpers.js +9 -0
  551. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  552. package/dist/numerical/float64-engine.d.ts.map +1 -1
  553. package/dist/numerical/float64-engine.js +23 -16
  554. package/dist/numerical/float64-engine.js.map +1 -1
  555. package/dist/numerical/formula-dimension.d.ts +7 -0
  556. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  557. package/dist/numerical/formula-dimension.js +23 -6
  558. package/dist/numerical/formula-dimension.js.map +1 -1
  559. package/dist/numerical/formula-mathts.d.ts.map +1 -1
  560. package/dist/numerical/formula-mathts.js +68 -6
  561. package/dist/numerical/formula-mathts.js.map +1 -1
  562. package/dist/numerical/formula.d.ts +27 -0
  563. package/dist/numerical/formula.d.ts.map +1 -1
  564. package/dist/numerical/formula.js +68 -6
  565. package/dist/numerical/formula.js.map +1 -1
  566. package/dist/numerical/spacetime-metrics.d.ts +243 -0
  567. package/dist/numerical/spacetime-metrics.d.ts.map +1 -0
  568. package/dist/numerical/spacetime-metrics.js +1056 -0
  569. package/dist/numerical/spacetime-metrics.js.map +1 -0
  570. package/dist/relations/composition-table.d.ts +61 -0
  571. package/dist/relations/composition-table.d.ts.map +1 -0
  572. package/dist/relations/composition-table.js +140 -0
  573. package/dist/relations/composition-table.js.map +1 -0
  574. package/dist/relations/conventions.d.ts +63 -0
  575. package/dist/relations/conventions.d.ts.map +1 -0
  576. package/dist/relations/conventions.js +93 -0
  577. package/dist/relations/conventions.js.map +1 -0
  578. package/dist/relations/regime.d.ts +159 -0
  579. package/dist/relations/regime.d.ts.map +1 -0
  580. package/dist/relations/regime.js +304 -0
  581. package/dist/relations/regime.js.map +1 -0
  582. package/dist/relations/types.d.ts +259 -0
  583. package/dist/relations/types.d.ts.map +1 -0
  584. package/dist/relations/types.js +37 -0
  585. package/dist/relations/types.js.map +1 -0
  586. package/package.json +166 -163
  587. package/dist/composition/poster-source.d.ts.map +0 -1
  588. package/dist/composition/poster-source.js.map +0 -1
  589. package/dist/composition/symbolic-constants.d.ts.map +0 -1
  590. package/dist/composition/symbolic-constants.js +0 -65
  591. package/dist/composition/symbolic-constants.js.map +0 -1
@@ -15,9 +15,9 @@
15
15
  *
16
16
  * INTERNAL — not on the public surface.
17
17
  *
18
- * @module composition/symbolic-constants
18
+ * @module dimensional/symbolic-constants
19
19
  */
20
- import type { Dimension } from '../dimensional/types.js';
20
+ import type { Dimension } from './types.js';
21
21
  /** A registered constant leaf: SI value + SI dimension. @internal */
22
22
  interface NamedConstantValue {
23
23
  readonly value: number;
@@ -30,5 +30,24 @@ interface NamedConstantValue {
30
30
  * exactly (same IEEE-754 primitives).
31
31
  */
32
32
  export declare const CONSTANTS: Readonly<Record<string, NamedConstantValue>>;
33
+ /** What a registered constant is, its SI unit, and where its value comes from (audit I10). @internal */
34
+ export interface ConstantProvenance {
35
+ readonly meaning: string;
36
+ /** The SI unit, in the syntax `parseUnit` reads; a test checks it against the registered dimension. */
37
+ readonly unit: string;
38
+ readonly source: string;
39
+ }
40
+ /**
41
+ * A spelled-out multiple of π written as one symbol (`pi`, `6pi`). `2pi`,
42
+ * `4pi` and `8pi` are also registered in {@link CONSTANTS}; this covers the
43
+ * multiples an encoder spelled out and did not register (`6pi` in
44
+ * CE-perihelion-precession). The structural normal form already drops these.
45
+ * The numeric evaluator has to resolve them too, or a comparison treats `6pi`
46
+ * as a free symbol and never aligns the formula.
47
+ * @internal
48
+ */
49
+ export declare function piMultipleValue(name: string): number | undefined;
50
+ /** One row per {@link CONSTANTS} key; a test holds the two key sets equal. @internal */
51
+ export declare const CONSTANT_PROVENANCE: Readonly<Record<string, ConstantProvenance>>;
33
52
  export {};
34
53
  //# sourceMappingURL=symbolic-constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbolic-constants.d.ts","sourceRoot":"","sources":["../../src/dimensional/symbolic-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAgC5C,qEAAqE;AACrE,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;CACzB;AAED;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAsBlE,CAAC;AAEF,wGAAwG;AACxG,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,uGAAuG;IACvG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMhE;AAED,wFAAwF;AACxF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAwB5E,CAAC"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Symbolic-composition constant registry (v0.12 symbolic composition).
3
+ *
4
+ * The physical constants and named numeric factors that a bridge's
5
+ * `symbolic` ExprNode may reference as leaf symbols, with the SI value AND
6
+ * the SI dimension. SI VALUES import from `core/constants.js` — the single
7
+ * source the bridge evaluators also resolve to — so a symbolic form and its
8
+ * numeric evaluator agree bit-for-bit (the drift guard binds this end-to-end;
9
+ * Adam A-7 / Eve EVE-3).
10
+ *
11
+ * Numeric-literal leaves (`'2'`, `'3'`) are NOT registered here — `evalExpr`
12
+ * resolves them via `Number(name)` and they are implicitly dimensionless.
13
+ * Non-base-10 tokens (`'8pi'`, `'4pi'`, `'ln2'`) MUST be here (Adam A-1 —
14
+ * `Number('8pi')` is `NaN`).
15
+ *
16
+ * INTERNAL — not on the public surface.
17
+ *
18
+ * @module dimensional/symbolic-constants
19
+ */
20
+ import { ACTION, CHARGE, DIMENSIONLESS, VELOCITY, } from './types.js';
21
+ import { C_SI, E_SI, G_SI, GM_SUN_SI, HBAR_SI, H_SI, K_B_SI, B_WIEN_SI } from '../core/constants.js';
22
+ const dim = (L = 0, M = 0, T = 0, Theta = 0) => ({
23
+ L,
24
+ M,
25
+ T,
26
+ I: 0,
27
+ Theta,
28
+ N: 0,
29
+ J: 0,
30
+ });
31
+ /** Newton's constant G — [L³ M⁻¹ T⁻²]. */
32
+ const GRAV = dim(3, -1, -2);
33
+ /** Boltzmann constant k_B — [L² M T⁻² Θ⁻¹] (energy / temperature). */
34
+ const BOLTZMANN = dim(2, 1, -2, -1);
35
+ /** Vacuum permittivity ε₀ — [I² T⁴ M⁻¹ L⁻³] (F/m). Carries a current
36
+ * dimension, so it cannot use the (L,M,T,Θ) `dim` helper. */
37
+ const PERMITTIVITY = { L: -3, M: -1, T: 4, I: 2, Theta: 0, N: 0, J: 0 };
38
+ /** Stefan–Boltzmann σ — [M T⁻³ Θ⁻⁴] (W m⁻² K⁻⁴). Derived:
39
+ * σ = 2π⁵k_B⁴ / (15 c² h³). */
40
+ const STEFAN_BOLTZMANN = dim(0, 1, -3, -4);
41
+ /** Wien displacement constant b — [L·Θ] (m·K). */
42
+ const WIEN = dim(1, 0, 0, 1);
43
+ /**
44
+ * Constant leaves a `symbolic` ExprNode may reference. Keys are the leaf
45
+ * symbol `name`s; values carry the SI magnitude and dimension. `ln2`/`8pi`/
46
+ * `4pi` reproduce the evaluators' `Math.LN2` / `8*Math.PI` / `4*Math.PI`
47
+ * exactly (same IEEE-754 primitives).
48
+ */
49
+ export const CONSTANTS = {
50
+ hbar: { value: HBAR_SI, dim: ACTION },
51
+ h: { value: H_SI, dim: ACTION },
52
+ c: { value: C_SI, dim: VELOCITY },
53
+ G: { value: G_SI, dim: GRAV },
54
+ k_B: { value: K_B_SI, dim: BOLTZMANN },
55
+ ln2: { value: Math.LN2, dim: DIMENSIONLESS },
56
+ '8pi': { value: 8 * Math.PI, dim: DIMENSIONLESS },
57
+ '4pi': { value: 4 * Math.PI, dim: DIMENSIONLESS },
58
+ '2pi': { value: 2 * Math.PI, dim: DIMENSIONLESS },
59
+ // Extension constants for the canonical-equation L1 entries (Coulomb, Bohr,
60
+ // Stefan–Boltzmann). CODATA 2018 values.
61
+ // ISO 80000 / CODATA: a bare e is the elementary charge. Eccentricity is
62
+ // one_minus_e_sq. The canonical dimension guard still refuses to bake a
63
+ // dimensionless governing name e.
64
+ e: { value: E_SI, dim: CHARGE },
65
+ epsilon_0: { value: 8.8541878128e-12, dim: PERMITTIVITY },
66
+ sigma_sb: { value: 5.670374419e-8, dim: STEFAN_BOLTZMANN },
67
+ b: { value: B_WIEN_SI, dim: WIEN },
68
+ // IAU 2015 nominal solar parameter. M_sun in eval stays the rounded kilogram M_SUN_SI.
69
+ GM_sun: { value: GM_SUN_SI, dim: dim(3, 0, -2) },
70
+ Msun_iau: { value: GM_SUN_SI / G_SI, dim: dim(0, 1, 0) },
71
+ };
72
+ /**
73
+ * A spelled-out multiple of π written as one symbol (`pi`, `6pi`). `2pi`,
74
+ * `4pi` and `8pi` are also registered in {@link CONSTANTS}; this covers the
75
+ * multiples an encoder spelled out and did not register (`6pi` in
76
+ * CE-perihelion-precession). The structural normal form already drops these.
77
+ * The numeric evaluator has to resolve them too, or a comparison treats `6pi`
78
+ * as a free symbol and never aligns the formula.
79
+ * @internal
80
+ */
81
+ export function piMultipleValue(name) {
82
+ const m = /^(\d*)pi$/.exec(name);
83
+ if (m === null)
84
+ return undefined;
85
+ const n = m[1] === '' ? 1 : Number(m[1]);
86
+ if (!Number.isInteger(n) || n < 0)
87
+ return undefined;
88
+ return n * Math.PI;
89
+ }
90
+ /** One row per {@link CONSTANTS} key; a test holds the two key sets equal. @internal */
91
+ export const CONSTANT_PROVENANCE = {
92
+ hbar: { meaning: 'reduced Planck constant h/(2π)', unit: 'J*s', source: 'exact H_SI/(2π) (core/constants.ts HBAR_SI)' },
93
+ h: { meaning: 'Planck constant', unit: 'J*s', source: 'exact SI, 2019 redefinition (core/constants.ts H_SI)' },
94
+ c: { meaning: 'speed of light in vacuum', unit: 'm/s', source: 'exact SI (core/constants.ts C_SI)' },
95
+ G: { meaning: 'Newtonian gravitational constant', unit: 'm^3/(kg*s^2)', source: 'CODATA 2018 (core/constants.ts G_SI)' },
96
+ k_B: { meaning: 'Boltzmann constant', unit: 'J/K', source: 'exact SI, 2019 redefinition (core/constants.ts K_B_SI)' },
97
+ ln2: { meaning: 'natural logarithm of 2', unit: '1', source: 'mathematical constant (Math.LN2)' },
98
+ '8pi': { meaning: '8π', unit: '1', source: 'mathematical constant (8·Math.PI)' },
99
+ '4pi': { meaning: '4π', unit: '1', source: 'mathematical constant (4·Math.PI)' },
100
+ '2pi': { meaning: '2π', unit: '1', source: 'mathematical constant (2·Math.PI)' },
101
+ e: { meaning: 'elementary charge', unit: 'C', source: 'exact SI, 2019 redefinition (core/constants.ts E_SI)' },
102
+ epsilon_0: { meaning: 'vacuum permittivity', unit: 'F/m', source: 'CODATA 2018 (this table)' },
103
+ sigma_sb: { meaning: 'Stefan–Boltzmann constant', unit: 'W/(m^2*K^4)', source: 'CODATA 2018 (this table)' },
104
+ b: { meaning: 'Wien displacement constant', unit: 'm*K', source: 'CODATA 2018 (core/constants.ts B_WIEN_SI)' },
105
+ GM_sun: {
106
+ meaning: 'IAU nominal solar gravitational parameter (GM)☉',
107
+ unit: 'm^3/s^2',
108
+ source: 'IAU 2015 Resolution B3 (core/constants.ts GM_SUN_SI)',
109
+ },
110
+ Msun_iau: {
111
+ meaning: 'IAU solar mass (GM)☉/G, the mass that reproduces GM_sun with G_SI',
112
+ unit: 'kg',
113
+ source: 'GM_SUN_SI/G_SI (core/constants.ts)',
114
+ },
115
+ };
116
+ //# sourceMappingURL=symbolic-constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbolic-constants.js","sourceRoot":"","sources":["../../src/dimensional/symbolic-constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Per-quantity unit convention for the quantities whose dimension does not
3
+ * decide the unit. Energy nodes here are GeV; the rest of the energy graph
4
+ * is joules. Information nodes here are bits or nats; both are
5
+ * dimensionless, and a bit is ln 2 nat. Entropy in J/K is dimensionally
6
+ * distinct and tagged so a bit is not accepted as that entropy.
7
+ *
8
+ * A name absent from this table is read in SI, which is what
9
+ * {@link readBinding} already returns. Representative magnitudes in
10
+ * `representative-values.ts` stay in SI joules and are not read through
11
+ * this table.
12
+ *
13
+ * @module dimensional/unit-convention
14
+ * @internal
15
+ */
16
+ /** Quantity name → the unit its evaluator speaks. @internal */
17
+ export declare const QUANTITY_CONVENTION_UNIT: ReadonlyMap<string, string>;
18
+ /** The unit a quantity's evaluator speaks, or undefined when that unit is SI. @internal */
19
+ export declare function quantityConventionUnit(name: string): string | undefined;
20
+ /** Scale a quantity's evaluator-unit value into SI. @internal */
21
+ export declare function conventionScaleToSI(name: string): number;
22
+ /**
23
+ * Multiply a value in `from`'s convention to obtain the value in `to`'s
24
+ * convention. Two untagged names, or two names with the same unit, are 1.
25
+ * An untagged name is SI. Two tagged names whose dimensions differ throw:
26
+ * copying the number would type-check and be meaningless.
27
+ * @internal
28
+ */
29
+ export declare function conventionFactor(from: string, to: string): number;
30
+ //# sourceMappingURL=unit-convention.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unit-convention.d.ts","sourceRoot":"","sources":["../../src/dimensional/unit-convention.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,+DAA+D;AAC/D,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAU/D,CAAC;AAEH,2FAA2F;AAC3F,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEvE;AAED,iEAAiE;AACjE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAajE"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Per-quantity unit convention for the quantities whose dimension does not
3
+ * decide the unit. Energy nodes here are GeV; the rest of the energy graph
4
+ * is joules. Information nodes here are bits or nats; both are
5
+ * dimensionless, and a bit is ln 2 nat. Entropy in J/K is dimensionally
6
+ * distinct and tagged so a bit is not accepted as that entropy.
7
+ *
8
+ * A name absent from this table is read in SI, which is what
9
+ * {@link readBinding} already returns. Representative magnitudes in
10
+ * `representative-values.ts` stay in SI joules and are not read through
11
+ * this table.
12
+ *
13
+ * @module dimensional/unit-convention
14
+ * @internal
15
+ */
16
+ import { equals } from './algebra.js';
17
+ import { parseUnit } from './units.js';
18
+ /** Quantity name → the unit its evaluator speaks. @internal */
19
+ export const QUANTITY_CONVENTION_UNIT = new Map([
20
+ ['vacuum-expectation-value', 'GeV'],
21
+ ['dark-fermion-mass', 'GeV'],
22
+ ['planck-mass-energy', 'GeV'],
23
+ ['inflation-hubble-energy', 'GeV'],
24
+ ['intrinsic-information', 'bit'],
25
+ ['subsystem-entanglement-entropy', 'nat'],
26
+ ['modular-hamiltonian-variation', 'nat'],
27
+ ['entanglement-entropy-variation', 'nat'],
28
+ ['wormhole-entanglement-entropy', 'J/K'],
29
+ ]);
30
+ /** The unit a quantity's evaluator speaks, or undefined when that unit is SI. @internal */
31
+ export function quantityConventionUnit(name) {
32
+ return QUANTITY_CONVENTION_UNIT.get(name);
33
+ }
34
+ /** Scale a quantity's evaluator-unit value into SI. @internal */
35
+ export function conventionScaleToSI(name) {
36
+ const unit = QUANTITY_CONVENTION_UNIT.get(name);
37
+ return unit === undefined ? 1 : parseUnit(unit).scale;
38
+ }
39
+ /**
40
+ * Multiply a value in `from`'s convention to obtain the value in `to`'s
41
+ * convention. Two untagged names, or two names with the same unit, are 1.
42
+ * An untagged name is SI. Two tagged names whose dimensions differ throw:
43
+ * copying the number would type-check and be meaningless.
44
+ * @internal
45
+ */
46
+ export function conventionFactor(from, to) {
47
+ const fromUnit = QUANTITY_CONVENTION_UNIT.get(from);
48
+ const toUnit = QUANTITY_CONVENTION_UNIT.get(to);
49
+ if (fromUnit === undefined && toUnit === undefined)
50
+ return 1;
51
+ if (fromUnit === toUnit)
52
+ return 1;
53
+ const fromParsed = fromUnit === undefined ? null : parseUnit(fromUnit);
54
+ const toParsed = toUnit === undefined ? null : parseUnit(toUnit);
55
+ if (fromParsed !== null && toParsed !== null && !equals(fromParsed.dim, toParsed.dim)) {
56
+ throw new Error(`unit convention: '${from}' is ${fromUnit} and '${to}' is ${toUnit}; the dimensions differ`);
57
+ }
58
+ return (fromParsed?.scale ?? 1) / (toParsed?.scale ?? 1);
59
+ }
60
+ //# sourceMappingURL=unit-convention.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unit-convention.js","sourceRoot":"","sources":["../../src/dimensional/unit-convention.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,+DAA+D;AAC/D,MAAM,CAAC,MAAM,wBAAwB,GAAgC,IAAI,GAAG,CAAC;IAC3E,CAAC,0BAA0B,EAAE,KAAK,CAAC;IACnC,CAAC,mBAAmB,EAAE,KAAK,CAAC;IAC5B,CAAC,oBAAoB,EAAE,KAAK,CAAC;IAC7B,CAAC,yBAAyB,EAAE,KAAK,CAAC;IAClC,CAAC,uBAAuB,EAAE,KAAK,CAAC;IAChC,CAAC,gCAAgC,EAAE,KAAK,CAAC;IACzC,CAAC,+BAA+B,EAAE,KAAK,CAAC;IACxC,CAAC,gCAAgC,EAAE,KAAK,CAAC;IACzC,CAAC,+BAA+B,EAAE,KAAK,CAAC;CACzC,CAAC,CAAC;AAEH,2FAA2F;AAC3F,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,OAAO,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,IAAI,GAAG,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;AACxD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,EAAU;IACvD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,wBAAwB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChD,IAAI,QAAQ,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IAC7D,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,UAAU,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACtF,MAAM,IAAI,KAAK,CACb,qBAAqB,IAAI,QAAQ,QAAQ,SAAS,EAAE,QAAQ,MAAM,yBAAyB,CAC5F,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,43 @@
1
+ import type { Dimension } from './types.js';
2
+ /** A unit, as a scale to SI base units and a dimension. @internal */
3
+ export interface ParsedUnit {
4
+ readonly scale: number;
5
+ readonly dim: Dimension;
6
+ /** `'celsius'` only for a lone `degC`, which is affine and needs a reading. */
7
+ readonly affine?: 'celsius';
8
+ }
9
+ /** Thrown for any input that does not parse as a value with a known unit. @internal */
10
+ export declare class UnitError extends Error {
11
+ constructor(message: string);
12
+ }
13
+ /**
14
+ * Spellings that convert correctly and still mean something else to a reader.
15
+ * `myr` is a milliyear, `Msun` is `M_SUN_SI`, bare `G` is the gauss, bare `T`
16
+ * is the tesla, and bare `A` is the ampere rather than the angstrom.
17
+ * @internal
18
+ */
19
+ export declare function unitConventionNotes(given: string): string[];
20
+ /** Parse a unit expression; the empty string is dimensionless. @internal */
21
+ export declare function parseUnit(text: string): ParsedUnit;
22
+ /** How a temperature value is read: as a point on the scale, or as a difference. @internal */
23
+ export type TemperatureReading = 'absolute' | 'difference';
24
+ /**
25
+ * Convert `raw` (`<number>[unit]`) into `target` (a unit expression). A bare
26
+ * number is taken to be in `target` already. The dimensions must agree.
27
+ *
28
+ * @returns the value in `target`, and the unit the user gave (`''` for none).
29
+ * @internal
30
+ */
31
+ export declare function convertValue(raw: string, target: string, reading?: TemperatureReading): {
32
+ value: number;
33
+ given: string;
34
+ };
35
+ /** The dimension of a declared unit expression. @internal */
36
+ export declare function unitDimension(unit: string): Dimension;
37
+ /** The tables conversion reads, for the CLI record's fingerprint (`src/cli/record-tables.ts`). @internal */
38
+ export declare function unitTables(): {
39
+ units: ReadonlyMap<string, readonly [number, Dimension, boolean]>;
40
+ prefixes: ReadonlyMap<string, number>;
41
+ celsiusOffsetK: number;
42
+ };
43
+ //# sourceMappingURL=units.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"units.d.ts","sourceRoot":"","sources":["../../src/dimensional/units.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,qEAAqE;AACrE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;CAC7B;AAED,uFAAuF;AACvF,qBAAa,SAAU,SAAQ,KAAK;IAClC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AA0FD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAe3D;AAED,4EAA4E;AAC5E,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAYlD;AAED,8FAA8F;AAC9F,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE3D;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,kBAA+B,GACvC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAelC;AAED,6DAA6D;AAC7D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAErD;AAED,4GAA4G;AAC5G,wBAAgB,UAAU,IAAI;IAC5B,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAClE,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,cAAc,EAAE,MAAM,CAAC;CACxB,CAEA"}
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Unit parsing for numeric inputs: `1um`, `25degC`, `1 kohm`, `3.8e-16 kg/m^3`.
3
+ *
4
+ * A unit is a product of factors, each `symbol[^n]`, joined by `*`, `·` or a
5
+ * space; everything after a single `/` is the denominator (`W/(m*K)` and
6
+ * `W/m*K` both mean W·m⁻¹·K⁻¹). An exact symbol is matched before a prefixed
7
+ * one, so `min` is a minute, `Pa` a pascal and `mm` a millimetre.
8
+ *
9
+ * Temperature in °C is affine, so it is accepted only alone and only with an
10
+ * explicit reading: an ABSOLUTE temperature adds 273.15 K; a temperature
11
+ * DIFFERENCE (an uncertainty, an interval) does not. °F is refused rather than
12
+ * converted.
13
+ *
14
+ * An exact symbol wins over a prefix: `T` is the tesla and `Ts` is a
15
+ * terasecond; `G` is the gauss and `GPa` is a gigapascal. `AU` is the same
16
+ * exact metre count as `au`. `Msun` is `M_SUN_SI` kilograms; `Msun_iau` is
17
+ * `GM_SUN_SI / G_SI`. `myr` is a milliyear because `m` is the SI prefix.
18
+ * `eV` takes an SI prefix, so `GeV` is 10⁹ eV in joules. `nat` is the
19
+ * coherent information unit (scale 1); `bit` is ln 2 nat. Neither takes a
20
+ * prefix.
21
+ *
22
+ * @module dimensional/units
23
+ */
24
+ import { equals, format, multiply, power } from './algebra.js';
25
+ import { C_SI, E_SI, G_SI, GM_SUN_SI, M_SUN_SI } from '../core/constants.js';
26
+ /** Thrown for any input that does not parse as a value with a known unit. @internal */
27
+ export class UnitError extends Error {
28
+ constructor(message) {
29
+ super(message);
30
+ this.name = 'UnitError';
31
+ }
32
+ }
33
+ const D = (p) => ({ L: 0, M: 0, T: 0, I: 0, Theta: 0, N: 0, J: 0, ...p });
34
+ const JOULE = D({ L: 2, M: 1, T: -2 });
35
+ const DIMENSIONLESS = D({});
36
+ /** symbol → [scale to SI base, dimension, takes an SI prefix]. */
37
+ const UNITS = new Map([
38
+ ['m', [1, D({ L: 1 }), true]],
39
+ ['g', [1e-3, D({ M: 1 }), true]],
40
+ ['s', [1, D({ T: 1 }), true]],
41
+ ['K', [1, D({ Theta: 1 }), true]],
42
+ ['A', [1, D({ I: 1 }), true]],
43
+ ['mol', [1, D({ N: 1 }), true]],
44
+ ['Hz', [1, D({ T: -1 }), true]],
45
+ ['N', [1, D({ L: 1, M: 1, T: -2 }), true]],
46
+ ['Pa', [1, D({ L: -1, M: 1, T: -2 }), true]],
47
+ ['J', [1, JOULE, true]],
48
+ ['W', [1, D({ L: 2, M: 1, T: -3 }), true]],
49
+ ['C', [1, D({ T: 1, I: 1 }), true]],
50
+ ['V', [1, D({ L: 2, M: 1, T: -3, I: -1 }), true]],
51
+ ['ohm', [1, D({ L: 2, M: 1, T: -3, I: -2 }), true]],
52
+ ['Ω', [1, D({ L: 2, M: 1, T: -3, I: -2 }), true]],
53
+ ['S', [1, D({ L: -2, M: -1, T: 3, I: 2 }), true]],
54
+ ['F', [1, D({ L: -2, M: -1, T: 4, I: 2 }), true]],
55
+ ['eV', [E_SI, JOULE, true]],
56
+ // Information. A nat is the coherent dimensionless unit; a bit is ln 2 nat.
57
+ // Exact, so neither takes a prefix (`kbit` is not a kilobit).
58
+ ['nat', [1, DIMENSIONLESS, false]],
59
+ ['bit', [Math.LN2, DIMENSIONLESS, false]],
60
+ ['rad', [1, DIMENSIONLESS, true]],
61
+ ['deg', [Math.PI / 180, DIMENSIONLESS, false]],
62
+ ['min', [60, D({ T: 1 }), false]],
63
+ ['h', [3600, D({ T: 1 }), false]],
64
+ ['d', [86400, D({ T: 1 }), false]],
65
+ // The Julian year, the year the orbital evaluators take.
66
+ ['yr', [365.25 * 86400, D({ T: 1 }), true]],
67
+ ['au', [149597870700, D({ L: 1 }), false]],
68
+ ['AU', [149597870700, D({ L: 1 }), false]],
69
+ // The solar mass the evaluators use, not the IAU nominal value.
70
+ ['Msun', [M_SUN_SI, D({ M: 1 }), false]],
71
+ // GM☉/G, so G × Msun_iau is the IAU solar mass parameter.
72
+ ['Msun_iau', [GM_SUN_SI / G_SI, D({ M: 1 }), false]],
73
+ // Tesla. Exact, so it is not a prefix: `Ts` is a terasecond, `T` is a tesla.
74
+ ['T', [1, D({ M: 1, T: -2, I: -1 }), false]],
75
+ // Gauss = 10⁻⁴ T. Exact, so `GPa` stays gigapascal (prefix G + Pa) and bare `G` is gauss.
76
+ ['G', [1e-4, D({ M: 1, T: -2, I: -1 }), false]],
77
+ ['bar', [1e5, D({ L: -1, M: 1, T: -2 }), true]],
78
+ ['atm', [101325, D({ L: -1, M: 1, T: -2 }), false]],
79
+ ['angstrom', [1e-10, D({ L: 1 }), false]],
80
+ ['Angstrom', [1e-10, D({ L: 1 }), false]],
81
+ ['Å', [1e-10, D({ L: 1 }), false]],
82
+ // IAU-style parsec; the prefix applies, so `Mpc` is a megaparsec.
83
+ ['pc', [3.0856775814913673e16, D({ L: 1 }), true]],
84
+ ['ly', [C_SI * 365.25 * 86400, D({ L: 1 }), false]],
85
+ ]);
86
+ const CELSIUS_OFFSET_K = 273.15;
87
+ const PREFIXES = new Map([
88
+ ['Y', 1e24], ['Z', 1e21], ['E', 1e18], ['P', 1e15], ['T', 1e12], ['G', 1e9], ['M', 1e6], ['k', 1e3],
89
+ ['h', 1e2], ['da', 1e1], ['d', 1e-1], ['c', 1e-2], ['m', 1e-3], ['u', 1e-6], ['µ', 1e-6], ['μ', 1e-6],
90
+ ['n', 1e-9], ['p', 1e-12], ['f', 1e-15], ['a', 1e-18], ['z', 1e-21], ['y', 1e-24],
91
+ ]);
92
+ function parseSymbol(sym) {
93
+ const exact = UNITS.get(sym);
94
+ if (exact !== undefined)
95
+ return [exact[0], exact[1]];
96
+ for (const [p, f] of PREFIXES) {
97
+ if (!sym.startsWith(p))
98
+ continue;
99
+ const base = UNITS.get(sym.slice(p.length));
100
+ if (base !== undefined && base[2])
101
+ return [f * base[0], base[1]];
102
+ }
103
+ throw new UnitError(`unknown unit '${sym}'`);
104
+ }
105
+ function parseFactors(text, sign) {
106
+ let scale = 1;
107
+ let dim = DIMENSIONLESS;
108
+ for (const f of text.split(/[*·\s]+/).filter((x) => x.length > 0)) {
109
+ const m = /^([^\^]+)(?:\^([+-]?\d+))?$/.exec(f);
110
+ if (m === null)
111
+ throw new UnitError(`cannot read unit factor '${f}'`);
112
+ const n = sign * (m[2] === undefined ? 1 : Number(m[2]));
113
+ const [s, d] = parseSymbol(m[1]);
114
+ scale *= s ** n;
115
+ dim = multiply(dim, power(d, n));
116
+ }
117
+ return { scale, dim };
118
+ }
119
+ /**
120
+ * Spellings that convert correctly and still mean something else to a reader.
121
+ * `myr` is a milliyear, `Msun` is `M_SUN_SI`, bare `G` is the gauss, bare `T`
122
+ * is the tesla, and bare `A` is the ampere rather than the angstrom.
123
+ * @internal
124
+ */
125
+ export function unitConventionNotes(given) {
126
+ const notes = [];
127
+ const symbols = given.split(/[*·/\s^0-9()+-]+/).filter((s) => s.length > 0);
128
+ if (symbols.includes('myr')) {
129
+ notes.push('myr is a milliyear (the SI prefix m on yr = 0.001 yr), not a million years; a million years is Myr');
130
+ }
131
+ if (symbols.includes('Msun')) {
132
+ notes.push(`Msun is ${M_SUN_SI} kg (M_SUN_SI), not GM☉/G; G×Msun is about 3.0e-4 high versus the IAU GM☉. Use the unit Msun_iau, or the eval name GM_sun, for GM_SUN_SI`);
133
+ }
134
+ if (symbols.includes('G'))
135
+ notes.push('bare G is the gauss (1e-4 T); GPa is still a gigapascal');
136
+ if (symbols.includes('T'))
137
+ notes.push('bare T is the tesla; Ts is a terasecond');
138
+ if (symbols.includes('A'))
139
+ notes.push('bare A is the ampere, not the angstrom; write angstrom or Å for 10^-10 m');
140
+ return notes;
141
+ }
142
+ /** Parse a unit expression; the empty string is dimensionless. @internal */
143
+ export function parseUnit(text) {
144
+ const t = text.trim();
145
+ if (t === '' || t === '1')
146
+ return { scale: 1, dim: DIMENSIONLESS };
147
+ if (t === 'degC' || t === '°C')
148
+ return { scale: 1, dim: D({ Theta: 1 }), affine: 'celsius' };
149
+ if (/deg ?F|°F/.test(t))
150
+ throw new UnitError('Fahrenheit is not accepted; give K or degC');
151
+ if (/degC|°C/.test(t))
152
+ throw new UnitError('degC is affine and cannot be part of a compound unit; give K');
153
+ const parts = t.split('/');
154
+ if (parts.length > 2)
155
+ throw new UnitError(`'${t}' has more than one '/'; put the whole denominator after one '/'`);
156
+ const num = parseFactors(parts[0], 1);
157
+ if (parts.length === 1)
158
+ return num;
159
+ const den = parseFactors(parts[1].replace(/^\((.*)\)$/, '$1'), -1);
160
+ return { scale: num.scale * den.scale, dim: multiply(num.dim, den.dim) };
161
+ }
162
+ /**
163
+ * Convert `raw` (`<number>[unit]`) into `target` (a unit expression). A bare
164
+ * number is taken to be in `target` already. The dimensions must agree.
165
+ *
166
+ * @returns the value in `target`, and the unit the user gave (`''` for none).
167
+ * @internal
168
+ */
169
+ export function convertValue(raw, target, reading = 'absolute') {
170
+ const m = /^\s*([+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?)\s*(.*?)\s*$/.exec(raw);
171
+ if (m === null)
172
+ throw new UnitError(`'${raw}' is not a number with an optional unit`);
173
+ const v = Number(m[1]);
174
+ const given = m[2];
175
+ if (!Number.isFinite(v))
176
+ throw new UnitError(`'${raw}' is not a finite number`);
177
+ if (given === '')
178
+ return { value: v, given };
179
+ const from = parseUnit(given);
180
+ const to = parseUnit(target);
181
+ if (to.affine !== undefined)
182
+ throw new UnitError(`a declared unit cannot be affine ('${target}')`);
183
+ if (!equals(from.dim, to.dim)) {
184
+ throw new UnitError(`'${given}' is ${format(from.dim)}, but this input is ${format(to.dim)} (${target || 'dimensionless'})`);
185
+ }
186
+ const offset = from.affine === 'celsius' && reading === 'absolute' ? CELSIUS_OFFSET_K : 0;
187
+ return { value: (v * from.scale + offset) / to.scale, given };
188
+ }
189
+ /** The dimension of a declared unit expression. @internal */
190
+ export function unitDimension(unit) {
191
+ return parseUnit(unit).dim;
192
+ }
193
+ /** The tables conversion reads, for the CLI record's fingerprint (`src/cli/record-tables.ts`). @internal */
194
+ export function unitTables() {
195
+ return { units: UNITS, prefixes: PREFIXES, celsiusOffsetK: CELSIUS_OFFSET_K };
196
+ }
197
+ //# sourceMappingURL=units.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"units.js","sourceRoot":"","sources":["../../src/dimensional/units.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -33,7 +33,7 @@ export { BRIDGE_EQUATIONS } from './bridges/index.js';
33
33
  export type { BridgeEquationEntry, BridgeEquationStatus, BridgeIssueSeverity, BridgeIssueFixable, KnownIssue, } from './bridges/index.js';
34
34
  export { evaluateGravitationalLensing, type GravitationalLensingInputs, type GravitationalLensingResult, evaluatePerihelionPrecession, type PerihelionPrecessionInputs, type PerihelionPrecessionResult, evaluateQuantumHall, VON_KLITZING_SI, type QuantumHallInputs, type QuantumHallResult, evaluateCasimir, type CasimirInputs, type CasimirResult, evaluateUnruh, type UnruhInputs, type UnruhResult, evaluateJohnsonNyquist, type JohnsonNyquistInputs, type JohnsonNyquistResult, evaluateACJosephson, JOSEPHSON_CONSTANT_SI, type ACJosephsonInputs, type ACJosephsonResult, evaluateFractionalQH, type FractionalQHInputs, type FractionalQHResult, evaluateWiedemannFranz, LORENZ_NUMBER_SI, type WiedemannFranzInputs, type WiedemannFranzResult, evaluateBCSGap, BCS_GAP_RATIO, type BCSGapInputs, type BCSGapResult, evaluateChandrasekharMass, LANE_EMDEN_OMEGA3, type ChandrasekharInputs, type ChandrasekharResult, evaluateEddingtonLuminosity, THOMSON_CROSS_SECTION_SI, type EddingtonInputs, type EddingtonResult, evaluateJeansMass, type JeansInputs, type JeansResult, } from './bridges/index.js';
35
35
  export { BRIDGE_EVALUATORS, evaluateBridge } from './bridges/evaluators.js';
36
- export type { EvaluatorSpec } from './bridges/evaluators.js';
36
+ export type { EvaluatorSpec, EvaluatorParameter, ParameterAlternate, GeometryRole } from './bridges/evaluators.js';
37
37
  export { BridgeEquations } from './bridges/bridge-equations.js';
38
38
  export { christoffel } from './dimensional/connection.js';
39
39
  export type { CovariantDerivativeNode } from './dimensional/validator.js';
@@ -41,7 +41,7 @@ export { ricci } from './dimensional/curvature.js';
41
41
  export type { RicciTensorNode } from './dimensional/validator.js';
42
42
  export { einstein } from './dimensional/curvature.js';
43
43
  export type { EinsteinTensorNode } from './dimensional/validator.js';
44
- export { bianchiResidual } from './dimensional/curvature.js';
44
+ export { bianchiResidual } from './numerical/bianchi-residual.js';
45
45
  export type { BianchiResidualNode } from './dimensional/validator.js';
46
46
  export { verifyKillingEquation, checkKillingEquation, evaluateConservedCharge, } from './numerical/killing.js';
47
47
  export type { KillingEquationOptions, KillingEquationCheck, ChristoffelAccess, } from './numerical/killing.js';
@@ -128,12 +128,16 @@ export { describeGrounding } from './composition/grounding.js';
128
128
  export type { CandidateGrounding } from './composition/grounding.js';
129
129
  export { rankDiscoveries } from './composition/discovery.js';
130
130
  export type { VettedCandidate } from './composition/discovery.js';
131
- export { residualInSigma, combineInQuadrature } from './bridges/observations/types.js';
132
- export type { ObservationProvenance, SigmaComponent, ObservationKind, ConfrontationOutcome, } from './bridges/observations/types.js';
131
+ export { residualInSigma, combineInQuadrature, consistencyComparison, } from './bridges/observations/types.js';
132
+ export type { ConsistencyComparison, ObservationProvenance, SigmaComponent, ObservationKind, ConfrontationOutcome, ConfrontationDataHandling, ConfrontationPreprocessing, ConfrontationIndependence, SourceRef, SourceRefs, } from './bridges/observations/types.js';
133
133
  export { confrontBE37, CASSINI } from './bridges/be37-cassini-confrontation.js';
134
134
  export type { CassiniObservation, BE37ConfrontationResult, } from './bridges/be37-cassini-confrontation.js';
135
135
  export { confrontBE51, VLBI_LAMBERT_2009 } from './bridges/be51-lensing-confrontation.js';
136
136
  export type { VLBIDeflectionObservation, BE51ConfrontationResult, } from './bridges/be51-lensing-confrontation.js';
137
+ export { oneLoopCoefficientStatement } from './bridges/equations/be-53-yang-mills-beta.js';
138
+ export type { OneLoopCoefficientStatement, OneLoopCoefficientSign } from './bridges/equations/be-53-yang-mills-beta.js';
139
+ export { requestYangMillsConfrontation } from './bridges/be53-yang-mills-confrontation.js';
140
+ export type { MeasuredCouplingRow, RunningProcedure, RunningProcedureRecord, YangMillsConfrontationRequest, YangMillsConfrontationRefusal, YangMillsConfrontationHit, YangMillsConfrontationResult, } from './bridges/be53-yang-mills-confrontation.js';
137
141
  export { confrontBE21, KSS_BOUND, QGP_BMB19 } from './bridges/be21-kss-confrontation.js';
138
142
  export type { QGPViscosityObservation, BE21ConfrontationResult, } from './bridges/be21-kss-confrontation.js';
139
143
  export { confrontBE35, BOOTSTRAP_NU, BOOTSTRAP_NU_SIGMA, ISING_PELISSETTO_VICARI_2002, } from './bridges/be35-bootstrap-confrontation.js';