universal-physics-tensor 7.0.0 → 9.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 (1006) hide show
  1. package/README.md +11 -9
  2. package/data/atlas/atlas.json +3044 -0
  3. package/data/atlas/atlas.jsonld +1819 -0
  4. package/data/atlas/diffusion.json +1084 -0
  5. package/data/atlas/oscillators.json +1041 -0
  6. package/data/atlas/qudt-resolution.json +60 -0
  7. package/data/atlas/waves.json +916 -0
  8. package/data/atlas/witness-results.json +249 -0
  9. package/data/bridge-catalog.json +15425 -0
  10. package/data/bridge-catalog.schema.json +642 -0
  11. package/data/confrontation-sources.md +137 -0
  12. package/data/quantities.json +9755 -0
  13. package/data/quantities.schema.json +52 -0
  14. package/data/schemas/atlas-record.v0.json +236 -0
  15. package/data/schemas/discovery-run.v0.json +203 -0
  16. package/data/units.json +1149 -0
  17. package/data/units.schema.json +124 -0
  18. package/dist/atlas/association.d.ts +1 -1
  19. package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
  20. package/dist/atlas/benchmark/hybrid-retrieval.js +2 -5
  21. package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
  22. package/dist/atlas/catalog-formal-ref.d.ts +6 -12
  23. package/dist/atlas/catalog-formal-ref.d.ts.map +1 -1
  24. package/dist/atlas/catalog-formal-ref.js +15 -25
  25. package/dist/atlas/catalog-formal-ref.js.map +1 -1
  26. package/dist/atlas/physjs-entries.generated.d.ts +1769 -196
  27. package/dist/atlas/physjs-entries.generated.d.ts.map +1 -1
  28. package/dist/atlas/physjs-entries.generated.js +2046 -321
  29. package/dist/atlas/physjs-entries.generated.js.map +1 -1
  30. package/dist/atlas/physjs-ref.d.ts +89 -89
  31. package/dist/atlas/physjs-ref.d.ts.map +1 -1
  32. package/dist/atlas/physjs-ref.js +128 -269
  33. package/dist/atlas/physjs-ref.js.map +1 -1
  34. package/dist/atlas/proof-target.d.ts +16 -8
  35. package/dist/atlas/proof-target.d.ts.map +1 -1
  36. package/dist/atlas/proof-target.js +34 -31
  37. package/dist/atlas/proof-target.js.map +1 -1
  38. package/dist/bridges/caller-table.d.ts +56 -0
  39. package/dist/bridges/caller-table.d.ts.map +1 -0
  40. package/dist/bridges/{be53-yang-mills-confrontation.js → caller-table.js} +13 -15
  41. package/dist/bridges/caller-table.js.map +1 -0
  42. package/dist/bridges/catalog-adapter.d.ts.map +1 -1
  43. package/dist/bridges/catalog-adapter.js +5 -5
  44. package/dist/bridges/catalog-adapter.js.map +1 -1
  45. package/dist/bridges/catalog-load.d.ts +41 -0
  46. package/dist/bridges/catalog-load.d.ts.map +1 -0
  47. package/dist/bridges/catalog-load.js +145 -0
  48. package/dist/bridges/catalog-load.js.map +1 -0
  49. package/dist/bridges/catalog-types.d.ts +164 -0
  50. package/dist/bridges/catalog-types.d.ts.map +1 -0
  51. package/dist/bridges/catalog-types.js +8 -0
  52. package/dist/bridges/catalog-types.js.map +1 -0
  53. package/dist/bridges/coefficient-statement.d.ts +27 -0
  54. package/dist/bridges/coefficient-statement.d.ts.map +1 -0
  55. package/dist/bridges/coefficient-statement.js +33 -0
  56. package/dist/bridges/coefficient-statement.js.map +1 -0
  57. package/dist/bridges/confrontations.d.ts +8 -25
  58. package/dist/bridges/confrontations.d.ts.map +1 -1
  59. package/dist/bridges/confrontations.js +26 -714
  60. package/dist/bridges/confrontations.js.map +1 -1
  61. package/dist/bridges/evaluation-errors.d.ts +76 -0
  62. package/dist/bridges/evaluation-errors.d.ts.map +1 -0
  63. package/dist/bridges/evaluation-errors.js +118 -0
  64. package/dist/bridges/evaluation-errors.js.map +1 -0
  65. package/dist/bridges/evaluator-inputs.d.ts +5 -3
  66. package/dist/bridges/evaluator-inputs.d.ts.map +1 -1
  67. package/dist/bridges/evaluator-inputs.js +24 -14
  68. package/dist/bridges/evaluator-inputs.js.map +1 -1
  69. package/dist/bridges/evaluators.d.ts +40 -28
  70. package/dist/bridges/evaluators.d.ts.map +1 -1
  71. package/dist/bridges/evaluators.js +183 -413
  72. package/dist/bridges/evaluators.js.map +1 -1
  73. package/dist/bridges/expr-parse.d.ts +27 -0
  74. package/dist/bridges/expr-parse.d.ts.map +1 -0
  75. package/dist/bridges/expr-parse.js +162 -0
  76. package/dist/bridges/expr-parse.js.map +1 -0
  77. package/dist/bridges/holds.d.ts +26 -0
  78. package/dist/bridges/holds.d.ts.map +1 -0
  79. package/dist/bridges/holds.js +145 -0
  80. package/dist/bridges/holds.js.map +1 -0
  81. package/dist/bridges/index.d.ts +18 -354
  82. package/dist/bridges/index.d.ts.map +1 -1
  83. package/dist/bridges/index.js +17 -3312
  84. package/dist/bridges/index.js.map +1 -1
  85. package/dist/bridges/input-contract.d.ts +65 -0
  86. package/dist/bridges/input-contract.d.ts.map +1 -0
  87. package/dist/bridges/input-contract.js +97 -0
  88. package/dist/bridges/input-contract.js.map +1 -0
  89. package/dist/bridges/notices.d.ts +11 -0
  90. package/dist/bridges/notices.d.ts.map +1 -0
  91. package/dist/bridges/notices.js +22 -0
  92. package/dist/bridges/notices.js.map +1 -0
  93. package/dist/bridges/relation-eval.d.ts +23 -0
  94. package/dist/bridges/relation-eval.d.ts.map +1 -0
  95. package/dist/bridges/relation-eval.js +136 -0
  96. package/dist/bridges/relation-eval.js.map +1 -0
  97. package/dist/bridges/rhs-registry.d.ts +7 -21
  98. package/dist/bridges/rhs-registry.d.ts.map +1 -1
  99. package/dist/bridges/rhs-registry.js +13 -123
  100. package/dist/bridges/rhs-registry.js.map +1 -1
  101. package/dist/bridges/sensitivity.d.ts +11 -3
  102. package/dist/bridges/sensitivity.d.ts.map +1 -1
  103. package/dist/bridges/sensitivity.js +20 -36
  104. package/dist/bridges/sensitivity.js.map +1 -1
  105. package/dist/bridges/types.d.ts +52 -0
  106. package/dist/bridges/types.d.ts.map +1 -0
  107. package/dist/bridges/types.js +10 -0
  108. package/dist/bridges/types.js.map +1 -0
  109. package/dist/canonical/canonical-equation.d.ts +31 -0
  110. package/dist/canonical/canonical-equation.d.ts.map +1 -1
  111. package/dist/canonical/entries/atomic.d.ts.map +1 -1
  112. package/dist/canonical/entries/atomic.js +12 -2
  113. package/dist/canonical/entries/atomic.js.map +1 -1
  114. package/dist/canonical/entries/condensed-matter.d.ts.map +1 -1
  115. package/dist/canonical/entries/condensed-matter.js +4 -1
  116. package/dist/canonical/entries/condensed-matter.js.map +1 -1
  117. package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -1
  118. package/dist/canonical/entries/dimensional-classics.js +48 -0
  119. package/dist/canonical/entries/dimensional-classics.js.map +1 -1
  120. package/dist/canonical/entries/electromagnetism.d.ts.map +1 -1
  121. package/dist/canonical/entries/electromagnetism.js +31 -1
  122. package/dist/canonical/entries/electromagnetism.js.map +1 -1
  123. package/dist/canonical/entries/fluids-waves.d.ts.map +1 -1
  124. package/dist/canonical/entries/fluids-waves.js +35 -1
  125. package/dist/canonical/entries/fluids-waves.js.map +1 -1
  126. package/dist/canonical/entries/mechanics.d.ts.map +1 -1
  127. package/dist/canonical/entries/mechanics.js +25 -1
  128. package/dist/canonical/entries/mechanics.js.map +1 -1
  129. package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
  130. package/dist/canonical/entries/nonmonomial.js +16 -5
  131. package/dist/canonical/entries/nonmonomial.js.map +1 -1
  132. package/dist/canonical/entries/relativity.d.ts.map +1 -1
  133. package/dist/canonical/entries/relativity.js +7 -1
  134. package/dist/canonical/entries/relativity.js.map +1 -1
  135. package/dist/canonical/entries/statistical-mechanics.d.ts.map +1 -1
  136. package/dist/canonical/entries/statistical-mechanics.js +20 -1
  137. package/dist/canonical/entries/statistical-mechanics.js.map +1 -1
  138. package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
  139. package/dist/canonical/entries/thermo-nuclear-cosmo.js +17 -2
  140. package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
  141. package/dist/canonical/normal-form.d.ts.map +1 -1
  142. package/dist/canonical/normal-form.js +9 -4
  143. package/dist/canonical/normal-form.js.map +1 -1
  144. package/dist/cases/index.d.ts +9 -2
  145. package/dist/cases/index.d.ts.map +1 -1
  146. package/dist/cases/index.js +26 -7
  147. package/dist/cases/index.js.map +1 -1
  148. package/dist/cases/kepler-rv.d.ts.map +1 -1
  149. package/dist/cases/kepler-rv.js +13 -9
  150. package/dist/cases/kepler-rv.js.map +1 -1
  151. package/dist/cases/resistor-noise.d.ts.map +1 -1
  152. package/dist/cases/resistor-noise.js +10 -5
  153. package/dist/cases/resistor-noise.js.map +1 -1
  154. package/dist/cli/commands/_discovery-opts.d.ts +2 -1
  155. package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
  156. package/dist/cli/commands/_discovery-opts.js +7 -12
  157. package/dist/cli/commands/_discovery-opts.js.map +1 -1
  158. package/dist/cli/commands/atlas.d.ts.map +1 -1
  159. package/dist/cli/commands/atlas.js +6 -9
  160. package/dist/cli/commands/atlas.js.map +1 -1
  161. package/dist/cli/commands/audit.d.ts.map +1 -1
  162. package/dist/cli/commands/audit.js +1 -2
  163. package/dist/cli/commands/audit.js.map +1 -1
  164. package/dist/cli/commands/chain.js +2 -2
  165. package/dist/cli/commands/chain.js.map +1 -1
  166. package/dist/cli/commands/confront.d.ts.map +1 -1
  167. package/dist/cli/commands/confront.js +17 -17
  168. package/dist/cli/commands/confront.js.map +1 -1
  169. package/dist/cli/commands/connectors.d.ts.map +1 -1
  170. package/dist/cli/commands/connectors.js +8 -9
  171. package/dist/cli/commands/connectors.js.map +1 -1
  172. package/dist/cli/commands/derive.js +9 -10
  173. package/dist/cli/commands/derive.js.map +1 -1
  174. package/dist/cli/commands/discover.d.ts.map +1 -1
  175. package/dist/cli/commands/discover.js +3 -4
  176. package/dist/cli/commands/discover.js.map +1 -1
  177. package/dist/cli/commands/eval.d.ts.map +1 -1
  178. package/dist/cli/commands/eval.js +18 -16
  179. package/dist/cli/commands/eval.js.map +1 -1
  180. package/dist/cli/commands/evaluate.d.ts +1 -35
  181. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  182. package/dist/cli/commands/evaluate.js +67 -193
  183. package/dist/cli/commands/evaluate.js.map +1 -1
  184. package/dist/cli/commands/explain.d.ts.map +1 -1
  185. package/dist/cli/commands/explain.js +44 -37
  186. package/dist/cli/commands/explain.js.map +1 -1
  187. package/dist/cli/commands/ground.js +1 -1
  188. package/dist/cli/commands/ground.js.map +1 -1
  189. package/dist/cli/commands/map.js +3 -4
  190. package/dist/cli/commands/map.js.map +1 -1
  191. package/dist/cli/commands/metric.d.ts.map +1 -1
  192. package/dist/cli/commands/metric.js +3 -0
  193. package/dist/cli/commands/metric.js.map +1 -1
  194. package/dist/cli/commands/regime.js +1 -1
  195. package/dist/cli/commands/regime.js.map +1 -1
  196. package/dist/cli/commands/symbolic.d.ts.map +1 -1
  197. package/dist/cli/commands/symbolic.js +10 -6
  198. package/dist/cli/commands/symbolic.js.map +1 -1
  199. package/dist/cli/commands/testplan.js +3 -3
  200. package/dist/cli/commands/testplan.js.map +1 -1
  201. package/dist/cli/conventions.d.ts +6 -7
  202. package/dist/cli/conventions.d.ts.map +1 -1
  203. package/dist/cli/conventions.js +19 -28
  204. package/dist/cli/conventions.js.map +1 -1
  205. package/dist/cli/euler-guard.d.ts +13 -2
  206. package/dist/cli/euler-guard.d.ts.map +1 -1
  207. package/dist/cli/euler-guard.js +17 -3
  208. package/dist/cli/euler-guard.js.map +1 -1
  209. package/dist/cli/eval-numbers.d.ts +4 -9
  210. package/dist/cli/eval-numbers.d.ts.map +1 -1
  211. package/dist/cli/eval-numbers.js +11 -41
  212. package/dist/cli/eval-numbers.js.map +1 -1
  213. package/dist/cli/published-url.d.ts +2 -0
  214. package/dist/cli/published-url.d.ts.map +1 -1
  215. package/dist/cli/published-url.js +5 -0
  216. package/dist/cli/published-url.js.map +1 -1
  217. package/dist/cli/record-tables.d.ts +2 -1
  218. package/dist/cli/record-tables.d.ts.map +1 -1
  219. package/dist/cli/record-tables.js +8 -3
  220. package/dist/cli/record-tables.js.map +1 -1
  221. package/dist/cli-api.d.ts +50 -12
  222. package/dist/cli-api.d.ts.map +1 -1
  223. package/dist/cli-api.js +43 -11
  224. package/dist/cli-api.js.map +1 -1
  225. package/dist/composition/adjudication.d.ts +8 -30
  226. package/dist/composition/adjudication.d.ts.map +1 -1
  227. package/dist/composition/adjudication.js +15 -67
  228. package/dist/composition/adjudication.js.map +1 -1
  229. package/dist/composition/aliases.d.ts +1 -1
  230. package/dist/composition/aliases.d.ts.map +1 -1
  231. package/dist/composition/aliases.js +10 -20
  232. package/dist/composition/aliases.js.map +1 -1
  233. package/dist/composition/bridge-analysis.d.ts +4 -0
  234. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  235. package/dist/composition/bridge-analysis.js +13 -14
  236. package/dist/composition/bridge-analysis.js.map +1 -1
  237. package/dist/composition/canonical-graph.d.ts +12 -12
  238. package/dist/composition/canonical-graph.d.ts.map +1 -1
  239. package/dist/composition/canonical-graph.js +96 -25
  240. package/dist/composition/canonical-graph.js.map +1 -1
  241. package/dist/composition/canonical-prefactors.d.ts +10 -29
  242. package/dist/composition/canonical-prefactors.d.ts.map +1 -1
  243. package/dist/composition/canonical-prefactors.js +15 -202
  244. package/dist/composition/canonical-prefactors.js.map +1 -1
  245. package/dist/composition/catalog-graph.d.ts +11 -4
  246. package/dist/composition/catalog-graph.d.ts.map +1 -1
  247. package/dist/composition/catalog-graph.js +78 -47
  248. package/dist/composition/catalog-graph.js.map +1 -1
  249. package/dist/composition/compose.js +2 -1
  250. package/dist/composition/compose.js.map +1 -1
  251. package/dist/composition/discovery.d.ts +50 -0
  252. package/dist/composition/discovery.d.ts.map +1 -1
  253. package/dist/composition/discovery.js +28 -24
  254. package/dist/composition/discovery.js.map +1 -1
  255. package/dist/composition/edge.d.ts +0 -14
  256. package/dist/composition/edge.d.ts.map +1 -1
  257. package/dist/composition/edge.js +1 -17
  258. package/dist/composition/edge.js.map +1 -1
  259. package/dist/composition/evaluate-relation.d.ts +31 -5
  260. package/dist/composition/evaluate-relation.d.ts.map +1 -1
  261. package/dist/composition/evaluate-relation.js +111 -60
  262. package/dist/composition/evaluate-relation.js.map +1 -1
  263. package/dist/composition/explain.d.ts +5 -0
  264. package/dist/composition/explain.d.ts.map +1 -1
  265. package/dist/composition/explain.js +9 -8
  266. package/dist/composition/explain.js.map +1 -1
  267. package/dist/composition/expr-eval.d.ts.map +1 -1
  268. package/dist/composition/expr-eval.js +8 -1
  269. package/dist/composition/expr-eval.js.map +1 -1
  270. package/dist/composition/frontier-account.d.ts.map +1 -1
  271. package/dist/composition/frontier-account.js +1 -1
  272. package/dist/composition/frontier-account.js.map +1 -1
  273. package/dist/composition/index.d.ts +6 -15
  274. package/dist/composition/index.d.ts.map +1 -1
  275. package/dist/composition/index.js +6 -15
  276. package/dist/composition/index.js.map +1 -1
  277. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  278. package/dist/composition/proposed-bridges.js +3 -2
  279. package/dist/composition/proposed-bridges.js.map +1 -1
  280. package/dist/composition/quantities.d.ts +11 -27
  281. package/dist/composition/quantities.d.ts.map +1 -1
  282. package/dist/composition/quantities.js +29 -29
  283. package/dist/composition/quantities.js.map +1 -1
  284. package/dist/composition/retrodiction.d.ts +8 -0
  285. package/dist/composition/retrodiction.d.ts.map +1 -1
  286. package/dist/composition/retrodiction.js +5 -0
  287. package/dist/composition/retrodiction.js.map +1 -1
  288. package/dist/composition/user-equation.d.ts +13 -16
  289. package/dist/composition/user-equation.d.ts.map +1 -1
  290. package/dist/composition/user-equation.js +26 -53
  291. package/dist/composition/user-equation.js.map +1 -1
  292. package/dist/core/constants.d.ts +41 -4
  293. package/dist/core/constants.d.ts.map +1 -1
  294. package/dist/core/constants.js +54 -5
  295. package/dist/core/constants.js.map +1 -1
  296. package/dist/core/data-file.d.ts +27 -0
  297. package/dist/core/data-file.d.ts.map +1 -0
  298. package/dist/core/data-file.js +48 -0
  299. package/dist/core/data-file.js.map +1 -0
  300. package/dist/core/json-schema.d.ts +27 -0
  301. package/dist/core/json-schema.d.ts.map +1 -0
  302. package/dist/core/json-schema.js +153 -0
  303. package/dist/core/json-schema.js.map +1 -0
  304. package/dist/core/types.d.ts +3 -2
  305. package/dist/core/types.d.ts.map +1 -1
  306. package/dist/core/types.js +16 -14
  307. package/dist/core/types.js.map +1 -1
  308. package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
  309. package/dist/diff/bridge-ast-gradient.js +6 -16
  310. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  311. package/dist/diff/bridge-gradient.d.ts +1 -1
  312. package/dist/diff/bridge-gradient.d.ts.map +1 -1
  313. package/dist/diff/bridge-specs.d.ts +33 -62
  314. package/dist/diff/bridge-specs.d.ts.map +1 -1
  315. package/dist/diff/bridge-specs.js +56 -77
  316. package/dist/diff/bridge-specs.js.map +1 -1
  317. package/dist/dimensional/bridge-check.d.ts +9 -26
  318. package/dist/dimensional/bridge-check.d.ts.map +1 -1
  319. package/dist/dimensional/bridge-check.js +20 -227
  320. package/dist/dimensional/bridge-check.js.map +1 -1
  321. package/dist/dimensional/constant-rows.d.ts +54 -0
  322. package/dist/dimensional/constant-rows.d.ts.map +1 -0
  323. package/dist/dimensional/constant-rows.js +111 -0
  324. package/dist/dimensional/constant-rows.js.map +1 -0
  325. package/dist/dimensional/constants.d.ts +4 -13
  326. package/dist/dimensional/constants.d.ts.map +1 -1
  327. package/dist/dimensional/constants.js +11 -19
  328. package/dist/dimensional/constants.js.map +1 -1
  329. package/dist/dimensional/dimension-spec.d.ts +12 -3
  330. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  331. package/dist/dimensional/dimension-spec.js +114 -150
  332. package/dist/dimensional/dimension-spec.js.map +1 -1
  333. package/dist/dimensional/exact-scale.d.ts +79 -0
  334. package/dist/dimensional/exact-scale.d.ts.map +1 -0
  335. package/dist/dimensional/exact-scale.js +222 -0
  336. package/dist/dimensional/exact-scale.js.map +1 -0
  337. package/dist/dimensional/formula-names.d.ts +30 -13
  338. package/dist/dimensional/formula-names.d.ts.map +1 -1
  339. package/dist/dimensional/formula-names.js +56 -48
  340. package/dist/dimensional/formula-names.js.map +1 -1
  341. package/dist/dimensional/hyphen-names.d.ts +13 -0
  342. package/dist/dimensional/hyphen-names.d.ts.map +1 -0
  343. package/dist/dimensional/hyphen-names.js +27 -0
  344. package/dist/dimensional/hyphen-names.js.map +1 -0
  345. package/dist/dimensional/quantity-registry.d.ts +42 -0
  346. package/dist/dimensional/quantity-registry.d.ts.map +1 -0
  347. package/dist/dimensional/quantity-registry.js +78 -0
  348. package/dist/dimensional/quantity-registry.js.map +1 -0
  349. package/dist/dimensional/symbolic-constants.d.ts +63 -19
  350. package/dist/dimensional/symbolic-constants.d.ts.map +1 -1
  351. package/dist/dimensional/symbolic-constants.js +109 -92
  352. package/dist/dimensional/symbolic-constants.js.map +1 -1
  353. package/dist/dimensional/unit-data.d.ts +70 -0
  354. package/dist/dimensional/unit-data.d.ts.map +1 -0
  355. package/dist/dimensional/unit-data.js +135 -0
  356. package/dist/dimensional/unit-data.js.map +1 -0
  357. package/dist/dimensional/units.d.ts +88 -23
  358. package/dist/dimensional/units.d.ts.map +1 -1
  359. package/dist/dimensional/units.js +365 -230
  360. package/dist/dimensional/units.js.map +1 -1
  361. package/dist/index.d.ts +29 -69
  362. package/dist/index.d.ts.map +1 -1
  363. package/dist/index.js +16 -50
  364. package/dist/index.js.map +1 -1
  365. package/dist/numerical/binding-value.d.ts +21 -1
  366. package/dist/numerical/binding-value.d.ts.map +1 -1
  367. package/dist/numerical/binding-value.js +177 -121
  368. package/dist/numerical/binding-value.js.map +1 -1
  369. package/dist/numerical/{be37-covariant-eikonal.d.ts → covariant-eikonal.d.ts} +13 -13
  370. package/dist/numerical/covariant-eikonal.d.ts.map +1 -0
  371. package/dist/numerical/{be37-covariant-eikonal.js → covariant-eikonal.js} +18 -18
  372. package/dist/numerical/covariant-eikonal.js.map +1 -0
  373. package/dist/numerical/derivative-lowering.d.ts +2 -1
  374. package/dist/numerical/derivative-lowering.d.ts.map +1 -1
  375. package/dist/numerical/derivative-lowering.js +2 -1
  376. package/dist/numerical/derivative-lowering.js.map +1 -1
  377. package/dist/numerical/evaluator-uncertainty.d.ts +34 -0
  378. package/dist/numerical/evaluator-uncertainty.d.ts.map +1 -0
  379. package/dist/numerical/evaluator-uncertainty.js +117 -0
  380. package/dist/numerical/evaluator-uncertainty.js.map +1 -0
  381. package/dist/numerical/formula-contract.d.ts +4 -0
  382. package/dist/numerical/formula-contract.d.ts.map +1 -1
  383. package/dist/numerical/formula-contract.js +7 -0
  384. package/dist/numerical/formula-contract.js.map +1 -1
  385. package/dist/numerical/formula-dimension.d.ts +9 -0
  386. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  387. package/dist/numerical/formula-dimension.js +64 -10
  388. package/dist/numerical/formula-dimension.js.map +1 -1
  389. package/dist/numerical/formula-mathts.d.ts.map +1 -1
  390. package/dist/numerical/formula-mathts.js +6 -2
  391. package/dist/numerical/formula-mathts.js.map +1 -1
  392. package/dist/numerical/gl4-integrator.d.ts +6 -3
  393. package/dist/numerical/gl4-integrator.d.ts.map +1 -1
  394. package/dist/numerical/gl4-integrator.js +9 -6
  395. package/dist/numerical/gl4-integrator.js.map +1 -1
  396. package/dist/numerical/index.d.ts +4 -3
  397. package/dist/numerical/index.d.ts.map +1 -1
  398. package/dist/numerical/index.js +2 -2
  399. package/dist/numerical/index.js.map +1 -1
  400. package/dist/numerical/null-ic.d.ts +6 -5
  401. package/dist/numerical/null-ic.d.ts.map +1 -1
  402. package/dist/numerical/null-ic.js +6 -5
  403. package/dist/numerical/null-ic.js.map +1 -1
  404. package/dist/numerical/null-ray-integrator.js +1 -1
  405. package/dist/numerical/perihelion-finder.d.ts +5 -4
  406. package/dist/numerical/perihelion-finder.d.ts.map +1 -1
  407. package/dist/numerical/perihelion-finder.js +5 -4
  408. package/dist/numerical/perihelion-finder.js.map +1 -1
  409. package/dist/numerical/spacetime-metrics.d.ts +4 -0
  410. package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
  411. package/dist/numerical/spacetime-metrics.js +34 -4
  412. package/dist/numerical/spacetime-metrics.js.map +1 -1
  413. package/dist/relations/types.d.ts +8 -1
  414. package/dist/relations/types.d.ts.map +1 -1
  415. package/dist/relations/types.js +10 -0
  416. package/dist/relations/types.js.map +1 -1
  417. package/package.json +2 -1
  418. package/dist/bridges/be100-lyddane-sachs-teller.d.ts +0 -41
  419. package/dist/bridges/be100-lyddane-sachs-teller.d.ts.map +0 -1
  420. package/dist/bridges/be100-lyddane-sachs-teller.js +0 -30
  421. package/dist/bridges/be100-lyddane-sachs-teller.js.map +0 -1
  422. package/dist/bridges/be101-bkt-jump.d.ts +0 -24
  423. package/dist/bridges/be101-bkt-jump.d.ts.map +0 -1
  424. package/dist/bridges/be101-bkt-jump.js +0 -29
  425. package/dist/bridges/be101-bkt-jump.js.map +0 -1
  426. package/dist/bridges/be102-landauer-conductance.d.ts +0 -24
  427. package/dist/bridges/be102-landauer-conductance.d.ts.map +0 -1
  428. package/dist/bridges/be102-landauer-conductance.js +0 -28
  429. package/dist/bridges/be102-landauer-conductance.js.map +0 -1
  430. package/dist/bridges/be11-decoherence-confrontation.d.ts +0 -63
  431. package/dist/bridges/be11-decoherence-confrontation.d.ts.map +0 -1
  432. package/dist/bridges/be11-decoherence-confrontation.js +0 -39
  433. package/dist/bridges/be11-decoherence-confrontation.js.map +0 -1
  434. package/dist/bridges/be21-kss-confrontation.d.ts +0 -52
  435. package/dist/bridges/be21-kss-confrontation.d.ts.map +0 -1
  436. package/dist/bridges/be21-kss-confrontation.js +0 -38
  437. package/dist/bridges/be21-kss-confrontation.js.map +0 -1
  438. package/dist/bridges/be23-planckian-confrontation.d.ts +0 -162
  439. package/dist/bridges/be23-planckian-confrontation.d.ts.map +0 -1
  440. package/dist/bridges/be23-planckian-confrontation.js +0 -196
  441. package/dist/bridges/be23-planckian-confrontation.js.map +0 -1
  442. package/dist/bridges/be35-bootstrap-confrontation.d.ts +0 -59
  443. package/dist/bridges/be35-bootstrap-confrontation.d.ts.map +0 -1
  444. package/dist/bridges/be35-bootstrap-confrontation.js +0 -39
  445. package/dist/bridges/be35-bootstrap-confrontation.js.map +0 -1
  446. package/dist/bridges/be36-gw170817-confrontation.d.ts +0 -111
  447. package/dist/bridges/be36-gw170817-confrontation.d.ts.map +0 -1
  448. package/dist/bridges/be36-gw170817-confrontation.js +0 -100
  449. package/dist/bridges/be36-gw170817-confrontation.js.map +0 -1
  450. package/dist/bridges/be37-cassini-confrontation.d.ts +0 -43
  451. package/dist/bridges/be37-cassini-confrontation.d.ts.map +0 -1
  452. package/dist/bridges/be37-cassini-confrontation.js +0 -34
  453. package/dist/bridges/be37-cassini-confrontation.js.map +0 -1
  454. package/dist/bridges/be48-collapse-confrontation.d.ts +0 -52
  455. package/dist/bridges/be48-collapse-confrontation.d.ts.map +0 -1
  456. package/dist/bridges/be48-collapse-confrontation.js +0 -37
  457. package/dist/bridges/be48-collapse-confrontation.js.map +0 -1
  458. package/dist/bridges/be51-lensing-confrontation.d.ts +0 -53
  459. package/dist/bridges/be51-lensing-confrontation.d.ts.map +0 -1
  460. package/dist/bridges/be51-lensing-confrontation.js +0 -52
  461. package/dist/bridges/be51-lensing-confrontation.js.map +0 -1
  462. package/dist/bridges/be52-mercury-confrontation.d.ts +0 -72
  463. package/dist/bridges/be52-mercury-confrontation.d.ts.map +0 -1
  464. package/dist/bridges/be52-mercury-confrontation.js +0 -70
  465. package/dist/bridges/be52-mercury-confrontation.js.map +0 -1
  466. package/dist/bridges/be53-yang-mills-confrontation.d.ts +0 -81
  467. package/dist/bridges/be53-yang-mills-confrontation.d.ts.map +0 -1
  468. package/dist/bridges/be53-yang-mills-confrontation.js.map +0 -1
  469. package/dist/bridges/be55-quantum-hall-confrontation.d.ts +0 -51
  470. package/dist/bridges/be55-quantum-hall-confrontation.d.ts.map +0 -1
  471. package/dist/bridges/be55-quantum-hall-confrontation.js +0 -32
  472. package/dist/bridges/be55-quantum-hall-confrontation.js.map +0 -1
  473. package/dist/bridges/be55-quantum-hall.d.ts +0 -24
  474. package/dist/bridges/be55-quantum-hall.d.ts.map +0 -1
  475. package/dist/bridges/be55-quantum-hall.js +0 -46
  476. package/dist/bridges/be55-quantum-hall.js.map +0 -1
  477. package/dist/bridges/be56-casimir-confrontation.d.ts +0 -52
  478. package/dist/bridges/be56-casimir-confrontation.d.ts.map +0 -1
  479. package/dist/bridges/be56-casimir-confrontation.js +0 -31
  480. package/dist/bridges/be56-casimir-confrontation.js.map +0 -1
  481. package/dist/bridges/be56-casimir.d.ts +0 -18
  482. package/dist/bridges/be56-casimir.d.ts.map +0 -1
  483. package/dist/bridges/be56-casimir.js +0 -36
  484. package/dist/bridges/be56-casimir.js.map +0 -1
  485. package/dist/bridges/be57-unruh.d.ts +0 -18
  486. package/dist/bridges/be57-unruh.d.ts.map +0 -1
  487. package/dist/bridges/be57-unruh.js +0 -38
  488. package/dist/bridges/be57-unruh.js.map +0 -1
  489. package/dist/bridges/be58-johnson-nyquist-confrontation.d.ts +0 -57
  490. package/dist/bridges/be58-johnson-nyquist-confrontation.d.ts.map +0 -1
  491. package/dist/bridges/be58-johnson-nyquist-confrontation.js +0 -38
  492. package/dist/bridges/be58-johnson-nyquist-confrontation.js.map +0 -1
  493. package/dist/bridges/be58-johnson-nyquist.d.ts +0 -22
  494. package/dist/bridges/be58-johnson-nyquist.d.ts.map +0 -1
  495. package/dist/bridges/be58-johnson-nyquist.js +0 -36
  496. package/dist/bridges/be58-johnson-nyquist.js.map +0 -1
  497. package/dist/bridges/be59-ac-josephson-confrontation.d.ts +0 -46
  498. package/dist/bridges/be59-ac-josephson-confrontation.d.ts.map +0 -1
  499. package/dist/bridges/be59-ac-josephson-confrontation.js +0 -32
  500. package/dist/bridges/be59-ac-josephson-confrontation.js.map +0 -1
  501. package/dist/bridges/be59-ac-josephson.d.ts +0 -22
  502. package/dist/bridges/be59-ac-josephson.d.ts.map +0 -1
  503. package/dist/bridges/be59-ac-josephson.js +0 -35
  504. package/dist/bridges/be59-ac-josephson.js.map +0 -1
  505. package/dist/bridges/be60-fractional-qh-confrontation.d.ts +0 -45
  506. package/dist/bridges/be60-fractional-qh-confrontation.d.ts.map +0 -1
  507. package/dist/bridges/be60-fractional-qh-confrontation.js +0 -31
  508. package/dist/bridges/be60-fractional-qh-confrontation.js.map +0 -1
  509. package/dist/bridges/be60-fractional-qh.d.ts +0 -20
  510. package/dist/bridges/be60-fractional-qh.d.ts.map +0 -1
  511. package/dist/bridges/be60-fractional-qh.js +0 -33
  512. package/dist/bridges/be60-fractional-qh.js.map +0 -1
  513. package/dist/bridges/be61-wiedemann-franz-confrontation.d.ts +0 -35
  514. package/dist/bridges/be61-wiedemann-franz-confrontation.d.ts.map +0 -1
  515. package/dist/bridges/be61-wiedemann-franz-confrontation.js +0 -49
  516. package/dist/bridges/be61-wiedemann-franz-confrontation.js.map +0 -1
  517. package/dist/bridges/be61-wiedemann-franz.d.ts +0 -25
  518. package/dist/bridges/be61-wiedemann-franz.d.ts.map +0 -1
  519. package/dist/bridges/be61-wiedemann-franz.js +0 -41
  520. package/dist/bridges/be61-wiedemann-franz.js.map +0 -1
  521. package/dist/bridges/be62-bcs-gap-confrontation.d.ts +0 -35
  522. package/dist/bridges/be62-bcs-gap-confrontation.d.ts.map +0 -1
  523. package/dist/bridges/be62-bcs-gap-confrontation.js +0 -46
  524. package/dist/bridges/be62-bcs-gap-confrontation.js.map +0 -1
  525. package/dist/bridges/be62-bcs-gap.d.ts +0 -22
  526. package/dist/bridges/be62-bcs-gap.d.ts.map +0 -1
  527. package/dist/bridges/be62-bcs-gap.js +0 -38
  528. package/dist/bridges/be62-bcs-gap.js.map +0 -1
  529. package/dist/bridges/be63-chandrasekhar-mass-confrontation.d.ts +0 -32
  530. package/dist/bridges/be63-chandrasekhar-mass-confrontation.d.ts.map +0 -1
  531. package/dist/bridges/be63-chandrasekhar-mass-confrontation.js +0 -46
  532. package/dist/bridges/be63-chandrasekhar-mass-confrontation.js.map +0 -1
  533. package/dist/bridges/be63-chandrasekhar-mass.d.ts +0 -22
  534. package/dist/bridges/be63-chandrasekhar-mass.d.ts.map +0 -1
  535. package/dist/bridges/be63-chandrasekhar-mass.js +0 -34
  536. package/dist/bridges/be63-chandrasekhar-mass.js.map +0 -1
  537. package/dist/bridges/be64-eddington-luminosity-confrontation.d.ts +0 -48
  538. package/dist/bridges/be64-eddington-luminosity-confrontation.d.ts.map +0 -1
  539. package/dist/bridges/be64-eddington-luminosity-confrontation.js +0 -31
  540. package/dist/bridges/be64-eddington-luminosity-confrontation.js.map +0 -1
  541. package/dist/bridges/be64-eddington-luminosity.d.ts +0 -22
  542. package/dist/bridges/be64-eddington-luminosity.d.ts.map +0 -1
  543. package/dist/bridges/be64-eddington-luminosity.js +0 -35
  544. package/dist/bridges/be64-eddington-luminosity.js.map +0 -1
  545. package/dist/bridges/be65-jeans-mass-confrontation.d.ts +0 -36
  546. package/dist/bridges/be65-jeans-mass-confrontation.d.ts.map +0 -1
  547. package/dist/bridges/be65-jeans-mass-confrontation.js +0 -58
  548. package/dist/bridges/be65-jeans-mass-confrontation.js.map +0 -1
  549. package/dist/bridges/be65-jeans-mass.d.ts +0 -24
  550. package/dist/bridges/be65-jeans-mass.d.ts.map +0 -1
  551. package/dist/bridges/be65-jeans-mass.js +0 -38
  552. package/dist/bridges/be65-jeans-mass.js.map +0 -1
  553. package/dist/bridges/be66-radiation-pressure.d.ts +0 -30
  554. package/dist/bridges/be66-radiation-pressure.d.ts.map +0 -1
  555. package/dist/bridges/be66-radiation-pressure.js +0 -37
  556. package/dist/bridges/be66-radiation-pressure.js.map +0 -1
  557. package/dist/bridges/be67-alfven-speed.d.ts +0 -41
  558. package/dist/bridges/be67-alfven-speed.d.ts.map +0 -1
  559. package/dist/bridges/be67-alfven-speed.js +0 -50
  560. package/dist/bridges/be67-alfven-speed.js.map +0 -1
  561. package/dist/bridges/be68-tolman-ehrenfest.d.ts +0 -49
  562. package/dist/bridges/be68-tolman-ehrenfest.d.ts.map +0 -1
  563. package/dist/bridges/be68-tolman-ehrenfest.js +0 -46
  564. package/dist/bridges/be68-tolman-ehrenfest.js.map +0 -1
  565. package/dist/bridges/be69-fast-magnetosonic.d.ts +0 -30
  566. package/dist/bridges/be69-fast-magnetosonic.d.ts.map +0 -1
  567. package/dist/bridges/be69-fast-magnetosonic.js +0 -33
  568. package/dist/bridges/be69-fast-magnetosonic.js.map +0 -1
  569. package/dist/bridges/be70-einstein-relation.d.ts +0 -30
  570. package/dist/bridges/be70-einstein-relation.d.ts.map +0 -1
  571. package/dist/bridges/be70-einstein-relation.js +0 -41
  572. package/dist/bridges/be70-einstein-relation.js.map +0 -1
  573. package/dist/bridges/be71-clapeyron.d.ts +0 -43
  574. package/dist/bridges/be71-clapeyron.d.ts.map +0 -1
  575. package/dist/bridges/be71-clapeyron.js +0 -32
  576. package/dist/bridges/be71-clapeyron.js.map +0 -1
  577. package/dist/bridges/be72-gravitational-redshift.d.ts +0 -43
  578. package/dist/bridges/be72-gravitational-redshift.d.ts.map +0 -1
  579. package/dist/bridges/be72-gravitational-redshift.js +0 -32
  580. package/dist/bridges/be72-gravitational-redshift.js.map +0 -1
  581. package/dist/bridges/be73-kelvin-peltier.d.ts +0 -42
  582. package/dist/bridges/be73-kelvin-peltier.d.ts.map +0 -1
  583. package/dist/bridges/be73-kelvin-peltier.js +0 -31
  584. package/dist/bridges/be73-kelvin-peltier.js.map +0 -1
  585. package/dist/bridges/be74-magnetic-pressure.d.ts +0 -27
  586. package/dist/bridges/be74-magnetic-pressure.d.ts.map +0 -1
  587. package/dist/bridges/be74-magnetic-pressure.js +0 -29
  588. package/dist/bridges/be74-magnetic-pressure.js.map +0 -1
  589. package/dist/bridges/be75-london-penetration.d.ts +0 -27
  590. package/dist/bridges/be75-london-penetration.d.ts.map +0 -1
  591. package/dist/bridges/be75-london-penetration.js +0 -31
  592. package/dist/bridges/be75-london-penetration.js.map +0 -1
  593. package/dist/bridges/be76-plasma-beta.d.ts +0 -32
  594. package/dist/bridges/be76-plasma-beta.d.ts.map +0 -1
  595. package/dist/bridges/be76-plasma-beta.js +0 -34
  596. package/dist/bridges/be76-plasma-beta.js.map +0 -1
  597. package/dist/bridges/be77-hagen-poiseuille.d.ts +0 -50
  598. package/dist/bridges/be77-hagen-poiseuille.d.ts.map +0 -1
  599. package/dist/bridges/be77-hagen-poiseuille.js +0 -39
  600. package/dist/bridges/be77-hagen-poiseuille.js.map +0 -1
  601. package/dist/bridges/be78-euler-buckling.d.ts +0 -44
  602. package/dist/bridges/be78-euler-buckling.d.ts.map +0 -1
  603. package/dist/bridges/be78-euler-buckling.js +0 -33
  604. package/dist/bridges/be78-euler-buckling.js.map +0 -1
  605. package/dist/bridges/be79-pull-in.d.ts +0 -33
  606. package/dist/bridges/be79-pull-in.d.ts.map +0 -1
  607. package/dist/bridges/be79-pull-in.js +0 -35
  608. package/dist/bridges/be79-pull-in.js.map +0 -1
  609. package/dist/bridges/be80-mott-gurney.d.ts +0 -52
  610. package/dist/bridges/be80-mott-gurney.d.ts.map +0 -1
  611. package/dist/bridges/be80-mott-gurney.js +0 -38
  612. package/dist/bridges/be80-mott-gurney.js.map +0 -1
  613. package/dist/bridges/be81-child-langmuir.d.ts +0 -33
  614. package/dist/bridges/be81-child-langmuir.d.ts.map +0 -1
  615. package/dist/bridges/be81-child-langmuir.js +0 -38
  616. package/dist/bridges/be81-child-langmuir.js.map +0 -1
  617. package/dist/bridges/be82-shockley-diode.d.ts +0 -32
  618. package/dist/bridges/be82-shockley-diode.d.ts.map +0 -1
  619. package/dist/bridges/be82-shockley-diode.js +0 -37
  620. package/dist/bridges/be82-shockley-diode.js.map +0 -1
  621. package/dist/bridges/be83-thomson.d.ts +0 -46
  622. package/dist/bridges/be83-thomson.d.ts.map +0 -1
  623. package/dist/bridges/be83-thomson.js +0 -32
  624. package/dist/bridges/be83-thomson.js.map +0 -1
  625. package/dist/bridges/be84-four-point.d.ts +0 -45
  626. package/dist/bridges/be84-four-point.d.ts.map +0 -1
  627. package/dist/bridges/be84-four-point.js +0 -34
  628. package/dist/bridges/be84-four-point.js.map +0 -1
  629. package/dist/bridges/be85-shot-noise.d.ts +0 -30
  630. package/dist/bridges/be85-shot-noise.d.ts.map +0 -1
  631. package/dist/bridges/be85-shot-noise.js +0 -32
  632. package/dist/bridges/be85-shot-noise.js.map +0 -1
  633. package/dist/bridges/be86-reynolds-analogy.d.ts +0 -45
  634. package/dist/bridges/be86-reynolds-analogy.d.ts.map +0 -1
  635. package/dist/bridges/be86-reynolds-analogy.js +0 -30
  636. package/dist/bridges/be86-reynolds-analogy.js.map +0 -1
  637. package/dist/bridges/be87-capacitor-noise.d.ts +0 -27
  638. package/dist/bridges/be87-capacitor-noise.d.ts.map +0 -1
  639. package/dist/bridges/be87-capacitor-noise.js +0 -32
  640. package/dist/bridges/be87-capacitor-noise.js.map +0 -1
  641. package/dist/bridges/be88-fermi-sea.d.ts +0 -31
  642. package/dist/bridges/be88-fermi-sea.d.ts.map +0 -1
  643. package/dist/bridges/be88-fermi-sea.js +0 -35
  644. package/dist/bridges/be88-fermi-sea.js.map +0 -1
  645. package/dist/bridges/be89-debye-cutoff.d.ts +0 -39
  646. package/dist/bridges/be89-debye-cutoff.d.ts.map +0 -1
  647. package/dist/bridges/be89-debye-cutoff.js +0 -28
  648. package/dist/bridges/be89-debye-cutoff.js.map +0 -1
  649. package/dist/bridges/be90-debye-heat.d.ts +0 -30
  650. package/dist/bridges/be90-debye-heat.d.ts.map +0 -1
  651. package/dist/bridges/be90-debye-heat.js +0 -35
  652. package/dist/bridges/be90-debye-heat.js.map +0 -1
  653. package/dist/bridges/be91-einstein-solid.d.ts +0 -30
  654. package/dist/bridges/be91-einstein-solid.d.ts.map +0 -1
  655. package/dist/bridges/be91-einstein-solid.js +0 -37
  656. package/dist/bridges/be91-einstein-solid.js.map +0 -1
  657. package/dist/bridges/be92-sommerfeld-heat.d.ts +0 -30
  658. package/dist/bridges/be92-sommerfeld-heat.d.ts.map +0 -1
  659. package/dist/bridges/be92-sommerfeld-heat.js +0 -34
  660. package/dist/bridges/be92-sommerfeld-heat.js.map +0 -1
  661. package/dist/bridges/be93-curie-weiss.d.ts +0 -41
  662. package/dist/bridges/be93-curie-weiss.d.ts.map +0 -1
  663. package/dist/bridges/be93-curie-weiss.js +0 -45
  664. package/dist/bridges/be93-curie-weiss.js.map +0 -1
  665. package/dist/bridges/be94-pauli-paramagnetism.d.ts +0 -30
  666. package/dist/bridges/be94-pauli-paramagnetism.d.ts.map +0 -1
  667. package/dist/bridges/be94-pauli-paramagnetism.js +0 -33
  668. package/dist/bridges/be94-pauli-paramagnetism.js.map +0 -1
  669. package/dist/bridges/be95-ginzburg-landau.d.ts +0 -46
  670. package/dist/bridges/be95-ginzburg-landau.d.ts.map +0 -1
  671. package/dist/bridges/be95-ginzburg-landau.js +0 -32
  672. package/dist/bridges/be95-ginzburg-landau.js.map +0 -1
  673. package/dist/bridges/be96-upper-critical.d.ts +0 -24
  674. package/dist/bridges/be96-upper-critical.d.ts.map +0 -1
  675. package/dist/bridges/be96-upper-critical.js +0 -27
  676. package/dist/bridges/be96-upper-critical.js.map +0 -1
  677. package/dist/bridges/be97-ambegaokar-baratoff.d.ts +0 -24
  678. package/dist/bridges/be97-ambegaokar-baratoff.d.ts.map +0 -1
  679. package/dist/bridges/be97-ambegaokar-baratoff.js +0 -30
  680. package/dist/bridges/be97-ambegaokar-baratoff.js.map +0 -1
  681. package/dist/bridges/be98-bcs-jump.d.ts +0 -40
  682. package/dist/bridges/be98-bcs-jump.d.ts.map +0 -1
  683. package/dist/bridges/be98-bcs-jump.js +0 -29
  684. package/dist/bridges/be98-bcs-jump.js.map +0 -1
  685. package/dist/bridges/be99-mass-action.d.ts +0 -33
  686. package/dist/bridges/be99-mass-action.d.ts.map +0 -1
  687. package/dist/bridges/be99-mass-action.js +0 -37
  688. package/dist/bridges/be99-mass-action.js.map +0 -1
  689. package/dist/bridges/bridge-equations.d.ts +0 -225
  690. package/dist/bridges/bridge-equations.d.ts.map +0 -1
  691. package/dist/bridges/bridge-equations.js +0 -226
  692. package/dist/bridges/bridge-equations.js.map +0 -1
  693. package/dist/bridges/condensed-r8-catalog.d.ts +0 -28
  694. package/dist/bridges/condensed-r8-catalog.d.ts.map +0 -1
  695. package/dist/bridges/condensed-r8-catalog.js +0 -272
  696. package/dist/bridges/condensed-r8-catalog.js.map +0 -1
  697. package/dist/bridges/condensed-r8.d.ts +0 -260
  698. package/dist/bridges/condensed-r8.d.ts.map +0 -1
  699. package/dist/bridges/condensed-r8.js +0 -329
  700. package/dist/bridges/condensed-r8.js.map +0 -1
  701. package/dist/bridges/engineering-r7-catalog.d.ts +0 -28
  702. package/dist/bridges/engineering-r7-catalog.d.ts.map +0 -1
  703. package/dist/bridges/engineering-r7-catalog.js +0 -172
  704. package/dist/bridges/engineering-r7-catalog.js.map +0 -1
  705. package/dist/bridges/engineering-r7.d.ts +0 -152
  706. package/dist/bridges/engineering-r7.d.ts.map +0 -1
  707. package/dist/bridges/engineering-r7.js +0 -208
  708. package/dist/bridges/engineering-r7.js.map +0 -1
  709. package/dist/bridges/equations/_be-helpers.d.ts +0 -80
  710. package/dist/bridges/equations/_be-helpers.d.ts.map +0 -1
  711. package/dist/bridges/equations/_be-helpers.js +0 -103
  712. package/dist/bridges/equations/_be-helpers.js.map +0 -1
  713. package/dist/bridges/equations/be-11-decoherence-master.d.ts +0 -82
  714. package/dist/bridges/equations/be-11-decoherence-master.d.ts.map +0 -1
  715. package/dist/bridges/equations/be-11-decoherence-master.js +0 -105
  716. package/dist/bridges/equations/be-11-decoherence-master.js.map +0 -1
  717. package/dist/bridges/equations/be-12-coherence-length.d.ts +0 -86
  718. package/dist/bridges/equations/be-12-coherence-length.d.ts.map +0 -1
  719. package/dist/bridges/equations/be-12-coherence-length.js +0 -120
  720. package/dist/bridges/equations/be-12-coherence-length.js.map +0 -1
  721. package/dist/bridges/equations/be-13-einstein-trace.d.ts +0 -136
  722. package/dist/bridges/equations/be-13-einstein-trace.d.ts.map +0 -1
  723. package/dist/bridges/equations/be-13-einstein-trace.js +0 -199
  724. package/dist/bridges/equations/be-13-einstein-trace.js.map +0 -1
  725. package/dist/bridges/equations/be-14-ryu-takayanagi.d.ts +0 -73
  726. package/dist/bridges/equations/be-14-ryu-takayanagi.d.ts.map +0 -1
  727. package/dist/bridges/equations/be-14-ryu-takayanagi.js +0 -101
  728. package/dist/bridges/equations/be-14-ryu-takayanagi.js.map +0 -1
  729. package/dist/bridges/equations/be-15-emergence.d.ts +0 -184
  730. package/dist/bridges/equations/be-15-emergence.d.ts.map +0 -1
  731. package/dist/bridges/equations/be-15-emergence.js +0 -208
  732. package/dist/bridges/equations/be-15-emergence.js.map +0 -1
  733. package/dist/bridges/equations/be-16-landauer.d.ts +0 -186
  734. package/dist/bridges/equations/be-16-landauer.d.ts.map +0 -1
  735. package/dist/bridges/equations/be-16-landauer.js +0 -198
  736. package/dist/bridges/equations/be-16-landauer.js.map +0 -1
  737. package/dist/bridges/equations/be-17-einstein-cartan.d.ts +0 -258
  738. package/dist/bridges/equations/be-17-einstein-cartan.d.ts.map +0 -1
  739. package/dist/bridges/equations/be-17-einstein-cartan.js +0 -301
  740. package/dist/bridges/equations/be-17-einstein-cartan.js.map +0 -1
  741. package/dist/bridges/equations/be-18-higgs-mass.d.ts +0 -71
  742. package/dist/bridges/equations/be-18-higgs-mass.d.ts.map +0 -1
  743. package/dist/bridges/equations/be-18-higgs-mass.js +0 -75
  744. package/dist/bridges/equations/be-18-higgs-mass.js.map +0 -1
  745. package/dist/bridges/equations/be-19-quantum-bounce.d.ts +0 -107
  746. package/dist/bridges/equations/be-19-quantum-bounce.d.ts.map +0 -1
  747. package/dist/bridges/equations/be-19-quantum-bounce.js +0 -196
  748. package/dist/bridges/equations/be-19-quantum-bounce.js.map +0 -1
  749. package/dist/bridges/equations/be-20-vacuum-energy.d.ts +0 -93
  750. package/dist/bridges/equations/be-20-vacuum-energy.d.ts.map +0 -1
  751. package/dist/bridges/equations/be-20-vacuum-energy.js +0 -142
  752. package/dist/bridges/equations/be-20-vacuum-energy.js.map +0 -1
  753. package/dist/bridges/equations/be-21-kss-bound.d.ts +0 -74
  754. package/dist/bridges/equations/be-21-kss-bound.d.ts.map +0 -1
  755. package/dist/bridges/equations/be-21-kss-bound.js +0 -97
  756. package/dist/bridges/equations/be-21-kss-bound.js.map +0 -1
  757. package/dist/bridges/equations/be-22-topological-entanglement.d.ts +0 -87
  758. package/dist/bridges/equations/be-22-topological-entanglement.d.ts.map +0 -1
  759. package/dist/bridges/equations/be-22-topological-entanglement.js +0 -111
  760. package/dist/bridges/equations/be-22-topological-entanglement.js.map +0 -1
  761. package/dist/bridges/equations/be-23-syk-planckian.d.ts +0 -95
  762. package/dist/bridges/equations/be-23-syk-planckian.d.ts.map +0 -1
  763. package/dist/bridges/equations/be-23-syk-planckian.js +0 -141
  764. package/dist/bridges/equations/be-23-syk-planckian.js.map +0 -1
  765. package/dist/bridges/equations/be-24-foerster-fret.d.ts +0 -87
  766. package/dist/bridges/equations/be-24-foerster-fret.d.ts.map +0 -1
  767. package/dist/bridges/equations/be-24-foerster-fret.js +0 -113
  768. package/dist/bridges/equations/be-24-foerster-fret.js.map +0 -1
  769. package/dist/bridges/equations/be-25-iit-phi.d.ts +0 -222
  770. package/dist/bridges/equations/be-25-iit-phi.d.ts.map +0 -1
  771. package/dist/bridges/equations/be-25-iit-phi.js +0 -255
  772. package/dist/bridges/equations/be-25-iit-phi.js.map +0 -1
  773. package/dist/bridges/equations/be-25-orch-or.d.ts +0 -93
  774. package/dist/bridges/equations/be-25-orch-or.d.ts.map +0 -1
  775. package/dist/bridges/equations/be-25-orch-or.js +0 -124
  776. package/dist/bridges/equations/be-25-orch-or.js.map +0 -1
  777. package/dist/bridges/equations/be-26-dna-tunneling.d.ts +0 -88
  778. package/dist/bridges/equations/be-26-dna-tunneling.d.ts.map +0 -1
  779. package/dist/bridges/equations/be-26-dna-tunneling.js +0 -142
  780. package/dist/bridges/equations/be-26-dna-tunneling.js.map +0 -1
  781. package/dist/bridges/equations/be-27-effective-temperature.d.ts +0 -87
  782. package/dist/bridges/equations/be-27-effective-temperature.d.ts.map +0 -1
  783. package/dist/bridges/equations/be-27-effective-temperature.js +0 -112
  784. package/dist/bridges/equations/be-27-effective-temperature.js.map +0 -1
  785. package/dist/bridges/equations/be-28-onsager-entropy-production.d.ts +0 -181
  786. package/dist/bridges/equations/be-28-onsager-entropy-production.d.ts.map +0 -1
  787. package/dist/bridges/equations/be-28-onsager-entropy-production.js +0 -199
  788. package/dist/bridges/equations/be-28-onsager-entropy-production.js.map +0 -1
  789. package/dist/bridges/equations/be-29-jarzynski.d.ts +0 -92
  790. package/dist/bridges/equations/be-29-jarzynski.d.ts.map +0 -1
  791. package/dist/bridges/equations/be-29-jarzynski.js +0 -127
  792. package/dist/bridges/equations/be-29-jarzynski.js.map +0 -1
  793. package/dist/bridges/equations/be-30-flm-first-law.d.ts +0 -102
  794. package/dist/bridges/equations/be-30-flm-first-law.d.ts.map +0 -1
  795. package/dist/bridges/equations/be-30-flm-first-law.js +0 -98
  796. package/dist/bridges/equations/be-30-flm-first-law.js.map +0 -1
  797. package/dist/bridges/equations/be-31-causal-set-bd.d.ts +0 -102
  798. package/dist/bridges/equations/be-31-causal-set-bd.d.ts.map +0 -1
  799. package/dist/bridges/equations/be-31-causal-set-bd.js +0 -119
  800. package/dist/bridges/equations/be-31-causal-set-bd.js.map +0 -1
  801. package/dist/bridges/equations/be-32-quantum-reference-frame.d.ts +0 -110
  802. package/dist/bridges/equations/be-32-quantum-reference-frame.d.ts.map +0 -1
  803. package/dist/bridges/equations/be-32-quantum-reference-frame.js +0 -145
  804. package/dist/bridges/equations/be-32-quantum-reference-frame.js.map +0 -1
  805. package/dist/bridges/equations/be-33-hertz-millis.d.ts +0 -102
  806. package/dist/bridges/equations/be-33-hertz-millis.d.ts.map +0 -1
  807. package/dist/bridges/equations/be-33-hertz-millis.js +0 -117
  808. package/dist/bridges/equations/be-33-hertz-millis.js.map +0 -1
  809. package/dist/bridges/equations/be-34-kibble-zurek.d.ts +0 -83
  810. package/dist/bridges/equations/be-34-kibble-zurek.d.ts.map +0 -1
  811. package/dist/bridges/equations/be-34-kibble-zurek.js +0 -139
  812. package/dist/bridges/equations/be-34-kibble-zurek.js.map +0 -1
  813. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts +0 -101
  814. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts.map +0 -1
  815. package/dist/bridges/equations/be-35-conformal-bootstrap.js +0 -123
  816. package/dist/bridges/equations/be-35-conformal-bootstrap.js.map +0 -1
  817. package/dist/bridges/equations/be-36-gw-speed-bound.d.ts +0 -90
  818. package/dist/bridges/equations/be-36-gw-speed-bound.d.ts.map +0 -1
  819. package/dist/bridges/equations/be-36-gw-speed-bound.js +0 -106
  820. package/dist/bridges/equations/be-36-gw-speed-bound.js.map +0 -1
  821. package/dist/bridges/equations/be-37-shapiro-delay.d.ts +0 -264
  822. package/dist/bridges/equations/be-37-shapiro-delay.d.ts.map +0 -1
  823. package/dist/bridges/equations/be-37-shapiro-delay.js +0 -420
  824. package/dist/bridges/equations/be-37-shapiro-delay.js.map +0 -1
  825. package/dist/bridges/equations/be-38-mond.d.ts +0 -94
  826. package/dist/bridges/equations/be-38-mond.d.ts.map +0 -1
  827. package/dist/bridges/equations/be-38-mond.js +0 -114
  828. package/dist/bridges/equations/be-38-mond.js.map +0 -1
  829. package/dist/bridges/equations/be-39-asymptotic-safety.d.ts +0 -170
  830. package/dist/bridges/equations/be-39-asymptotic-safety.d.ts.map +0 -1
  831. package/dist/bridges/equations/be-39-asymptotic-safety.js +0 -263
  832. package/dist/bridges/equations/be-39-asymptotic-safety.js.map +0 -1
  833. package/dist/bridges/equations/be-40-composite-higgs.d.ts +0 -89
  834. package/dist/bridges/equations/be-40-composite-higgs.d.ts.map +0 -1
  835. package/dist/bridges/equations/be-40-composite-higgs.js +0 -149
  836. package/dist/bridges/equations/be-40-composite-higgs.js.map +0 -1
  837. package/dist/bridges/equations/be-41-swampland.d.ts +0 -73
  838. package/dist/bridges/equations/be-41-swampland.d.ts.map +0 -1
  839. package/dist/bridges/equations/be-41-swampland.js +0 -108
  840. package/dist/bridges/equations/be-41-swampland.js.map +0 -1
  841. package/dist/bridges/equations/be-42-hawking-temperature.d.ts +0 -72
  842. package/dist/bridges/equations/be-42-hawking-temperature.d.ts.map +0 -1
  843. package/dist/bridges/equations/be-42-hawking-temperature.js +0 -108
  844. package/dist/bridges/equations/be-42-hawking-temperature.js.map +0 -1
  845. package/dist/bridges/equations/be-43-er-epr.d.ts +0 -79
  846. package/dist/bridges/equations/be-43-er-epr.d.ts.map +0 -1
  847. package/dist/bridges/equations/be-43-er-epr.js +0 -106
  848. package/dist/bridges/equations/be-43-er-epr.js.map +0 -1
  849. package/dist/bridges/equations/be-44-soft-hair.d.ts +0 -157
  850. package/dist/bridges/equations/be-44-soft-hair.d.ts.map +0 -1
  851. package/dist/bridges/equations/be-44-soft-hair.js +0 -177
  852. package/dist/bridges/equations/be-44-soft-hair.js.map +0 -1
  853. package/dist/bridges/equations/be-45-tcc.d.ts +0 -122
  854. package/dist/bridges/equations/be-45-tcc.d.ts.map +0 -1
  855. package/dist/bridges/equations/be-45-tcc.js +0 -149
  856. package/dist/bridges/equations/be-45-tcc.js.map +0 -1
  857. package/dist/bridges/equations/be-46-multiverse-measure.d.ts +0 -169
  858. package/dist/bridges/equations/be-46-multiverse-measure.d.ts.map +0 -1
  859. package/dist/bridges/equations/be-46-multiverse-measure.js +0 -192
  860. package/dist/bridges/equations/be-46-multiverse-measure.js.map +0 -1
  861. package/dist/bridges/equations/be-47-bbn-dark-sector.d.ts +0 -78
  862. package/dist/bridges/equations/be-47-bbn-dark-sector.d.ts.map +0 -1
  863. package/dist/bridges/equations/be-47-bbn-dark-sector.js +0 -119
  864. package/dist/bridges/equations/be-47-bbn-dark-sector.js.map +0 -1
  865. package/dist/bridges/equations/be-48-grw-localization.d.ts +0 -91
  866. package/dist/bridges/equations/be-48-grw-localization.d.ts.map +0 -1
  867. package/dist/bridges/equations/be-48-grw-localization.js +0 -103
  868. package/dist/bridges/equations/be-48-grw-localization.js.map +0 -1
  869. package/dist/bridges/equations/be-49-quantum-darwinism.d.ts +0 -103
  870. package/dist/bridges/equations/be-49-quantum-darwinism.d.ts.map +0 -1
  871. package/dist/bridges/equations/be-49-quantum-darwinism.js +0 -117
  872. package/dist/bridges/equations/be-49-quantum-darwinism.js.map +0 -1
  873. package/dist/bridges/equations/be-50-wheeler-feynman.d.ts +0 -116
  874. package/dist/bridges/equations/be-50-wheeler-feynman.d.ts.map +0 -1
  875. package/dist/bridges/equations/be-50-wheeler-feynman.js +0 -215
  876. package/dist/bridges/equations/be-50-wheeler-feynman.js.map +0 -1
  877. package/dist/bridges/equations/be-53-yang-mills-beta.d.ts +0 -179
  878. package/dist/bridges/equations/be-53-yang-mills-beta.d.ts.map +0 -1
  879. package/dist/bridges/equations/be-53-yang-mills-beta.js +0 -187
  880. package/dist/bridges/equations/be-53-yang-mills-beta.js.map +0 -1
  881. package/dist/bridges/equations/be-54-randall-sundrum-brane.d.ts +0 -117
  882. package/dist/bridges/equations/be-54-randall-sundrum-brane.d.ts.map +0 -1
  883. package/dist/bridges/equations/be-54-randall-sundrum-brane.js +0 -209
  884. package/dist/bridges/equations/be-54-randall-sundrum-brane.js.map +0 -1
  885. package/dist/bridges/gravitational-lensing.d.ts +0 -73
  886. package/dist/bridges/gravitational-lensing.d.ts.map +0 -1
  887. package/dist/bridges/gravitational-lensing.js +0 -59
  888. package/dist/bridges/gravitational-lensing.js.map +0 -1
  889. package/dist/bridges/perihelion-precession-labeled.d.ts +0 -46
  890. package/dist/bridges/perihelion-precession-labeled.d.ts.map +0 -1
  891. package/dist/bridges/perihelion-precession-labeled.js +0 -54
  892. package/dist/bridges/perihelion-precession-labeled.js.map +0 -1
  893. package/dist/bridges/perihelion-precession.d.ts +0 -87
  894. package/dist/bridges/perihelion-precession.d.ts.map +0 -1
  895. package/dist/bridges/perihelion-precession.js +0 -82
  896. package/dist/bridges/perihelion-precession.js.map +0 -1
  897. package/dist/bridges/plasma-catalog.d.ts +0 -29
  898. package/dist/bridges/plasma-catalog.d.ts.map +0 -1
  899. package/dist/bridges/plasma-catalog.js +0 -427
  900. package/dist/bridges/plasma-catalog.js.map +0 -1
  901. package/dist/bridges/plasma-space.d.ts +0 -310
  902. package/dist/bridges/plasma-space.d.ts.map +0 -1
  903. package/dist/bridges/plasma-space.js +0 -262
  904. package/dist/bridges/plasma-space.js.map +0 -1
  905. package/dist/composition/edges/_catalog-helpers.d.ts +0 -38
  906. package/dist/composition/edges/_catalog-helpers.d.ts.map +0 -1
  907. package/dist/composition/edges/_catalog-helpers.js +0 -90
  908. package/dist/composition/edges/_catalog-helpers.js.map +0 -1
  909. package/dist/composition/edges/applied-physicist.d.ts +0 -181
  910. package/dist/composition/edges/applied-physicist.d.ts.map +0 -1
  911. package/dist/composition/edges/applied-physicist.js +0 -843
  912. package/dist/composition/edges/applied-physicist.js.map +0 -1
  913. package/dist/composition/edges/calibration.d.ts +0 -107
  914. package/dist/composition/edges/calibration.d.ts.map +0 -1
  915. package/dist/composition/edges/calibration.js +0 -559
  916. package/dist/composition/edges/calibration.js.map +0 -1
  917. package/dist/composition/edges/catalog-condensed-matter.d.ts +0 -65
  918. package/dist/composition/edges/catalog-condensed-matter.d.ts.map +0 -1
  919. package/dist/composition/edges/catalog-condensed-matter.js +0 -257
  920. package/dist/composition/edges/catalog-condensed-matter.js.map +0 -1
  921. package/dist/composition/edges/catalog-fields.d.ts +0 -68
  922. package/dist/composition/edges/catalog-fields.d.ts.map +0 -1
  923. package/dist/composition/edges/catalog-fields.js +0 -207
  924. package/dist/composition/edges/catalog-fields.js.map +0 -1
  925. package/dist/composition/edges/catalog-full.d.ts +0 -43
  926. package/dist/composition/edges/catalog-full.d.ts.map +0 -1
  927. package/dist/composition/edges/catalog-full.js +0 -73
  928. package/dist/composition/edges/catalog-full.js.map +0 -1
  929. package/dist/composition/edges/catalog-gravitation-cosmology.d.ts +0 -81
  930. package/dist/composition/edges/catalog-gravitation-cosmology.d.ts.map +0 -1
  931. package/dist/composition/edges/catalog-gravitation-cosmology.js +0 -275
  932. package/dist/composition/edges/catalog-gravitation-cosmology.js.map +0 -1
  933. package/dist/composition/edges/catalog-quantum.d.ts +0 -85
  934. package/dist/composition/edges/catalog-quantum.d.ts.map +0 -1
  935. package/dist/composition/edges/catalog-quantum.js +0 -297
  936. package/dist/composition/edges/catalog-quantum.js.map +0 -1
  937. package/dist/composition/edges/catalog-tranche.d.ts +0 -108
  938. package/dist/composition/edges/catalog-tranche.d.ts.map +0 -1
  939. package/dist/composition/edges/catalog-tranche.js +0 -304
  940. package/dist/composition/edges/catalog-tranche.js.map +0 -1
  941. package/dist/composition/edges/condensed-r5.d.ts +0 -105
  942. package/dist/composition/edges/condensed-r5.d.ts.map +0 -1
  943. package/dist/composition/edges/condensed-r5.js +0 -505
  944. package/dist/composition/edges/condensed-r5.js.map +0 -1
  945. package/dist/composition/edges/condensed-r8.d.ts +0 -30
  946. package/dist/composition/edges/condensed-r8.d.ts.map +0 -1
  947. package/dist/composition/edges/condensed-r8.js +0 -325
  948. package/dist/composition/edges/condensed-r8.js.map +0 -1
  949. package/dist/composition/edges/engineering-r7.d.ts +0 -20
  950. package/dist/composition/edges/engineering-r7.d.ts.map +0 -1
  951. package/dist/composition/edges/engineering-r7.js +0 -262
  952. package/dist/composition/edges/engineering-r7.js.map +0 -1
  953. package/dist/composition/edges/plasma-space.d.ts +0 -50
  954. package/dist/composition/edges/plasma-space.d.ts.map +0 -1
  955. package/dist/composition/edges/plasma-space.js +0 -481
  956. package/dist/composition/edges/plasma-space.js.map +0 -1
  957. package/dist/composition/edges/proved-seeds.d.ts +0 -39
  958. package/dist/composition/edges/proved-seeds.d.ts.map +0 -1
  959. package/dist/composition/edges/proved-seeds.js +0 -197
  960. package/dist/composition/edges/proved-seeds.js.map +0 -1
  961. package/dist/composition/quantities/_dims.d.ts +0 -45
  962. package/dist/composition/quantities/_dims.d.ts.map +0 -1
  963. package/dist/composition/quantities/_dims.js +0 -55
  964. package/dist/composition/quantities/_dims.js.map +0 -1
  965. package/dist/composition/quantities/applied-physicist.d.ts +0 -166
  966. package/dist/composition/quantities/applied-physicist.d.ts.map +0 -1
  967. package/dist/composition/quantities/applied-physicist.js +0 -543
  968. package/dist/composition/quantities/applied-physicist.js.map +0 -1
  969. package/dist/composition/quantities/common.d.ts +0 -69
  970. package/dist/composition/quantities/common.d.ts.map +0 -1
  971. package/dist/composition/quantities/common.js +0 -210
  972. package/dist/composition/quantities/common.js.map +0 -1
  973. package/dist/composition/quantities/condensed-matter.d.ts +0 -79
  974. package/dist/composition/quantities/condensed-matter.d.ts.map +0 -1
  975. package/dist/composition/quantities/condensed-matter.js +0 -238
  976. package/dist/composition/quantities/condensed-matter.js.map +0 -1
  977. package/dist/composition/quantities/condensed-r5.d.ts +0 -110
  978. package/dist/composition/quantities/condensed-r5.d.ts.map +0 -1
  979. package/dist/composition/quantities/condensed-r5.js +0 -359
  980. package/dist/composition/quantities/condensed-r5.js.map +0 -1
  981. package/dist/composition/quantities/condensed-r8.d.ts +0 -96
  982. package/dist/composition/quantities/condensed-r8.d.ts.map +0 -1
  983. package/dist/composition/quantities/condensed-r8.js +0 -107
  984. package/dist/composition/quantities/condensed-r8.js.map +0 -1
  985. package/dist/composition/quantities/engineering-r7.d.ts +0 -82
  986. package/dist/composition/quantities/engineering-r7.d.ts.map +0 -1
  987. package/dist/composition/quantities/engineering-r7.js +0 -92
  988. package/dist/composition/quantities/engineering-r7.js.map +0 -1
  989. package/dist/composition/quantities/fields.d.ts +0 -69
  990. package/dist/composition/quantities/fields.d.ts.map +0 -1
  991. package/dist/composition/quantities/fields.js +0 -210
  992. package/dist/composition/quantities/fields.js.map +0 -1
  993. package/dist/composition/quantities/gravitation-cosmology.d.ts +0 -71
  994. package/dist/composition/quantities/gravitation-cosmology.d.ts.map +0 -1
  995. package/dist/composition/quantities/gravitation-cosmology.js +0 -215
  996. package/dist/composition/quantities/gravitation-cosmology.js.map +0 -1
  997. package/dist/composition/quantities/plasma-space.d.ts +0 -178
  998. package/dist/composition/quantities/plasma-space.d.ts.map +0 -1
  999. package/dist/composition/quantities/plasma-space.js +0 -185
  1000. package/dist/composition/quantities/plasma-space.js.map +0 -1
  1001. package/dist/composition/quantities/quantum.d.ts +0 -63
  1002. package/dist/composition/quantities/quantum.d.ts.map +0 -1
  1003. package/dist/composition/quantities/quantum.js +0 -190
  1004. package/dist/composition/quantities/quantum.js.map +0 -1
  1005. package/dist/numerical/be37-covariant-eikonal.d.ts.map +0 -1
  1006. package/dist/numerical/be37-covariant-eikonal.js.map +0 -1
@@ -6,37 +6,41 @@
6
6
  * `W/m*K` both mean W·m⁻¹·K⁻¹). An exact symbol is matched before a prefixed
7
7
  * one, so `min` is a minute, `Pa` a pascal and `mm` a millimetre.
8
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.
9
+ * An affine temperature (`degC`, `°C`, `degF`, `°F`) is accepted only alone.
10
+ * The kelvin value is `value × scale + offset` for an absolute reading and
11
+ * `value × scale` for a difference. Rankine is proportional (`°R × 5/9`), not
12
+ * affine. The caller decides which reading, from the quantity's role.
13
13
  *
14
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. A glued positive
16
- * exponent is that power when the letters are already a unit, so `K2` and
17
- * `K²` are `K^2`.
15
+ * terasecond; `G` is the gauss and `GPa` is a gigapascal; `P` is the poise
16
+ * and `PV` is still a petavolt. A glued positive exponent is that power when
17
+ * the letters are already a unit, so `K2` and `K²` are `K^2`.
18
18
  *
19
19
  * A token with no separator is one factor when the whole token is an exact
20
20
  * unit or a prefix plus a unit, with an optional exponent. That reading
21
- * wins, so `ms` stays a millisecond, `mm` a millimetre, `mK` a millikelvin,
22
- * and `Ts` a terasecond. Otherwise the token is a product of such factors
23
- * when exactly one split exists: `m2K` is `m^2·K`, `Vs` is `V·s`, and
24
- * `cm^2/Vs` is `cm^2/(V·s)`. Zero splits are an unknown unit. Two or more
21
+ * wins on a bare token, so `ms` stays a millisecond, `mm` a millimetre,
22
+ * `mK` a millikelvin, and `Ts` a terasecond. Inside a larger expression the
23
+ * prefixed reading competes with a heterogeneous product (`mK` is millikelvin
24
+ * or metre·kelvin; `ms` is millisecond or metre·second). A homogeneous power
25
+ * does not compete (`mm` is a millimetre, not metre·metre). `parseUnit` names
26
+ * every remaining reading and refuses. `convertValue` keeps the one reading
27
+ * whose dimension is the declared unit. A token that is not one factor is a
28
+ * product when exactly one split exists: `m2K` is `m^2·K`, `Vs` is `V·s`,
29
+ * and `cm^2/Vs` is `cm^2/(V·s)`. Zero splits are an unknown unit. Two or more
25
30
  * splits name each reading and are refused (`mAs` is milliampere·second or
26
31
  * metre·ampere·second). An unknown token that ends in a digit stays unknown
27
32
  * when it is not that product.
28
- * `AU` is the same exact metre count as `au`. `Msun` is `M_SUN_SI` kilograms; `Msun_iau` is
29
- * `GM_SUN_SI / G_SI`. `myr` is a milliyear because `m` is the SI prefix.
30
- * `eV` takes an SI prefix, so `GeV` is 10⁹ eV in joules. `nat` is the
31
- * coherent information unit (scale 1); `bit` is ln 2 nat. Neither takes a
32
- * prefix.
33
+ * The table is data: `data/units.json`, loaded and validated by
34
+ * `unit-data.ts`. Every row, prefix, refused spelling, prefix letter, affine
35
+ * scale and spelling note is a row there, with the reason as its `comment`;
36
+ * this module holds the grammar. `myr` is a milliyear because `m` is the SI
37
+ * prefix, and `eV` takes one, so `GeV` is 10⁹ eV in joules.
33
38
  *
34
39
  * @module dimensional/units
35
40
  */
36
- import { toSiDimensionVector } from '@danielsimonjr/mathts-core';
37
- import { unit } from '@danielsimonjr/mathts-functions';
38
41
  import { equals, format, multiply, power } from './algebra.js';
39
- import { C_SI, E_SI, G_SI, GM_SUN_SI, M_SUN_SI } from '../core/constants.js';
42
+ import { addScales, decimalScale, divideScales, multiplyScales, powerScale, ratioScale, scaleToNumber, solidusSides, UNIT_SCALE, } from './exact-scale.js';
43
+ import { UNIT_DATA } from './unit-data.js';
40
44
  /** Thrown for any input that does not parse as a value with a known unit. @public */
41
45
  export class UnitError extends Error {
42
46
  constructor(message) {
@@ -44,85 +48,93 @@ export class UnitError extends Error {
44
48
  this.name = 'UnitError';
45
49
  }
46
50
  }
51
+ /** A symbol no table row and no prefix spells. @public */
52
+ export class UnknownUnitError extends UnitError {
53
+ symbol;
54
+ constructor(symbol) {
55
+ super(`unknown unit '${symbol}'`);
56
+ this.symbol = symbol;
57
+ this.name = 'UnknownUnitError';
58
+ }
59
+ }
60
+ /**
61
+ * A unit the reader recognizes and refuses: a logarithmic or ratio unit, an
62
+ * ambiguous name such as `ton`, or an affine temperature inside a compound.
63
+ * @public
64
+ */
65
+ export class UnitRefusedError extends UnitError {
66
+ constructor(message) {
67
+ super(message);
68
+ this.name = 'UnitRefusedError';
69
+ }
70
+ }
71
+ /** A unit expression with more than one dimensionally distinct reading. @public */
72
+ export class AmbiguousUnitError extends UnitError {
73
+ text;
74
+ readings;
75
+ constructor(text, readings) {
76
+ super(`'${text}' is ambiguous: ${readings.join(' or ')}`);
77
+ this.text = text;
78
+ this.readings = readings;
79
+ this.name = 'AmbiguousUnitError';
80
+ }
81
+ }
47
82
  const D = (p) => ({ L: 0, M: 0, T: 0, I: 0, Theta: 0, N: 0, J: 0, ...p });
48
- const JOULE = D({ L: 2, M: 1, T: -2 });
49
83
  const DIMENSIONLESS = D({});
50
- /** symbol → [scale to SI base, dimension, takes an SI prefix]. */
51
- const UNITS = new Map([
52
- ['m', [1, D({ L: 1 }), true]],
53
- ['g', [1e-3, D({ M: 1 }), true]],
54
- ['s', [1, D({ T: 1 }), true]],
55
- ['K', [1, D({ Theta: 1 }), true]],
56
- ['A', [1, D({ I: 1 }), true]],
57
- ['mol', [1, D({ N: 1 }), true]],
58
- ['Hz', [1, D({ T: -1 }), true]],
59
- ['N', [1, D({ L: 1, M: 1, T: -2 }), true]],
60
- ['Pa', [1, D({ L: -1, M: 1, T: -2 }), true]],
61
- ['J', [1, JOULE, true]],
62
- ['W', [1, D({ L: 2, M: 1, T: -3 }), true]],
63
- ['C', [1, D({ T: 1, I: 1 }), true]],
64
- ['V', [1, D({ L: 2, M: 1, T: -3, I: -1 }), true]],
65
- ['ohm', [1, D({ L: 2, M: 1, T: -3, I: -2 }), true]],
66
- ['Ω', [1, D({ L: 2, M: 1, T: -3, I: -2 }), true]],
67
- ['S', [1, D({ L: -2, M: -1, T: 3, I: 2 }), true]],
68
- ['F', [1, D({ L: -2, M: -1, T: 4, I: 2 }), true]],
69
- ['eV', [E_SI, JOULE, true]],
70
- // Information. A nat is the coherent dimensionless unit; a bit is ln 2 nat.
71
- // Exact, so neither takes a prefix (`kbit` is not a kilobit).
72
- ['nat', [1, DIMENSIONLESS, false]],
73
- ['bit', [Math.LN2, DIMENSIONLESS, false]],
74
- ['rad', [1, DIMENSIONLESS, true]],
75
- ['deg', [Math.PI / 180, DIMENSIONLESS, false]],
76
- ['min', [60, D({ T: 1 }), false]],
77
- ['h', [3600, D({ T: 1 }), false]],
78
- ['d', [86400, D({ T: 1 }), false]],
79
- // The Julian year, the year the orbital evaluators take.
80
- ['yr', [365.25 * 86400, D({ T: 1 }), true]],
81
- ['au', [149597870700, D({ L: 1 }), false]],
82
- ['AU', [149597870700, D({ L: 1 }), false]],
83
- // The solar mass the evaluators use, not the IAU nominal value.
84
- ['Msun', [M_SUN_SI, D({ M: 1 }), false]],
85
- // GM☉/G, so G × Msun_iau is the IAU solar mass parameter.
86
- ['Msun_iau', [GM_SUN_SI / G_SI, D({ M: 1 }), false]],
87
- // Tesla. An exact `T` still wins over the tera prefix, so `Ts` is a
88
- // terasecond. The prefix flag is what lets `nT` and `uT` parse.
89
- ['T', [1, D({ M: 1, T: -2, I: -1 }), true]],
90
- // Gauss = 10⁻⁴ T. Exact, so `GPa` stays gigapascal (prefix G + Pa) and bare `G` is gauss.
91
- // The spelled name is the same unit. It does not take a prefix (`kgauss` is not a kilogauss).
92
- ['G', [1e-4, D({ M: 1, T: -2, I: -1 }), false]],
93
- ['gauss', [1e-4, D({ M: 1, T: -2, I: -1 }), false]],
94
- ['Gauss', [1e-4, D({ M: 1, T: -2, I: -1 }), false]],
95
- ['bar', [1e5, D({ L: -1, M: 1, T: -2 }), true]],
96
- ['atm', [101325, D({ L: -1, M: 1, T: -2 }), false]],
97
- ['angstrom', [1e-10, D({ L: 1 }), false]],
98
- ['Angstrom', [1e-10, D({ L: 1 }), false]],
99
- ['Å', [1e-10, D({ L: 1 }), false]],
100
- // IAU-style parsec; the prefix applies, so `Mpc` is a megaparsec.
101
- ['pc', [3.0856775814913673e16, D({ L: 1 }), true]],
102
- ['ly', [C_SI * 365.25 * 86400, D({ L: 1 }), false]],
103
- ]);
104
- const CELSIUS_OFFSET_K = 273.15;
105
- const PREFIXES = new Map([
106
- ['Y', 1e24], ['Z', 1e21], ['E', 1e18], ['P', 1e15], ['T', 1e12], ['G', 1e9], ['M', 1e6], ['k', 1e3],
107
- ['h', 1e2], ['da', 1e1], ['d', 1e-1], ['c', 1e-2], ['m', 1e-3], ['u', 1e-6], ['µ', 1e-6], ['μ', 1e-6],
108
- ['n', 1e-9], ['p', 1e-12], ['f', 1e-15], ['a', 1e-18], ['z', 1e-21], ['y', 1e-24],
109
- ]);
110
- function parseSymbol(sym) {
111
- const parsed = trySymbol(sym);
112
- if (parsed !== null)
113
- return parsed;
114
- throw new UnitError(`unknown unit '${sym}'`);
84
+ /** symbol → exact scale to SI base, dimension, prefixability, cycle count. Rows are `data/units.json`. */
85
+ const UNITS = UNIT_DATA.units;
86
+ /** Units that are a ratio or a log scale, and the reason each is not a plain factor. */
87
+ const REFUSED_UNITS = UNIT_DATA.refused;
88
+ /**
89
+ * Letters that are both an SI prefix and a unit of their own. Such a token
90
+ * reads as the prefix reading and not as the unit times the rest: `Gyr` is a
91
+ * gigayear. The file's `prefixLetterUnits.comment` says why `m` is not one.
92
+ */
93
+ const PREFIX_LETTER_UNITS = UNIT_DATA.prefixLetterUnits;
94
+ /** Kelvin at 0 °C, exactly. */
95
+ const CELSIUS_OFFSET_K = UNIT_DATA.iceKelvin;
96
+ /**
97
+ * Lone spellings. A compound that contains one is refused. The schema's `id`
98
+ * enum is {@link AffineTemperature}, held equal by a test: the public type
99
+ * promises callers these ids, so a new affine scale is an API change.
100
+ */
101
+ const AFFINE = UNIT_DATA.affine;
102
+ /** Kelvin at a reading of zero, exactly: 273.15 − icePoint × scale. */
103
+ function affineOffset(row) {
104
+ return addScales(CELSIUS_OFFSET_K, multiplyScales(ratioScale(-1, 1), row.icePoint, row.scale));
115
105
  }
106
+ const fractionText = (s) => (s.den === 1n ? String(s.num) : `${s.num}/${s.den}`);
107
+ /**
108
+ * How a reading on an affine scale becomes kelvin, from the row's scale and
109
+ * ice point: `absolute: (degF − 32) × 5/9 + 273.15`, `a difference: × 5/9, no offset`.
110
+ * @internal
111
+ */
112
+ export function affineReadingNote(affine, reading) {
113
+ const row = AFFINE.find((candidate) => candidate.id === affine);
114
+ const unitScale = row.scale.num === row.scale.den;
115
+ if (reading === 'difference')
116
+ return unitScale ? 'a difference: no offset' : `a difference: × ${fractionText(row.scale)}, no offset`;
117
+ const kelvin = String(scaleToNumber(CELSIUS_OFFSET_K));
118
+ if (unitScale && row.icePoint.num === 0n)
119
+ return `absolute: + ${kelvin}`;
120
+ const shifted = row.icePoint.num === 0n ? row.symbols[0] : `(${row.symbols[0]} − ${fractionText(row.icePoint)})`;
121
+ return `absolute: ${unitScale ? shifted : `${shifted} × ${fractionText(row.scale)}`} + ${kelvin}`;
122
+ }
123
+ function affineRow(text) {
124
+ return AFFINE.find((candidate) => candidate.symbols.includes(text));
125
+ }
126
+ const PREFIXES = UNIT_DATA.prefixes;
116
127
  function trySymbol(sym) {
117
128
  const exact = UNITS.get(sym);
118
129
  if (exact !== undefined)
119
- return [exact[0], exact[1]];
130
+ return { scale: exact.scale, dim: exact.dim, cycles: exact.cycles === true ? 1 : 0 };
120
131
  for (const [p, f] of PREFIXES) {
121
132
  if (!sym.startsWith(p) || sym.length === p.length)
122
133
  continue;
123
134
  const base = UNITS.get(sym.slice(p.length));
124
- if (base !== undefined && base[2])
125
- return [f * base[0], base[1]];
135
+ if (base !== undefined && base.prefixable) {
136
+ return { scale: multiplyScales(f, base.scale), dim: base.dim, cycles: base.cycles === true ? 1 : 0 };
137
+ }
126
138
  }
127
139
  return null;
128
140
  }
@@ -153,11 +165,36 @@ function tryOneFactor(token) {
153
165
  const parsed = trySymbol(base);
154
166
  if (parsed === null || !Number.isFinite(exp))
155
167
  return null;
156
- return { base, exp, scale: parsed[0], dim: parsed[1] };
168
+ return { base, exp, scale: parsed.scale, dim: parsed.dim, cycles: parsed.cycles };
157
169
  }
158
170
  function formatReading(factors) {
159
171
  return factors.map((factor) => (factor.exp === 1 ? factor.base : `${factor.base}^${factor.exp}`)).join('·');
160
172
  }
173
+ /** The unprefixed unit a prefix spelling attaches to, or null when `symbol` is exact. */
174
+ function attachedUnit(symbol) {
175
+ if (UNITS.has(symbol))
176
+ return null;
177
+ for (const [prefix] of PREFIXES) {
178
+ if (!symbol.startsWith(prefix) || symbol.length === prefix.length)
179
+ continue;
180
+ const base = symbol.slice(prefix.length);
181
+ const unitRow = UNITS.get(base);
182
+ if (unitRow !== undefined && unitRow.prefixable)
183
+ return base;
184
+ }
185
+ return null;
186
+ }
187
+ /**
188
+ * A product of the same unprefixed unit the prefix attaches to (`mm` = m·m,
189
+ * `mm2` = m·m²). Powers are written `m2` / `m^2`, so this reading does not
190
+ * compete with the prefix.
191
+ */
192
+ function homogeneousPower(single, product) {
193
+ const unit = attachedUnit(single.base);
194
+ if (unit === null)
195
+ return false;
196
+ return product.every((factor) => factor.base === unit && attachedUnit(factor.base) === null);
197
+ }
161
198
  /** Every way to split `token` into one or more factors. A one-factor token is included. */
162
199
  function segmentations(token) {
163
200
  const ways = Array.from({ length: token.length + 1 }, () => []);
@@ -179,185 +216,283 @@ function segmentations(token) {
179
216
  return [...unique.values()];
180
217
  }
181
218
  /**
182
- * Factors of one token. A token that is exactly one factor is that factor
183
- * and is not also split. Any other token must have exactly one segmentation.
219
+ * Ways to read one token. A bare expression keeps a one-factor reading and
220
+ * does not also split it. Inside a compound, a prefixed factor also competes
221
+ * with each heterogeneous product. A homogeneous power does not.
184
222
  */
185
- function readFactorToken(token) {
223
+ function tokenWays(token, compete, side) {
224
+ const refused = REFUSED_UNITS.get(token);
225
+ if (refused !== undefined)
226
+ throw new UnitRefusedError(refused);
186
227
  const single = tryOneFactor(token);
228
+ if (single !== null && !compete)
229
+ return [[single]];
230
+ // A prefixed numerator token is the prefix reading: `mN/m` is millinewton per metre.
231
+ // A denominator keeps the product readings (`W/mK`), and a target dimension chooses.
232
+ if (single !== null && side === 'numerator')
233
+ return [[single]];
234
+ const prefixWins = single !== null && PREFIX_LETTER_UNITS.has(token[0]) && attachedUnit(single.base) !== null;
235
+ const products = segmentations(token)
236
+ .filter((way) => way.length > 1)
237
+ .filter(() => !prefixWins);
238
+ const extra = single === null ? products : products.filter((way) => !homogeneousPower(single, way));
239
+ const ways = [];
187
240
  if (single !== null)
188
- return [single];
189
- const ways = segmentations(token).filter((way) => way.length > 1);
190
- if (ways.length === 0)
191
- throw new UnitError(`unknown unit '${token}'`);
192
- if (ways.length > 1) {
193
- throw new UnitError(`'${token}' is ambiguous: ${ways.map(formatReading).join(' or ')}`);
241
+ ways.push([single]);
242
+ for (const way of extra)
243
+ ways.push(way);
244
+ const unique = new Map();
245
+ for (const way of ways)
246
+ unique.set(formatReading(way), way);
247
+ const list = [...unique.values()];
248
+ if (list.length === 0)
249
+ throw new UnknownUnitError(token);
250
+ return list;
251
+ }
252
+ function cartesian(lists) {
253
+ let acc = [[]];
254
+ for (const list of lists) {
255
+ const next = [];
256
+ for (const prev of acc)
257
+ for (const item of list)
258
+ next.push([...prev, item]);
259
+ acc = next;
194
260
  }
195
- return ways[0];
261
+ return acc;
196
262
  }
197
- const SUPERSCRIPT = { '¹': 1, '²': 2, '³': 3 };
198
- function parseFactors(text, sign) {
199
- let scale = 1;
263
+ function sideTokens(text) {
264
+ return text.split(/[*·\s]+|(?<=[A-Za-zµμΩ])\.(?=[A-Za-zµμΩ])/).filter((part) => part.length > 0);
265
+ }
266
+ function formatSide(tokens) {
267
+ return tokens.map((factors) => formatReading(factors)).join('·');
268
+ }
269
+ function formatExpression(num, den) {
270
+ const numerator = formatSide(num);
271
+ if (den.length === 0)
272
+ return numerator;
273
+ const denominator = formatSide(den);
274
+ return denominator.includes('·') ? `${numerator}/(${denominator})` : `${numerator}/${denominator}`;
275
+ }
276
+ function accumulate(tokens, sign) {
277
+ let scale = UNIT_SCALE;
200
278
  let dim = DIMENSIONLESS;
201
- for (const token of text.split(/[*·\s]+/).filter((part) => part.length > 0)) {
202
- for (const factor of readFactorToken(token)) {
279
+ let cycles = 0;
280
+ for (const factors of tokens) {
281
+ for (const factor of factors) {
203
282
  const n = sign * factor.exp;
204
- scale *= factor.scale ** n;
283
+ scale = multiplyScales(scale, powerScale(factor.scale, n));
205
284
  dim = multiply(dim, power(factor.dim, n));
285
+ cycles += factor.cycles * n;
206
286
  }
207
287
  }
208
- return { scale, dim };
288
+ return { scale, dim, cycles };
289
+ }
290
+ function reading(exact, dim, label, cycles, affine) {
291
+ return {
292
+ scale: scaleToNumber(exact),
293
+ exact,
294
+ dim,
295
+ label,
296
+ cycles,
297
+ ...(affine === undefined ? {} : { affine }),
298
+ };
209
299
  }
210
300
  /**
211
- * Spellings that convert correctly and still mean something else to a reader.
212
- * `myr` is a milliyear, `Msun` is `M_SUN_SI`, bare `G` is the gauss, bare `T`
213
- * is the tesla, and bare `A` is the ampere rather than the angstrom.
301
+ * Every dimensionally distinct reading of one unit expression.
302
+ *
303
+ * The unit grammar is not the formula grammar, and the difference is
304
+ * deliberate: a unit symbol is not an identifier (a prefix, a glued product
305
+ * or a glued power lives inside one token: `mN`, `m2K`, `Vs`, `K²`, `°C`,
306
+ * `%`), and everything after the first `/` is the denominator, the
307
+ * single-solidus convention of ISO 80000-1 (`W/m*K` is W·m⁻¹·K⁻¹), where the
308
+ * formula grammar would read `(W/m)·K`.
214
309
  * @internal
215
310
  */
216
- export function unitConventionNotes(given) {
217
- const notes = [];
218
- const symbols = given.split(/[*·/\s^0-9()+-]+/).filter((s) => s.length > 0);
219
- if (symbols.includes('myr')) {
220
- notes.push('myr is a milliyear (the SI prefix m on yr = 0.001 yr), not a million years; a million years is Myr');
311
+ function unitReadings(text) {
312
+ const t = text.trim();
313
+ if (t === '' || t === '1')
314
+ return [reading(UNIT_SCALE, DIMENSIONLESS, '1', 0)];
315
+ const affine = affineRow(t);
316
+ if (affine !== undefined)
317
+ return [reading(affine.scale, D({ Theta: 1 }), t, 0, affine.id)];
318
+ if (AFFINE.some((candidate) => candidate.symbols.some((symbol) => t.includes(symbol))) ||
319
+ /deg\s+[CFcf]|°\s*[CFcf]/.test(t)) {
320
+ throw new UnitRefusedError('an affine temperature cannot be part of a compound unit; give K');
221
321
  }
222
- if (symbols.includes('Msun')) {
223
- 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`);
322
+ // A chain is one denominator: `km/s/Mpc` is km/(s·Mpc), the way the Hubble constant is written.
323
+ const sides = solidusSides(t);
324
+ const compete = /[*·/\s]/.test(t);
325
+ const numerator = sideTokens(sides.numerator);
326
+ const denominator = sides.denominator === '' ? [] : sideTokens(sides.denominator);
327
+ // `/s` is a dimensionless numerator over seconds. A bare `/` is not a unit.
328
+ if (numerator.length === 0 && denominator.length === 0)
329
+ throw new UnknownUnitError(t);
330
+ const numWays = numerator.map((token) => tokenWays(token, compete, 'numerator'));
331
+ const denWays = denominator.map((token) => tokenWays(token, compete, 'denominator'));
332
+ const numCombos = numerator.length === 0 ? [[]] : cartesian(numWays);
333
+ const denCombos = denominator.length === 0 ? [[]] : cartesian(denWays);
334
+ const unique = new Map();
335
+ for (const num of numCombos) {
336
+ for (const den of denCombos) {
337
+ const n = accumulate(num, 1);
338
+ const d = accumulate(den, -1);
339
+ const label = formatExpression(num, den);
340
+ unique.set(label, reading(multiplyScales(n.scale, d.scale), multiply(n.dim, d.dim), label, n.cycles + d.cycles));
341
+ }
224
342
  }
225
- if (symbols.includes('G'))
226
- notes.push('bare G is the gauss (1e-4 T); GPa is still a gigapascal');
227
- if (symbols.includes('T'))
228
- notes.push('bare T is the tesla; Ts is a terasecond');
229
- if (symbols.includes('A'))
230
- notes.push('bare A is the ampere, not the angstrom; write angstrom or Å for 10^-10 m');
231
- return notes;
343
+ return [...unique.values()];
344
+ }
345
+ const SUPERSCRIPT = { '¹': 1, '²': 2, '³': 3 };
346
+ /**
347
+ * Spellings that convert correctly and still mean something else to a reader:
348
+ * the `spellingNotes` of `data/units.json` for each symbol in `given`, in file
349
+ * order. `myr` is a milliyear, bare `G` is the gauss, bare `A` the ampere.
350
+ * @internal
351
+ */
352
+ export function unitConventionNotes(given) {
353
+ const symbols = new Set(given.split(/[*·/\s^0-9()+-]+/).filter((s) => s.length > 0));
354
+ return [...UNIT_DATA.spellingNotes].filter(([spelling]) => symbols.has(spelling)).map(([, note]) => note);
355
+ }
356
+ /** The one reading of a unit expression; more than one is refused. @internal */
357
+ export function readUnit(text) {
358
+ const t = text.trim();
359
+ const readings = unitReadings(t);
360
+ if (readings.length !== 1)
361
+ throw new AmbiguousUnitError(t, readings.map((r) => r.label));
362
+ return readings[0];
232
363
  }
233
364
  /** Parse a unit expression; the empty string is dimensionless. @public */
234
365
  export function parseUnit(text) {
235
- const t = text.trim();
236
- if (t === '' || t === '1')
237
- return { scale: 1, dim: DIMENSIONLESS };
238
- if (t === 'degC' || t === '°C')
239
- return { scale: 1, dim: D({ Theta: 1 }), affine: 'celsius' };
240
- if (/deg ?F|°F/.test(t))
241
- throw new UnitError('Fahrenheit is not accepted; give K or degC');
242
- if (/degC|°C/.test(t))
243
- throw new UnitError('degC is affine and cannot be part of a compound unit; give K');
244
- const parts = t.split('/');
245
- if (parts.length > 2)
246
- throw new UnitError(`'${t}' has more than one '/'; put the whole denominator after one '/'`);
247
- const num = parseFactors(parts[0], 1);
248
- if (parts.length === 1)
249
- return num;
250
- const den = parseFactors(parts[1].replace(/^\((.*)\)$/, '$1'), -1);
251
- return { scale: num.scale * den.scale, dim: multiply(num.dim, den.dim) };
366
+ const r = readUnit(text);
367
+ return { scale: r.scale, dim: r.dim, ...(r.affine !== undefined ? { affine: r.affine } : {}) };
368
+ }
369
+ /** The SI magnitude of `magnitude` in `unit`, exactly. An absolute affine reading adds its offset. */
370
+ function siMagnitude(magnitude, unit, temperature) {
371
+ const scaled = multiplyScales(magnitude, unit.exact);
372
+ const row = unit.affine === undefined ? undefined : AFFINE.find((candidate) => candidate.id === unit.affine);
373
+ return row !== undefined && temperature === 'absolute' ? addScales(scaled, affineOffset(row)) : scaled;
252
374
  }
375
+ const FRACTION = /^\s*([+-]?(?:\d+\.?\d*|\.\d+))\s*\/\s*((?:\d+\.?\d*|\.\d+))\s*$/;
376
+ const NUMBER_THEN_REST = /^\s*([+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?)\s*(.*?)\s*$/;
253
377
  /**
254
- * Convert `raw` (`<number>[unit]`) into `target` (a unit expression). A bare
255
- * number is taken to be in `target` already. The dimensions must agree.
256
- *
257
- * @returns the value in `target`, and the unit the user gave (`''` for none).
258
- * @public
378
+ * `raw` split into an exact decimal magnitude and the unit text after it, or
379
+ * null when `raw` is not a number followed by an optional unit. A plain
380
+ * fraction (`1/3`) is a number. Text that begins with an operator (`*h`,
381
+ * `·c`) is an expression, not a unit.
382
+ * @internal
259
383
  */
260
- export function convertValue(raw, target, reading = 'absolute') {
261
- const m = /^\s*([+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?)\s*(.*?)\s*$/.exec(raw);
384
+ function splitQuantityLiteral(raw) {
385
+ const fraction = FRACTION.exec(raw);
386
+ if (fraction !== null) {
387
+ const den = decimalScale(fraction[2]);
388
+ if (den.num !== 0n)
389
+ return { magnitude: divideScales(decimalScale(fraction[1]), den), unit: '' };
390
+ }
391
+ const m = NUMBER_THEN_REST.exec(raw);
262
392
  if (m === null)
263
- throw new UnitError(`'${raw}' is not a number with an optional unit`);
264
- const v = Number(m[1]);
265
- const given = m[2];
266
- if (!Number.isFinite(v))
393
+ return null;
394
+ const unit = m[2];
395
+ if (unit.startsWith('*') || unit.startsWith('·'))
396
+ return null;
397
+ const magnitude = decimalScale(m[1]);
398
+ return magnitude === null ? null : { magnitude, unit };
399
+ }
400
+ function finiteLiteral(raw, value) {
401
+ if (!Number.isFinite(value))
267
402
  throw new UnitError(`'${raw}' is not a finite number`);
268
- if (given === '')
269
- return { value: v, given };
270
- const from = parseUnit(given);
271
- const to = parseUnit(target);
272
- if (to.affine !== undefined)
273
- throw new UnitError(`a declared unit cannot be affine ('${target}')`);
274
- if (!equals(from.dim, to.dim)) {
275
- throw new UnitError(`'${given}' is ${format(from.dim)}, but this input is ${format(to.dim)} (${target || 'dimensionless'})`);
403
+ return value;
404
+ }
405
+ /**
406
+ * Read `raw` as one number with an optional unit, in SI. Null when `raw` is
407
+ * not that form or names a unit no row spells, so the caller can read it as
408
+ * an expression. A refused unit and an ambiguous one throw. The value may be
409
+ * non-finite (`1e999`); the caller owns that refusal and its error class.
410
+ * @internal
411
+ */
412
+ export function readQuantityLiteral(raw, temperature = 'absolute') {
413
+ const literal = splitQuantityLiteral(raw);
414
+ if (literal === null)
415
+ return null;
416
+ if (literal.unit === '') {
417
+ return { value: scaleToNumber(literal.magnitude), dim: DIMENSIONLESS, unit: '', cycles: 0 };
276
418
  }
277
- const offset = from.affine === 'celsius' && reading === 'absolute' ? CELSIUS_OFFSET_K : 0;
278
- const local = (v * from.scale + offset) / to.scale;
279
- // MathTS `unit` + `toSI` is the conversion when it reads the same quantity.
280
- // A temperature difference must not take the absolute offset `toSI` adds.
281
- // `bit` is ln 2 nat here; MathTS reads `bit` as 1. Symbols MathTS does not
282
- // have (a solar mass, a Julian year, the gauss) stay on the table above.
283
- const via = mathTsRatio(v, given, target);
284
- if (via !== undefined && sameQuantity(via, local))
285
- return { value: via, given };
286
- return { value: local, given };
287
- }
288
- /** Spellings MathTS's unit parser accepts for the same UPT symbol. */
289
- function mathTsSpelling(text) {
290
- return text
291
- .replaceAll('µ', 'u')
292
- .replaceAll('μ', 'u')
293
- .replaceAll('Ω', 'ohm')
294
- .replaceAll('Å', 'angstrom')
295
- .replaceAll('°C', 'degC');
296
- }
297
- /** The 7-base record for a MathTS length-10 exponent vector. Angle, bit, and solid angle are dropped. */
298
- function dimensionFromUnitVector(vector) {
299
- const v = toSiDimensionVector(vector, { ignoreExtra: true });
300
- return { L: v[0], M: v[1], T: v[2], I: v[3], Theta: v[4], N: v[5], J: v[6] };
301
- }
302
- function mathTsReading(value, unitText) {
303
- // `unit` is a typed-function; its declared return is `unknown`.
304
- const created = unit(value, mathTsSpelling(unitText));
305
- const n = Number(created.toSI().value);
306
- if (!Number.isFinite(n))
307
- throw new Error('non-finite SI magnitude');
308
- return { si: n, dim: dimensionFromUnitVector(created.dimensions) };
309
- }
310
- function mathTsRatio(value, given, target) {
419
+ let unit;
311
420
  try {
312
- const from = mathTsReading(value, given);
313
- const to = mathTsReading(1, target);
314
- if (to.si === 0)
315
- return undefined;
316
- // A scale match is not enough when the 7-base dimensions differ.
317
- if (!equals(from.dim, parseUnit(given).dim))
318
- return undefined;
319
- if (!equals(to.dim, parseUnit(target).dim))
320
- return undefined;
321
- return from.si / to.si;
421
+ unit = readUnit(literal.unit);
322
422
  }
323
- catch {
324
- return undefined;
423
+ catch (error) {
424
+ if (error instanceof UnknownUnitError)
425
+ return null;
426
+ throw error;
325
427
  }
428
+ return {
429
+ value: scaleToNumber(siMagnitude(literal.magnitude, unit, temperature)),
430
+ dim: unit.dim,
431
+ unit: literal.unit,
432
+ cycles: unit.cycles,
433
+ ...(unit.affine === undefined ? {} : { affine: unit.affine }),
434
+ };
326
435
  }
327
436
  /**
328
- * MathTS's SI value for `magnitude` of `unitText`, when that value and the
329
- * 7-base dimension agree with `local`. Affine °C stays on the local offset.
330
- * A symbol MathTS lacks, or a scale it disagrees with (`bit` is 1 there and
331
- * ln 2 here; a solar mass, a Julian year, and the gauss are absent), returns
332
- * undefined so the caller keeps the local table.
437
+ * Convert `raw` (`<number>[unit]`) into `target` (a unit expression). A bare
438
+ * number is taken to be in `target` already. The dimensions must agree.
333
439
  *
334
- * @internal
440
+ * The magnitude, the unit scales and the target scale are multiplied as
441
+ * exact rationals and rounded once, so `1 g/cm^3` in `kg/m^3` is 1000.
442
+ *
443
+ * @returns the value in `target`, and the unit the user gave (`''` for none).
444
+ * @public
335
445
  */
336
- export function mathTsAgreedQuantity(magnitude, unitText, local) {
337
- if (local.affine !== undefined)
338
- return undefined;
339
- try {
340
- const read = mathTsReading(magnitude, unitText);
341
- if (!sameQuantity(read.si, magnitude * local.scale))
342
- return undefined;
343
- if (!equals(read.dim, local.dim))
344
- return undefined;
345
- return { value: read.si, dim: read.dim };
346
- }
347
- catch {
348
- return undefined;
446
+ export function convertValue(raw, target, temperature = 'absolute') {
447
+ const literal = splitQuantityLiteral(raw);
448
+ if (literal === null)
449
+ throw new UnitError(`'${raw}' is not a number with an optional unit`);
450
+ if (literal.unit === '')
451
+ return { value: finiteLiteral(raw, scaleToNumber(literal.magnitude)), given: '' };
452
+ const given = literal.unit;
453
+ const readings = unitReadings(given);
454
+ const to = readUnit(target);
455
+ if (to.affine !== undefined)
456
+ throw new UnitError(`a declared unit cannot be affine ('${target}')`);
457
+ const matched = readings.filter((candidate) => equals(candidate.dim, to.dim));
458
+ if (matched.length !== 1) {
459
+ if (readings.length > 1)
460
+ throw new AmbiguousUnitError(given, readings.map((r) => r.label));
461
+ const from = readings[0];
462
+ if (from === undefined)
463
+ throw new UnknownUnitError(given);
464
+ throw new UnitError(`'${given}' is ${format(from.dim)}, but this input is ${format(to.dim)} (${target || 'dimensionless'})`);
349
465
  }
350
- }
351
- function sameQuantity(got, expected) {
352
- const scale = Math.max(Math.abs(got), Math.abs(expected));
353
- return Math.abs(got - expected) <= 1e-9 * scale;
466
+ const from = matched[0];
467
+ const value = scaleToNumber(divideScales(siMagnitude(literal.magnitude, from, temperature), to.exact));
468
+ return {
469
+ value: finiteLiteral(raw, value),
470
+ given,
471
+ ...(from.cycles === 0 ? {} : { cycles: from.cycles }),
472
+ ...(from.affine === undefined ? {} : { affine: from.affine }),
473
+ };
354
474
  }
355
475
  /** The dimension of a declared unit expression. @internal */
356
476
  export function unitDimension(unit) {
357
477
  return parseUnit(unit).dim;
358
478
  }
359
- /** The tables conversion reads, for the CLI record's fingerprint (`src/cli/record-tables.ts`). @internal */
479
+ /** The symbols the unit table spells, with their exact scales, for the agreement test against MathTS. @internal */
480
+ export function unitRows() {
481
+ return UNITS;
482
+ }
483
+ /**
484
+ * The tables conversion reads, for the CLI record's fingerprint (`src/cli/record-tables.ts`):
485
+ * each row's scale, dimension, prefixability and `cycles` flag (which multiplies an angular
486
+ * input by 2π), the prefixes, the Celsius offset, and the SHA-256 of `data/units.json`, so a
487
+ * refused spelling, a prefix letter, an affine row or a note that changes changes the fingerprint too.
488
+ * @internal
489
+ */
360
490
  export function unitTables() {
361
- return { units: UNITS, prefixes: PREFIXES, celsiusOffsetK: CELSIUS_OFFSET_K };
491
+ return {
492
+ units: new Map([...UNITS].map(([symbol, r]) => [symbol, [scaleToNumber(r.scale), r.dim, r.prefixable, r.cycles === true]])),
493
+ prefixes: new Map([...PREFIXES].map(([prefix, f]) => [prefix, scaleToNumber(f)])),
494
+ celsiusOffsetK: scaleToNumber(CELSIUS_OFFSET_K),
495
+ sourceSha256: UNIT_DATA.sha256,
496
+ };
362
497
  }
363
498
  //# sourceMappingURL=units.js.map