universal-physics-tensor 8.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 (322) hide show
  1. package/README.md +8 -6
  2. package/data/atlas/atlas.json +21 -21
  3. package/data/atlas/atlas.jsonld +1 -1
  4. package/data/atlas/diffusion.json +5 -5
  5. package/data/atlas/oscillators.json +7 -7
  6. package/data/atlas/waves.json +11 -11
  7. package/data/bridge-catalog.json +490 -338
  8. package/data/bridge-catalog.schema.json +566 -40
  9. package/data/quantities.json +230 -218
  10. package/data/quantities.schema.json +52 -0
  11. package/data/units.json +1149 -0
  12. package/data/units.schema.json +124 -0
  13. package/dist/atlas/association.d.ts +1 -1
  14. package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
  15. package/dist/atlas/benchmark/hybrid-retrieval.js +2 -5
  16. package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
  17. package/dist/atlas/physjs-entries.generated.d.ts +1601 -220
  18. package/dist/atlas/physjs-entries.generated.d.ts.map +1 -1
  19. package/dist/atlas/physjs-entries.generated.js +1854 -345
  20. package/dist/atlas/physjs-entries.generated.js.map +1 -1
  21. package/dist/atlas/physjs-ref.d.ts +89 -89
  22. package/dist/atlas/physjs-ref.d.ts.map +1 -1
  23. package/dist/atlas/physjs-ref.js +128 -176
  24. package/dist/atlas/physjs-ref.js.map +1 -1
  25. package/dist/atlas/proof-target.d.ts +16 -8
  26. package/dist/atlas/proof-target.d.ts.map +1 -1
  27. package/dist/atlas/proof-target.js +34 -31
  28. package/dist/atlas/proof-target.js.map +1 -1
  29. package/dist/bridges/catalog-adapter.d.ts.map +1 -1
  30. package/dist/bridges/catalog-adapter.js +5 -5
  31. package/dist/bridges/catalog-adapter.js.map +1 -1
  32. package/dist/bridges/catalog-load.d.ts +7 -0
  33. package/dist/bridges/catalog-load.d.ts.map +1 -1
  34. package/dist/bridges/catalog-load.js +69 -13
  35. package/dist/bridges/catalog-load.js.map +1 -1
  36. package/dist/bridges/catalog-types.d.ts +51 -6
  37. package/dist/bridges/catalog-types.d.ts.map +1 -1
  38. package/dist/bridges/evaluation-errors.d.ts +76 -0
  39. package/dist/bridges/evaluation-errors.d.ts.map +1 -0
  40. package/dist/bridges/evaluation-errors.js +118 -0
  41. package/dist/bridges/evaluation-errors.js.map +1 -0
  42. package/dist/bridges/evaluator-inputs.d.ts +5 -3
  43. package/dist/bridges/evaluator-inputs.d.ts.map +1 -1
  44. package/dist/bridges/evaluator-inputs.js +24 -24
  45. package/dist/bridges/evaluator-inputs.js.map +1 -1
  46. package/dist/bridges/evaluators.d.ts +32 -7
  47. package/dist/bridges/evaluators.d.ts.map +1 -1
  48. package/dist/bridges/evaluators.js +131 -29
  49. package/dist/bridges/evaluators.js.map +1 -1
  50. package/dist/bridges/expr-parse.d.ts +11 -3
  51. package/dist/bridges/expr-parse.d.ts.map +1 -1
  52. package/dist/bridges/expr-parse.js +46 -153
  53. package/dist/bridges/expr-parse.js.map +1 -1
  54. package/dist/bridges/holds.d.ts +11 -7
  55. package/dist/bridges/holds.d.ts.map +1 -1
  56. package/dist/bridges/holds.js +113 -234
  57. package/dist/bridges/holds.js.map +1 -1
  58. package/dist/bridges/input-contract.d.ts +65 -0
  59. package/dist/bridges/input-contract.d.ts.map +1 -0
  60. package/dist/bridges/input-contract.js +97 -0
  61. package/dist/bridges/input-contract.js.map +1 -0
  62. package/dist/bridges/notices.d.ts +11 -0
  63. package/dist/bridges/notices.d.ts.map +1 -0
  64. package/dist/bridges/notices.js +22 -0
  65. package/dist/bridges/notices.js.map +1 -0
  66. package/dist/canonical/canonical-equation.d.ts +31 -0
  67. package/dist/canonical/canonical-equation.d.ts.map +1 -1
  68. package/dist/canonical/entries/atomic.d.ts.map +1 -1
  69. package/dist/canonical/entries/atomic.js +11 -1
  70. package/dist/canonical/entries/atomic.js.map +1 -1
  71. package/dist/canonical/entries/condensed-matter.d.ts.map +1 -1
  72. package/dist/canonical/entries/condensed-matter.js +3 -0
  73. package/dist/canonical/entries/condensed-matter.js.map +1 -1
  74. package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -1
  75. package/dist/canonical/entries/dimensional-classics.js +48 -0
  76. package/dist/canonical/entries/dimensional-classics.js.map +1 -1
  77. package/dist/canonical/entries/electromagnetism.d.ts.map +1 -1
  78. package/dist/canonical/entries/electromagnetism.js +30 -0
  79. package/dist/canonical/entries/electromagnetism.js.map +1 -1
  80. package/dist/canonical/entries/fluids-waves.d.ts.map +1 -1
  81. package/dist/canonical/entries/fluids-waves.js +34 -0
  82. package/dist/canonical/entries/fluids-waves.js.map +1 -1
  83. package/dist/canonical/entries/mechanics.d.ts.map +1 -1
  84. package/dist/canonical/entries/mechanics.js +24 -0
  85. package/dist/canonical/entries/mechanics.js.map +1 -1
  86. package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
  87. package/dist/canonical/entries/nonmonomial.js +15 -4
  88. package/dist/canonical/entries/nonmonomial.js.map +1 -1
  89. package/dist/canonical/entries/relativity.d.ts.map +1 -1
  90. package/dist/canonical/entries/relativity.js +6 -0
  91. package/dist/canonical/entries/relativity.js.map +1 -1
  92. package/dist/canonical/entries/statistical-mechanics.d.ts.map +1 -1
  93. package/dist/canonical/entries/statistical-mechanics.js +19 -0
  94. package/dist/canonical/entries/statistical-mechanics.js.map +1 -1
  95. package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
  96. package/dist/canonical/entries/thermo-nuclear-cosmo.js +15 -0
  97. package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
  98. package/dist/cases/index.d.ts +9 -2
  99. package/dist/cases/index.d.ts.map +1 -1
  100. package/dist/cases/index.js +26 -7
  101. package/dist/cases/index.js.map +1 -1
  102. package/dist/cases/kepler-rv.js +6 -6
  103. package/dist/cases/kepler-rv.js.map +1 -1
  104. package/dist/cli/commands/_discovery-opts.d.ts +2 -1
  105. package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
  106. package/dist/cli/commands/_discovery-opts.js +7 -12
  107. package/dist/cli/commands/_discovery-opts.js.map +1 -1
  108. package/dist/cli/commands/atlas.d.ts.map +1 -1
  109. package/dist/cli/commands/atlas.js +6 -9
  110. package/dist/cli/commands/atlas.js.map +1 -1
  111. package/dist/cli/commands/audit.d.ts.map +1 -1
  112. package/dist/cli/commands/audit.js +1 -2
  113. package/dist/cli/commands/audit.js.map +1 -1
  114. package/dist/cli/commands/connectors.d.ts.map +1 -1
  115. package/dist/cli/commands/connectors.js +8 -9
  116. package/dist/cli/commands/connectors.js.map +1 -1
  117. package/dist/cli/commands/derive.js +9 -10
  118. package/dist/cli/commands/derive.js.map +1 -1
  119. package/dist/cli/commands/discover.d.ts.map +1 -1
  120. package/dist/cli/commands/discover.js +3 -4
  121. package/dist/cli/commands/discover.js.map +1 -1
  122. package/dist/cli/commands/eval.d.ts.map +1 -1
  123. package/dist/cli/commands/eval.js +17 -17
  124. package/dist/cli/commands/eval.js.map +1 -1
  125. package/dist/cli/commands/evaluate.d.ts +1 -35
  126. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  127. package/dist/cli/commands/evaluate.js +56 -187
  128. package/dist/cli/commands/evaluate.js.map +1 -1
  129. package/dist/cli/commands/explain.d.ts.map +1 -1
  130. package/dist/cli/commands/explain.js +43 -38
  131. package/dist/cli/commands/explain.js.map +1 -1
  132. package/dist/cli/commands/ground.js +1 -1
  133. package/dist/cli/commands/ground.js.map +1 -1
  134. package/dist/cli/commands/map.js +3 -4
  135. package/dist/cli/commands/map.js.map +1 -1
  136. package/dist/cli/commands/metric.d.ts.map +1 -1
  137. package/dist/cli/commands/metric.js +3 -0
  138. package/dist/cli/commands/metric.js.map +1 -1
  139. package/dist/cli/commands/regime.js +1 -1
  140. package/dist/cli/commands/regime.js.map +1 -1
  141. package/dist/cli/commands/symbolic.d.ts.map +1 -1
  142. package/dist/cli/commands/symbolic.js +5 -2
  143. package/dist/cli/commands/symbolic.js.map +1 -1
  144. package/dist/cli/commands/testplan.js +3 -3
  145. package/dist/cli/commands/testplan.js.map +1 -1
  146. package/dist/cli/conventions.d.ts +6 -7
  147. package/dist/cli/conventions.d.ts.map +1 -1
  148. package/dist/cli/conventions.js +19 -28
  149. package/dist/cli/conventions.js.map +1 -1
  150. package/dist/cli/euler-guard.d.ts +13 -2
  151. package/dist/cli/euler-guard.d.ts.map +1 -1
  152. package/dist/cli/euler-guard.js +17 -3
  153. package/dist/cli/euler-guard.js.map +1 -1
  154. package/dist/cli/eval-numbers.d.ts +4 -9
  155. package/dist/cli/eval-numbers.d.ts.map +1 -1
  156. package/dist/cli/eval-numbers.js +11 -41
  157. package/dist/cli/eval-numbers.js.map +1 -1
  158. package/dist/cli/published-url.d.ts +2 -0
  159. package/dist/cli/published-url.d.ts.map +1 -1
  160. package/dist/cli/published-url.js +5 -0
  161. package/dist/cli/published-url.js.map +1 -1
  162. package/dist/cli/record-tables.d.ts +2 -1
  163. package/dist/cli/record-tables.d.ts.map +1 -1
  164. package/dist/cli/record-tables.js +8 -3
  165. package/dist/cli/record-tables.js.map +1 -1
  166. package/dist/cli-api.d.ts +45 -12
  167. package/dist/cli-api.d.ts.map +1 -1
  168. package/dist/cli-api.js +38 -11
  169. package/dist/cli-api.js.map +1 -1
  170. package/dist/composition/adjudication.d.ts +8 -30
  171. package/dist/composition/adjudication.d.ts.map +1 -1
  172. package/dist/composition/adjudication.js +15 -67
  173. package/dist/composition/adjudication.js.map +1 -1
  174. package/dist/composition/aliases.d.ts +1 -1
  175. package/dist/composition/aliases.d.ts.map +1 -1
  176. package/dist/composition/aliases.js +10 -20
  177. package/dist/composition/aliases.js.map +1 -1
  178. package/dist/composition/bridge-analysis.d.ts +4 -0
  179. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  180. package/dist/composition/bridge-analysis.js +13 -14
  181. package/dist/composition/bridge-analysis.js.map +1 -1
  182. package/dist/composition/canonical-graph.d.ts +7 -9
  183. package/dist/composition/canonical-graph.d.ts.map +1 -1
  184. package/dist/composition/canonical-graph.js +35 -19
  185. package/dist/composition/canonical-graph.js.map +1 -1
  186. package/dist/composition/canonical-prefactors.d.ts +10 -29
  187. package/dist/composition/canonical-prefactors.d.ts.map +1 -1
  188. package/dist/composition/canonical-prefactors.js +15 -202
  189. package/dist/composition/canonical-prefactors.js.map +1 -1
  190. package/dist/composition/compose.js +2 -1
  191. package/dist/composition/compose.js.map +1 -1
  192. package/dist/composition/discovery.d.ts +50 -0
  193. package/dist/composition/discovery.d.ts.map +1 -1
  194. package/dist/composition/discovery.js +2 -2
  195. package/dist/composition/discovery.js.map +1 -1
  196. package/dist/composition/edge.d.ts +0 -14
  197. package/dist/composition/edge.d.ts.map +1 -1
  198. package/dist/composition/edge.js +1 -17
  199. package/dist/composition/edge.js.map +1 -1
  200. package/dist/composition/evaluate-relation.d.ts +29 -5
  201. package/dist/composition/evaluate-relation.d.ts.map +1 -1
  202. package/dist/composition/evaluate-relation.js +100 -72
  203. package/dist/composition/evaluate-relation.js.map +1 -1
  204. package/dist/composition/explain.d.ts +5 -0
  205. package/dist/composition/explain.d.ts.map +1 -1
  206. package/dist/composition/explain.js +9 -8
  207. package/dist/composition/explain.js.map +1 -1
  208. package/dist/composition/expr-eval.d.ts.map +1 -1
  209. package/dist/composition/expr-eval.js +2 -1
  210. package/dist/composition/expr-eval.js.map +1 -1
  211. package/dist/composition/index.d.ts +3 -1
  212. package/dist/composition/index.d.ts.map +1 -1
  213. package/dist/composition/index.js +3 -1
  214. package/dist/composition/index.js.map +1 -1
  215. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  216. package/dist/composition/proposed-bridges.js +3 -2
  217. package/dist/composition/proposed-bridges.js.map +1 -1
  218. package/dist/composition/retrodiction.d.ts +8 -0
  219. package/dist/composition/retrodiction.d.ts.map +1 -1
  220. package/dist/composition/retrodiction.js +5 -0
  221. package/dist/composition/retrodiction.js.map +1 -1
  222. package/dist/composition/user-equation.d.ts +11 -7
  223. package/dist/composition/user-equation.d.ts.map +1 -1
  224. package/dist/composition/user-equation.js +24 -26
  225. package/dist/composition/user-equation.js.map +1 -1
  226. package/dist/core/constants.d.ts +27 -4
  227. package/dist/core/constants.d.ts.map +1 -1
  228. package/dist/core/constants.js +38 -5
  229. package/dist/core/constants.js.map +1 -1
  230. package/dist/core/data-file.d.ts +27 -0
  231. package/dist/core/data-file.d.ts.map +1 -0
  232. package/dist/core/data-file.js +48 -0
  233. package/dist/core/data-file.js.map +1 -0
  234. package/dist/core/json-schema.d.ts +27 -0
  235. package/dist/core/json-schema.d.ts.map +1 -0
  236. package/dist/core/json-schema.js +153 -0
  237. package/dist/core/json-schema.js.map +1 -0
  238. package/dist/core/types.d.ts +3 -2
  239. package/dist/core/types.d.ts.map +1 -1
  240. package/dist/core/types.js +16 -14
  241. package/dist/core/types.js.map +1 -1
  242. package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
  243. package/dist/diff/bridge-ast-gradient.js +6 -17
  244. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  245. package/dist/diff/bridge-specs.d.ts +2 -1
  246. package/dist/diff/bridge-specs.d.ts.map +1 -1
  247. package/dist/diff/bridge-specs.js +1 -1
  248. package/dist/diff/bridge-specs.js.map +1 -1
  249. package/dist/dimensional/bridge-check.d.ts.map +1 -1
  250. package/dist/dimensional/bridge-check.js +3 -5
  251. package/dist/dimensional/bridge-check.js.map +1 -1
  252. package/dist/dimensional/constant-rows.d.ts +54 -0
  253. package/dist/dimensional/constant-rows.d.ts.map +1 -0
  254. package/dist/dimensional/constant-rows.js +111 -0
  255. package/dist/dimensional/constant-rows.js.map +1 -0
  256. package/dist/dimensional/constants.d.ts +4 -13
  257. package/dist/dimensional/constants.d.ts.map +1 -1
  258. package/dist/dimensional/constants.js +11 -19
  259. package/dist/dimensional/constants.js.map +1 -1
  260. package/dist/dimensional/dimension-spec.d.ts +12 -3
  261. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  262. package/dist/dimensional/dimension-spec.js +114 -150
  263. package/dist/dimensional/dimension-spec.js.map +1 -1
  264. package/dist/dimensional/exact-scale.d.ts +79 -0
  265. package/dist/dimensional/exact-scale.d.ts.map +1 -0
  266. package/dist/dimensional/exact-scale.js +222 -0
  267. package/dist/dimensional/exact-scale.js.map +1 -0
  268. package/dist/dimensional/formula-names.d.ts +13 -12
  269. package/dist/dimensional/formula-names.d.ts.map +1 -1
  270. package/dist/dimensional/formula-names.js +28 -51
  271. package/dist/dimensional/formula-names.js.map +1 -1
  272. package/dist/dimensional/quantity-registry.d.ts +10 -1
  273. package/dist/dimensional/quantity-registry.d.ts.map +1 -1
  274. package/dist/dimensional/quantity-registry.js +45 -16
  275. package/dist/dimensional/quantity-registry.js.map +1 -1
  276. package/dist/dimensional/symbolic-constants.d.ts +63 -19
  277. package/dist/dimensional/symbolic-constants.d.ts.map +1 -1
  278. package/dist/dimensional/symbolic-constants.js +109 -92
  279. package/dist/dimensional/symbolic-constants.js.map +1 -1
  280. package/dist/dimensional/unit-data.d.ts +70 -0
  281. package/dist/dimensional/unit-data.d.ts.map +1 -0
  282. package/dist/dimensional/unit-data.js +135 -0
  283. package/dist/dimensional/unit-data.js.map +1 -0
  284. package/dist/dimensional/units.d.ts +87 -24
  285. package/dist/dimensional/units.d.ts.map +1 -1
  286. package/dist/dimensional/units.js +253 -276
  287. package/dist/dimensional/units.js.map +1 -1
  288. package/dist/index.d.ts +15 -13
  289. package/dist/index.d.ts.map +1 -1
  290. package/dist/index.js +7 -4
  291. package/dist/index.js.map +1 -1
  292. package/dist/numerical/binding-value.d.ts +21 -1
  293. package/dist/numerical/binding-value.d.ts.map +1 -1
  294. package/dist/numerical/binding-value.js +123 -118
  295. package/dist/numerical/binding-value.js.map +1 -1
  296. package/dist/numerical/evaluator-uncertainty.d.ts +34 -0
  297. package/dist/numerical/evaluator-uncertainty.d.ts.map +1 -0
  298. package/dist/numerical/evaluator-uncertainty.js +117 -0
  299. package/dist/numerical/evaluator-uncertainty.js.map +1 -0
  300. package/dist/numerical/formula-contract.d.ts +4 -0
  301. package/dist/numerical/formula-contract.d.ts.map +1 -1
  302. package/dist/numerical/formula-contract.js +7 -0
  303. package/dist/numerical/formula-contract.js.map +1 -1
  304. package/dist/numerical/formula-dimension.d.ts +9 -0
  305. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  306. package/dist/numerical/formula-dimension.js +64 -10
  307. package/dist/numerical/formula-dimension.js.map +1 -1
  308. package/dist/numerical/formula-mathts.d.ts.map +1 -1
  309. package/dist/numerical/formula-mathts.js +6 -2
  310. package/dist/numerical/formula-mathts.js.map +1 -1
  311. package/dist/numerical/gl4-integrator.d.ts.map +1 -1
  312. package/dist/numerical/gl4-integrator.js +3 -3
  313. package/dist/numerical/gl4-integrator.js.map +1 -1
  314. package/dist/numerical/spacetime-metrics.d.ts +4 -0
  315. package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
  316. package/dist/numerical/spacetime-metrics.js +34 -4
  317. package/dist/numerical/spacetime-metrics.js.map +1 -1
  318. package/dist/relations/types.d.ts +8 -1
  319. package/dist/relations/types.d.ts.map +1 -1
  320. package/dist/relations/types.js +10 -0
  321. package/dist/relations/types.js.map +1 -1
  322. package/package.json +1 -1
@@ -0,0 +1,1149 @@
1
+ {
2
+ "$schema": "./units.schema.json",
3
+ "schemaVersion": 1,
4
+ "description": "The unit table units.ts reads: every symbol's exact scale to SI base units, its dimension, whether it takes an SI prefix and whether it counts cycles; the SI prefixes; the refused spellings; the letters that are both a prefix and a unit; the affine temperatures; and the notes a spelling prints. A scale is an exact expression: decimal literals, names in `scales`, `pi`, and registered constants under their registry spelling (`c`, `e`, `m_u`, `M_sun`, `Msun_iau`, `ln2`; src/dimensional/constant-rows.ts), joined by `*`, optionally `/` and the denominator's factors (everything after the first `/` is the denominator, as in a unit text), each with an optional integer power `^n`. src/dimensional/exact-scale.ts reads it.",
5
+ "scales": {
6
+ "inch": "0.0254",
7
+ "foot": "0.3048",
8
+ "pound": "0.45359237",
9
+ "standard_gravity": "9.80665",
10
+ "lbf": "pound*standard_gravity",
11
+ "psi": "lbf/inch^2",
12
+ "julian_year": "365.25*86400",
13
+ "mmHg": "133.322387415"
14
+ },
15
+ "prefixes": {
16
+ "Y": "1e24",
17
+ "Z": "1e21",
18
+ "E": "1e18",
19
+ "P": "1e15",
20
+ "T": "1e12",
21
+ "G": "1e9",
22
+ "M": "1e6",
23
+ "k": "1e3",
24
+ "h": "1e2",
25
+ "da": "1e1",
26
+ "d": "1e-1",
27
+ "c": "1e-2",
28
+ "m": "1e-3",
29
+ "u": "1e-6",
30
+ "µ": "1e-6",
31
+ "μ": "1e-6",
32
+ "n": "1e-9",
33
+ "p": "1e-12",
34
+ "f": "1e-15",
35
+ "a": "1e-18",
36
+ "z": "1e-21",
37
+ "y": "1e-24"
38
+ },
39
+ "units": [
40
+ {
41
+ "symbols": [
42
+ "m"
43
+ ],
44
+ "scale": "1",
45
+ "dimension": {
46
+ "L": 1
47
+ },
48
+ "prefixable": true
49
+ },
50
+ {
51
+ "symbols": [
52
+ "g"
53
+ ],
54
+ "scale": "1e-3",
55
+ "dimension": {
56
+ "M": 1
57
+ },
58
+ "prefixable": true
59
+ },
60
+ {
61
+ "symbols": [
62
+ "s"
63
+ ],
64
+ "scale": "1",
65
+ "dimension": {
66
+ "T": 1
67
+ },
68
+ "prefixable": true
69
+ },
70
+ {
71
+ "symbols": [
72
+ "K"
73
+ ],
74
+ "scale": "1",
75
+ "dimension": {
76
+ "Theta": 1
77
+ },
78
+ "prefixable": true
79
+ },
80
+ {
81
+ "symbols": [
82
+ "A"
83
+ ],
84
+ "scale": "1",
85
+ "dimension": {
86
+ "I": 1
87
+ },
88
+ "prefixable": true
89
+ },
90
+ {
91
+ "symbols": [
92
+ "mol"
93
+ ],
94
+ "scale": "1",
95
+ "dimension": {
96
+ "N": 1
97
+ },
98
+ "prefixable": true
99
+ },
100
+ {
101
+ "symbols": [
102
+ "Hz"
103
+ ],
104
+ "scale": "1",
105
+ "dimension": {
106
+ "T": -1
107
+ },
108
+ "prefixable": true,
109
+ "cycles": true,
110
+ "comment": "A hertz is one cycle per second."
111
+ },
112
+ {
113
+ "symbols": [
114
+ "N"
115
+ ],
116
+ "scale": "1",
117
+ "dimension": {
118
+ "L": 1,
119
+ "M": 1,
120
+ "T": -2
121
+ },
122
+ "prefixable": true
123
+ },
124
+ {
125
+ "symbols": [
126
+ "Pa"
127
+ ],
128
+ "scale": "1",
129
+ "dimension": {
130
+ "L": -1,
131
+ "M": 1,
132
+ "T": -2
133
+ },
134
+ "prefixable": true
135
+ },
136
+ {
137
+ "symbols": [
138
+ "J"
139
+ ],
140
+ "scale": "1",
141
+ "dimension": {
142
+ "L": 2,
143
+ "M": 1,
144
+ "T": -2
145
+ },
146
+ "prefixable": true
147
+ },
148
+ {
149
+ "symbols": [
150
+ "W"
151
+ ],
152
+ "scale": "1",
153
+ "dimension": {
154
+ "L": 2,
155
+ "M": 1,
156
+ "T": -3
157
+ },
158
+ "prefixable": true
159
+ },
160
+ {
161
+ "symbols": [
162
+ "C"
163
+ ],
164
+ "scale": "1",
165
+ "dimension": {
166
+ "T": 1,
167
+ "I": 1
168
+ },
169
+ "prefixable": true
170
+ },
171
+ {
172
+ "symbols": [
173
+ "V"
174
+ ],
175
+ "scale": "1",
176
+ "dimension": {
177
+ "L": 2,
178
+ "M": 1,
179
+ "T": -3,
180
+ "I": -1
181
+ },
182
+ "prefixable": true
183
+ },
184
+ {
185
+ "symbols": [
186
+ "ohm",
187
+ "Ω",
188
+ "Ohm"
189
+ ],
190
+ "scale": "1",
191
+ "dimension": {
192
+ "L": 2,
193
+ "M": 1,
194
+ "T": -3,
195
+ "I": -2
196
+ },
197
+ "prefixable": true
198
+ },
199
+ {
200
+ "symbols": [
201
+ "S"
202
+ ],
203
+ "scale": "1",
204
+ "dimension": {
205
+ "L": -2,
206
+ "M": -1,
207
+ "T": 3,
208
+ "I": 2
209
+ },
210
+ "prefixable": true
211
+ },
212
+ {
213
+ "symbols": [
214
+ "F"
215
+ ],
216
+ "scale": "1",
217
+ "dimension": {
218
+ "L": -2,
219
+ "M": -1,
220
+ "T": 4,
221
+ "I": 2
222
+ },
223
+ "prefixable": true
224
+ },
225
+ {
226
+ "symbols": [
227
+ "eV"
228
+ ],
229
+ "scale": "e",
230
+ "dimension": {
231
+ "L": 2,
232
+ "M": 1,
233
+ "T": -2
234
+ },
235
+ "prefixable": true,
236
+ "comment": "The elementary charge times one volt. Takes an SI prefix, so GeV is 10^9 eV."
237
+ },
238
+ {
239
+ "symbols": [
240
+ "nat"
241
+ ],
242
+ "scale": "1",
243
+ "dimension": {},
244
+ "prefixable": false,
245
+ "comment": "Information. A nat is the coherent dimensionless unit. Exact, so it takes no prefix."
246
+ },
247
+ {
248
+ "symbols": [
249
+ "bit"
250
+ ],
251
+ "scale": "ln2",
252
+ "dimension": {},
253
+ "prefixable": false,
254
+ "comment": "A bit is ln 2 nat. Exact, so kbit is not a kilobit."
255
+ },
256
+ {
257
+ "symbols": [
258
+ "rad"
259
+ ],
260
+ "scale": "1",
261
+ "dimension": {},
262
+ "prefixable": true
263
+ },
264
+ {
265
+ "symbols": [
266
+ "deg"
267
+ ],
268
+ "scale": "pi/180",
269
+ "dimension": {},
270
+ "prefixable": false
271
+ },
272
+ {
273
+ "symbols": [
274
+ "min"
275
+ ],
276
+ "scale": "60",
277
+ "dimension": {
278
+ "T": 1
279
+ },
280
+ "prefixable": false
281
+ },
282
+ {
283
+ "symbols": [
284
+ "h"
285
+ ],
286
+ "scale": "3600",
287
+ "dimension": {
288
+ "T": 1
289
+ },
290
+ "prefixable": false
291
+ },
292
+ {
293
+ "symbols": [
294
+ "d"
295
+ ],
296
+ "scale": "86400",
297
+ "dimension": {
298
+ "T": 1
299
+ },
300
+ "prefixable": false
301
+ },
302
+ {
303
+ "symbols": [
304
+ "yr"
305
+ ],
306
+ "scale": "julian_year",
307
+ "dimension": {
308
+ "T": 1
309
+ },
310
+ "prefixable": true,
311
+ "comment": "The Julian year, the year the orbital evaluators take. myr is a milliyear."
312
+ },
313
+ {
314
+ "symbols": [
315
+ "au",
316
+ "AU"
317
+ ],
318
+ "scale": "149597870700",
319
+ "dimension": {
320
+ "L": 1
321
+ },
322
+ "prefixable": false,
323
+ "comment": "IAU 2012 astronomical unit, an exact metre count. AU is the same row."
324
+ },
325
+ {
326
+ "symbols": [
327
+ "Msun"
328
+ ],
329
+ "scale": "M_sun",
330
+ "dimension": {
331
+ "M": 1
332
+ },
333
+ "prefixable": false,
334
+ "comment": "The solar mass the evaluators use, not the IAU nominal value."
335
+ },
336
+ {
337
+ "symbols": [
338
+ "Msun_iau"
339
+ ],
340
+ "scale": "Msun_iau",
341
+ "dimension": {
342
+ "M": 1
343
+ },
344
+ "prefixable": false,
345
+ "comment": "GM_SUN_SI / G_SI, so G × Msun_iau is the IAU solar mass parameter. A ratio of two measured constants: the double the constant registry holds, not a decimal quotient."
346
+ },
347
+ {
348
+ "symbols": [
349
+ "T"
350
+ ],
351
+ "scale": "1",
352
+ "dimension": {
353
+ "M": 1,
354
+ "T": -2,
355
+ "I": -1
356
+ },
357
+ "prefixable": true,
358
+ "comment": "Tesla. An exact T still wins over the tera prefix, so Ts is a terasecond. The prefix flag is what lets nT and uT parse."
359
+ },
360
+ {
361
+ "symbols": [
362
+ "G",
363
+ "gauss",
364
+ "Gauss"
365
+ ],
366
+ "scale": "1e-4",
367
+ "dimension": {
368
+ "M": 1,
369
+ "T": -2,
370
+ "I": -1
371
+ },
372
+ "prefixable": true,
373
+ "comment": "Gauss = 10^-4 T. Exact, so GPa stays a gigapascal and bare G is the gauss. It takes an SI prefix: uG and ugauss are a microgauss."
374
+ },
375
+ {
376
+ "symbols": [
377
+ "bar"
378
+ ],
379
+ "scale": "1e5",
380
+ "dimension": {
381
+ "L": -1,
382
+ "M": 1,
383
+ "T": -2
384
+ },
385
+ "prefixable": true
386
+ },
387
+ {
388
+ "symbols": [
389
+ "atm"
390
+ ],
391
+ "scale": "101325",
392
+ "dimension": {
393
+ "L": -1,
394
+ "M": 1,
395
+ "T": -2
396
+ },
397
+ "prefixable": false
398
+ },
399
+ {
400
+ "symbols": [
401
+ "angstrom",
402
+ "Angstrom",
403
+ "Å"
404
+ ],
405
+ "scale": "1e-10",
406
+ "dimension": {
407
+ "L": 1
408
+ },
409
+ "prefixable": false
410
+ },
411
+ {
412
+ "symbols": [
413
+ "pc"
414
+ ],
415
+ "scale": "3.085677581491367e16",
416
+ "dimension": {
417
+ "L": 1
418
+ },
419
+ "prefixable": true,
420
+ "comment": "IAU-style parsec, the shortest decimal of the double 648000/π au. Prefixable, so Mpc is a megaparsec."
421
+ },
422
+ {
423
+ "symbols": [
424
+ "ly"
425
+ ],
426
+ "scale": "c*julian_year",
427
+ "dimension": {
428
+ "L": 1
429
+ },
430
+ "prefixable": false,
431
+ "comment": "The light year: c times the Julian year."
432
+ },
433
+ {
434
+ "symbols": [
435
+ "L",
436
+ "l"
437
+ ],
438
+ "scale": "1e-3",
439
+ "dimension": {
440
+ "L": 3
441
+ },
442
+ "prefixable": true,
443
+ "comment": "CGPM 1964: 1 L = 1 dm^3 = 10^-3 m^3 exactly. Prefixable, so mL is a millilitre. Bare mL stays the prefix; mol/mL competes with metre·litre."
444
+ },
445
+ {
446
+ "symbols": [
447
+ "cal"
448
+ ],
449
+ "scale": "4.184",
450
+ "dimension": {
451
+ "L": 2,
452
+ "M": 1,
453
+ "T": -2
454
+ },
455
+ "prefixable": true,
456
+ "comment": "Thermochemical calorie, 4.184 J exactly (NIST). Not cal_IT = 4.1868 J. Prefixable, so kcal is 4184 J."
457
+ },
458
+ {
459
+ "symbols": [
460
+ "BTU"
461
+ ],
462
+ "scale": "4.1868*453.59237/1.8",
463
+ "dimension": {
464
+ "L": 2,
465
+ "M": 1,
466
+ "T": -2
467
+ },
468
+ "prefixable": false,
469
+ "comment": "International Steam Table BTU: cal_IT × (lb/g) / (°F per 1.8 °C). Not the thermochemical calorie."
470
+ },
471
+ {
472
+ "symbols": [
473
+ "psi"
474
+ ],
475
+ "scale": "psi",
476
+ "dimension": {
477
+ "L": -1,
478
+ "M": 1,
479
+ "T": -2
480
+ },
481
+ "prefixable": false,
482
+ "comment": "lbf/in^2."
483
+ },
484
+ {
485
+ "symbols": [
486
+ "torr"
487
+ ],
488
+ "scale": "101325/760",
489
+ "dimension": {
490
+ "L": -1,
491
+ "M": 1,
492
+ "T": -2
493
+ },
494
+ "prefixable": true,
495
+ "comment": "1/760 of a standard atmosphere, exactly. Prefixable (mtorr)."
496
+ },
497
+ {
498
+ "symbols": [
499
+ "mmHg"
500
+ ],
501
+ "scale": "mmHg",
502
+ "dimension": {
503
+ "L": -1,
504
+ "M": 1,
505
+ "T": -2
506
+ },
507
+ "prefixable": false,
508
+ "comment": "Conventional millimetre of mercury, 133.322387415 Pa exactly (NIST SP 811). Not the torr, and not mm × Hg."
509
+ },
510
+ {
511
+ "symbols": [
512
+ "P"
513
+ ],
514
+ "scale": "0.1",
515
+ "dimension": {
516
+ "L": -1,
517
+ "M": 1,
518
+ "T": -1
519
+ },
520
+ "prefixable": true,
521
+ "comment": "Poise = 0.1 Pa·s exactly. Prefixable, so cP = 10^-3 Pa·s. An exact P wins over peta."
522
+ },
523
+ {
524
+ "symbols": [
525
+ "degR",
526
+ "°R"
527
+ ],
528
+ "scale": "5/9",
529
+ "dimension": {
530
+ "Theta": 1
531
+ },
532
+ "prefixable": false,
533
+ "comment": "Rankine is proportional: K = °R × 5/9. Not affine."
534
+ },
535
+ {
536
+ "symbols": [
537
+ "rpm"
538
+ ],
539
+ "scale": "1/60",
540
+ "dimension": {
541
+ "T": -1
542
+ },
543
+ "prefixable": true,
544
+ "cycles": true,
545
+ "comment": "Revolutions per minute = 1/60 Hz, a cycle count. Prefixable, so krpm is a kilorevolution per minute."
546
+ },
547
+ {
548
+ "symbols": [
549
+ "hp"
550
+ ],
551
+ "scale": "550*foot*lbf",
552
+ "dimension": {
553
+ "L": 2,
554
+ "M": 1,
555
+ "T": -3
556
+ },
557
+ "prefixable": false,
558
+ "comment": "Mechanical horsepower = 550 ft·lbf/s."
559
+ },
560
+ {
561
+ "symbols": [
562
+ "H"
563
+ ],
564
+ "scale": "1",
565
+ "dimension": {
566
+ "L": 2,
567
+ "M": 1,
568
+ "T": -2,
569
+ "I": -2
570
+ },
571
+ "prefixable": true,
572
+ "comment": "Henry."
573
+ },
574
+ {
575
+ "symbols": [
576
+ "Wb"
577
+ ],
578
+ "scale": "1",
579
+ "dimension": {
580
+ "L": 2,
581
+ "M": 1,
582
+ "T": -2,
583
+ "I": -1
584
+ },
585
+ "prefixable": true,
586
+ "comment": "Weber."
587
+ },
588
+ {
589
+ "symbols": [
590
+ "sr"
591
+ ],
592
+ "scale": "1",
593
+ "dimension": {},
594
+ "prefixable": false,
595
+ "comment": "Steradian. The steradian and the radian are dimensionless here."
596
+ },
597
+ {
598
+ "symbols": [
599
+ "cd"
600
+ ],
601
+ "scale": "1",
602
+ "dimension": {
603
+ "J": 1
604
+ },
605
+ "prefixable": true
606
+ },
607
+ {
608
+ "symbols": [
609
+ "lm"
610
+ ],
611
+ "scale": "1",
612
+ "dimension": {
613
+ "J": 1
614
+ },
615
+ "prefixable": true
616
+ },
617
+ {
618
+ "symbols": [
619
+ "lx"
620
+ ],
621
+ "scale": "1",
622
+ "dimension": {
623
+ "J": 1,
624
+ "L": -2
625
+ },
626
+ "prefixable": true
627
+ },
628
+ {
629
+ "symbols": [
630
+ "arcsec"
631
+ ],
632
+ "scale": "pi/648000",
633
+ "dimension": {},
634
+ "prefixable": false
635
+ },
636
+ {
637
+ "symbols": [
638
+ "arcmin"
639
+ ],
640
+ "scale": "pi/10800",
641
+ "dimension": {},
642
+ "prefixable": false
643
+ },
644
+ {
645
+ "symbols": [
646
+ "mas"
647
+ ],
648
+ "scale": "pi/648000000",
649
+ "dimension": {},
650
+ "prefixable": false,
651
+ "comment": "mas would otherwise be metre times attosecond, so the angular spellings are exact."
652
+ },
653
+ {
654
+ "symbols": [
655
+ "uas"
656
+ ],
657
+ "scale": "pi/648000000000",
658
+ "dimension": {},
659
+ "prefixable": false
660
+ },
661
+ {
662
+ "symbols": [
663
+ "%",
664
+ "percent"
665
+ ],
666
+ "scale": "1e-2",
667
+ "dimension": {},
668
+ "prefixable": false
669
+ },
670
+ {
671
+ "symbols": [
672
+ "ppm"
673
+ ],
674
+ "scale": "1e-6",
675
+ "dimension": {},
676
+ "prefixable": false
677
+ },
678
+ {
679
+ "symbols": [
680
+ "ppb"
681
+ ],
682
+ "scale": "1e-9",
683
+ "dimension": {},
684
+ "prefixable": false
685
+ },
686
+ {
687
+ "symbols": [
688
+ "M"
689
+ ],
690
+ "scale": "1000",
691
+ "dimension": {
692
+ "N": 1,
693
+ "L": -3
694
+ },
695
+ "prefixable": true,
696
+ "comment": "Molar concentration: 1 M = 1 mol/L. Bare M is the molar; MPa is still a megapascal."
697
+ },
698
+ {
699
+ "symbols": [
700
+ "u",
701
+ "amu"
702
+ ],
703
+ "scale": "m_u",
704
+ "dimension": {
705
+ "M": 1
706
+ },
707
+ "prefixable": false,
708
+ "comment": "Unified atomic mass unit (CODATA 2018). A bare u is this; um is still a micrometre."
709
+ },
710
+ {
711
+ "symbols": [
712
+ "Da"
713
+ ],
714
+ "scale": "m_u",
715
+ "dimension": {
716
+ "M": 1
717
+ },
718
+ "prefixable": true,
719
+ "comment": "The dalton, the same mass as u. Takes an SI prefix (kDa)."
720
+ },
721
+ {
722
+ "symbols": [
723
+ "erg"
724
+ ],
725
+ "scale": "1e-7",
726
+ "dimension": {
727
+ "L": 2,
728
+ "M": 1,
729
+ "T": -2
730
+ },
731
+ "prefixable": false,
732
+ "comment": "CGS and astronomy. Solar and planetary radii and masses are the IAU 2015 B3 nominal values."
733
+ },
734
+ {
735
+ "symbols": [
736
+ "cc"
737
+ ],
738
+ "scale": "1e-6",
739
+ "dimension": {
740
+ "L": 3
741
+ },
742
+ "prefixable": false
743
+ },
744
+ {
745
+ "symbols": [
746
+ "dyn"
747
+ ],
748
+ "scale": "1e-5",
749
+ "dimension": {
750
+ "L": 1,
751
+ "M": 1,
752
+ "T": -2
753
+ },
754
+ "prefixable": true
755
+ },
756
+ {
757
+ "symbols": [
758
+ "Jy"
759
+ ],
760
+ "scale": "1e-26",
761
+ "dimension": {
762
+ "M": 1,
763
+ "T": -2
764
+ },
765
+ "prefixable": true
766
+ },
767
+ {
768
+ "symbols": [
769
+ "Lsun"
770
+ ],
771
+ "scale": "3.828e26",
772
+ "dimension": {
773
+ "L": 2,
774
+ "M": 1,
775
+ "T": -3
776
+ },
777
+ "prefixable": false
778
+ },
779
+ {
780
+ "symbols": [
781
+ "Rsun"
782
+ ],
783
+ "scale": "6.957e8",
784
+ "dimension": {
785
+ "L": 1
786
+ },
787
+ "prefixable": false
788
+ },
789
+ {
790
+ "symbols": [
791
+ "Rearth"
792
+ ],
793
+ "scale": "6.3781e6",
794
+ "dimension": {
795
+ "L": 1
796
+ },
797
+ "prefixable": false
798
+ },
799
+ {
800
+ "symbols": [
801
+ "Rjup"
802
+ ],
803
+ "scale": "7.1492e7",
804
+ "dimension": {
805
+ "L": 1
806
+ },
807
+ "prefixable": false
808
+ },
809
+ {
810
+ "symbols": [
811
+ "Mearth"
812
+ ],
813
+ "scale": "5.9722e24",
814
+ "dimension": {
815
+ "M": 1
816
+ },
817
+ "prefixable": false
818
+ },
819
+ {
820
+ "symbols": [
821
+ "Mjup"
822
+ ],
823
+ "scale": "1.89813e27",
824
+ "dimension": {
825
+ "M": 1
826
+ },
827
+ "prefixable": false
828
+ },
829
+ {
830
+ "symbols": [
831
+ "day"
832
+ ],
833
+ "scale": "86400",
834
+ "dimension": {
835
+ "T": 1
836
+ },
837
+ "prefixable": false
838
+ },
839
+ {
840
+ "symbols": [
841
+ "hr"
842
+ ],
843
+ "scale": "3600",
844
+ "dimension": {
845
+ "T": 1
846
+ },
847
+ "prefixable": false
848
+ },
849
+ {
850
+ "symbols": [
851
+ "poise"
852
+ ],
853
+ "scale": "0.1",
854
+ "dimension": {
855
+ "L": -1,
856
+ "M": 1,
857
+ "T": -1
858
+ },
859
+ "prefixable": true,
860
+ "comment": "Acoustics and fluids. Poise, stokes and rayl are exact in SI."
861
+ },
862
+ {
863
+ "symbols": [
864
+ "St"
865
+ ],
866
+ "scale": "1e-4",
867
+ "dimension": {
868
+ "L": 2,
869
+ "T": -1
870
+ },
871
+ "prefixable": true
872
+ },
873
+ {
874
+ "symbols": [
875
+ "rayl"
876
+ ],
877
+ "scale": "1",
878
+ "dimension": {
879
+ "L": -2,
880
+ "M": 1,
881
+ "T": -1
882
+ },
883
+ "prefixable": true
884
+ },
885
+ {
886
+ "symbols": [
887
+ "in",
888
+ "inch"
889
+ ],
890
+ "scale": "inch",
891
+ "dimension": {
892
+ "L": 1
893
+ },
894
+ "prefixable": false
895
+ },
896
+ {
897
+ "symbols": [
898
+ "ft"
899
+ ],
900
+ "scale": "foot",
901
+ "dimension": {
902
+ "L": 1
903
+ },
904
+ "prefixable": false
905
+ },
906
+ {
907
+ "symbols": [
908
+ "mil"
909
+ ],
910
+ "scale": "2.54e-5",
911
+ "dimension": {
912
+ "L": 1
913
+ },
914
+ "prefixable": false
915
+ },
916
+ {
917
+ "symbols": [
918
+ "lb",
919
+ "lbm"
920
+ ],
921
+ "scale": "pound",
922
+ "dimension": {
923
+ "M": 1
924
+ },
925
+ "prefixable": false
926
+ },
927
+ {
928
+ "symbols": [
929
+ "lbf"
930
+ ],
931
+ "scale": "lbf",
932
+ "dimension": {
933
+ "L": 1,
934
+ "M": 1,
935
+ "T": -2
936
+ },
937
+ "prefixable": false
938
+ },
939
+ {
940
+ "symbols": [
941
+ "kgf"
942
+ ],
943
+ "scale": "standard_gravity",
944
+ "dimension": {
945
+ "L": 1,
946
+ "M": 1,
947
+ "T": -2
948
+ },
949
+ "prefixable": false,
950
+ "comment": "Kilogram-force: one kilogram times standard gravity."
951
+ },
952
+ {
953
+ "symbols": [
954
+ "mph"
955
+ ],
956
+ "scale": "0.44704",
957
+ "dimension": {
958
+ "L": 1,
959
+ "T": -1
960
+ },
961
+ "prefixable": false
962
+ },
963
+ {
964
+ "symbols": [
965
+ "knot"
966
+ ],
967
+ "scale": "1852/3600",
968
+ "dimension": {
969
+ "L": 1,
970
+ "T": -1
971
+ },
972
+ "prefixable": false
973
+ },
974
+ {
975
+ "symbols": [
976
+ "psia"
977
+ ],
978
+ "scale": "psi",
979
+ "dimension": {
980
+ "L": -1,
981
+ "M": 1,
982
+ "T": -2
983
+ },
984
+ "prefixable": false
985
+ },
986
+ {
987
+ "symbols": [
988
+ "ksi"
989
+ ],
990
+ "scale": "1000*psi",
991
+ "dimension": {
992
+ "L": -1,
993
+ "M": 1,
994
+ "T": -2
995
+ },
996
+ "prefixable": false,
997
+ "comment": "A kilopsi."
998
+ },
999
+ {
1000
+ "symbols": [
1001
+ "mmH2O"
1002
+ ],
1003
+ "scale": "standard_gravity",
1004
+ "dimension": {
1005
+ "L": -1,
1006
+ "M": 1,
1007
+ "T": -2
1008
+ },
1009
+ "prefixable": false,
1010
+ "comment": "A millimetre of water: 1 kg/m^2 times standard gravity."
1011
+ },
1012
+ {
1013
+ "symbols": [
1014
+ "inHg"
1015
+ ],
1016
+ "scale": "mmHg*25.4",
1017
+ "dimension": {
1018
+ "L": -1,
1019
+ "M": 1,
1020
+ "T": -2
1021
+ },
1022
+ "prefixable": false
1023
+ },
1024
+ {
1025
+ "symbols": [
1026
+ "tonne"
1027
+ ],
1028
+ "scale": "1000",
1029
+ "dimension": {
1030
+ "M": 1
1031
+ },
1032
+ "prefixable": false
1033
+ },
1034
+ {
1035
+ "symbols": [
1036
+ "therm"
1037
+ ],
1038
+ "scale": "105480400",
1039
+ "dimension": {
1040
+ "L": 2,
1041
+ "M": 1,
1042
+ "T": -2
1043
+ },
1044
+ "prefixable": false,
1045
+ "comment": "US therm (the EC therm is 1.05506e8 J). Spelled out so the choice is visible."
1046
+ }
1047
+ ],
1048
+ "refused": [
1049
+ {
1050
+ "symbol": "dB",
1051
+ "reason": "dB is a logarithmic unit; give the quantity in its linear unit, or a reference level"
1052
+ },
1053
+ {
1054
+ "symbol": "dBm",
1055
+ "reason": "dBm is a logarithmic unit (decibels over 1 mW); give watts"
1056
+ },
1057
+ {
1058
+ "symbol": "dBW",
1059
+ "reason": "dBW is a logarithmic unit (decibels over 1 W); give watts"
1060
+ },
1061
+ {
1062
+ "symbol": "Np",
1063
+ "reason": "Np is a logarithmic unit (the neper); give the quantity in its linear unit, or a reference level"
1064
+ },
1065
+ {
1066
+ "symbol": "Mach",
1067
+ "reason": "Mach is a ratio to the local speed of sound; give m/s, or the ratio as a bare number"
1068
+ },
1069
+ {
1070
+ "symbol": "mach",
1071
+ "reason": "mach is a ratio to the local speed of sound; give m/s, or the ratio as a bare number"
1072
+ },
1073
+ {
1074
+ "symbol": "ton",
1075
+ "reason": "'ton' is ambiguous: short ton (907.185 kg), long ton (1016.047 kg), or metric tonne (1000 kg); write tonne"
1076
+ }
1077
+ ],
1078
+ "prefixLetterUnits": {
1079
+ "comment": "Letters that are both an SI prefix and a unit of their own (tesla, gauss, poise, hour, day, molar, atomic mass). Such a token reads as the prefix reading and not as the unit times the rest: Gyr is a gigayear, TW a terawatt, hPa a hectopascal. m is left out on purpose: mK in a denominator is millikelvin or metre·kelvin, and a target dimension chooses.",
1080
+ "letters": [
1081
+ "T",
1082
+ "G",
1083
+ "P",
1084
+ "h",
1085
+ "d",
1086
+ "M",
1087
+ "u"
1088
+ ]
1089
+ },
1090
+ "affine": {
1091
+ "comment": "Lone spellings only; a compound that contains one is refused. The kelvin value of an absolute reading is (reading − icePoint) × scale + iceKelvin; a difference is reading × scale.",
1092
+ "iceKelvin": "273.15",
1093
+ "scales": [
1094
+ {
1095
+ "id": "celsius",
1096
+ "scale": "1",
1097
+ "icePoint": "0",
1098
+ "symbols": [
1099
+ "degC",
1100
+ "°C",
1101
+ "℃"
1102
+ ]
1103
+ },
1104
+ {
1105
+ "id": "fahrenheit",
1106
+ "scale": "5/9",
1107
+ "icePoint": "32",
1108
+ "symbols": [
1109
+ "degF",
1110
+ "°F"
1111
+ ]
1112
+ }
1113
+ ]
1114
+ },
1115
+ "spellingNotes": [
1116
+ {
1117
+ "spelling": "myr",
1118
+ "note": "myr is a milliyear (the SI prefix m on yr = 0.001 yr), not a million years; a million years is Myr"
1119
+ },
1120
+ {
1121
+ "spelling": "Msun",
1122
+ "note": "Msun is {M_sun} 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"
1123
+ },
1124
+ {
1125
+ "spelling": "G",
1126
+ "note": "bare G is the gauss (1e-4 T); GPa is still a gigapascal"
1127
+ },
1128
+ {
1129
+ "spelling": "T",
1130
+ "note": "bare T is the tesla; Ts is a terasecond"
1131
+ },
1132
+ {
1133
+ "spelling": "A",
1134
+ "note": "bare A is the ampere, not the angstrom; write angstrom or Å for 10^-10 m"
1135
+ },
1136
+ {
1137
+ "spelling": "P",
1138
+ "note": "bare P is the poise (0.1 Pa·s); PV is still a petavolt"
1139
+ },
1140
+ {
1141
+ "spelling": "M",
1142
+ "note": "bare M is the molar (1000 mol/m^3); MPa is still a megapascal"
1143
+ },
1144
+ {
1145
+ "spelling": "u",
1146
+ "note": "bare u is the atomic mass unit ({m_u} kg); um is still a micrometre"
1147
+ }
1148
+ ]
1149
+ }