universal-physics-tensor 1.0.3 → 2.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 (306) hide show
  1. package/README.md +118 -73
  2. package/dist/atlas/benchmark/hybrid-retrieval.d.ts +1 -0
  3. package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
  4. package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
  5. package/dist/atlas/chain-pipeline.d.ts +37 -0
  6. package/dist/atlas/chain-pipeline.d.ts.map +1 -1
  7. package/dist/atlas/chain-pipeline.js +95 -79
  8. package/dist/atlas/chain-pipeline.js.map +1 -1
  9. package/dist/atlas/composition-table.d.ts +5 -7
  10. package/dist/atlas/composition-table.d.ts.map +1 -1
  11. package/dist/atlas/composition-table.js +3 -5
  12. package/dist/atlas/composition-table.js.map +1 -1
  13. package/dist/atlas/proof-target.d.ts +28 -2
  14. package/dist/atlas/proof-target.d.ts.map +1 -1
  15. package/dist/atlas/proof-target.js +25 -16
  16. package/dist/atlas/proof-target.js.map +1 -1
  17. package/dist/atlas/regime.d.ts +2 -2
  18. package/dist/atlas/regime.d.ts.map +1 -1
  19. package/dist/atlas/regime.js +1 -1
  20. package/dist/atlas/regime.js.map +1 -1
  21. package/dist/atlas/types.d.ts +7 -7
  22. package/dist/atlas/types.d.ts.map +1 -1
  23. package/dist/bridges/be53-yang-mills-confrontation.d.ts +1 -1
  24. package/dist/bridges/be53-yang-mills-confrontation.d.ts.map +1 -1
  25. package/dist/canonical/normal-form.d.ts +2 -1
  26. package/dist/canonical/normal-form.d.ts.map +1 -1
  27. package/dist/canonical/normal-form.js +2 -1
  28. package/dist/canonical/normal-form.js.map +1 -1
  29. package/dist/cases/brownian-sphere.d.ts.map +1 -1
  30. package/dist/cases/brownian-sphere.js +1 -0
  31. package/dist/cases/brownian-sphere.js.map +1 -1
  32. package/dist/cli/args.d.ts +7 -0
  33. package/dist/cli/args.d.ts.map +1 -1
  34. package/dist/cli/args.js.map +1 -1
  35. package/dist/cli/command.d.ts +13 -0
  36. package/dist/cli/command.d.ts.map +1 -1
  37. package/dist/cli/command.js.map +1 -1
  38. package/dist/cli/commands/_atlas-route.d.ts +1 -1
  39. package/dist/cli/commands/atlas.d.ts.map +1 -1
  40. package/dist/cli/commands/atlas.js +28 -7
  41. package/dist/cli/commands/atlas.js.map +1 -1
  42. package/dist/cli/commands/audit.d.ts.map +1 -1
  43. package/dist/cli/commands/audit.js +7 -3
  44. package/dist/cli/commands/audit.js.map +1 -1
  45. package/dist/cli/commands/axes.d.ts.map +1 -1
  46. package/dist/cli/commands/axes.js +6 -2
  47. package/dist/cli/commands/axes.js.map +1 -1
  48. package/dist/cli/commands/candidates.d.ts.map +1 -1
  49. package/dist/cli/commands/candidates.js +7 -3
  50. package/dist/cli/commands/candidates.js.map +1 -1
  51. package/dist/cli/commands/canonical.d.ts.map +1 -1
  52. package/dist/cli/commands/canonical.js +11 -3
  53. package/dist/cli/commands/canonical.js.map +1 -1
  54. package/dist/cli/commands/chain.d.ts +1 -0
  55. package/dist/cli/commands/chain.d.ts.map +1 -1
  56. package/dist/cli/commands/chain.js +12 -1
  57. package/dist/cli/commands/chain.js.map +1 -1
  58. package/dist/cli/commands/confront.d.ts.map +1 -1
  59. package/dist/cli/commands/confront.js +20 -6
  60. package/dist/cli/commands/confront.js.map +1 -1
  61. package/dist/cli/commands/connectors.d.ts.map +1 -1
  62. package/dist/cli/commands/connectors.js +7 -3
  63. package/dist/cli/commands/connectors.js.map +1 -1
  64. package/dist/cli/commands/coverage.d.ts.map +1 -1
  65. package/dist/cli/commands/coverage.js +6 -2
  66. package/dist/cli/commands/coverage.js.map +1 -1
  67. package/dist/cli/commands/derive.d.ts.map +1 -1
  68. package/dist/cli/commands/derive.js +12 -4
  69. package/dist/cli/commands/derive.js.map +1 -1
  70. package/dist/cli/commands/discover.d.ts.map +1 -1
  71. package/dist/cli/commands/discover.js +35 -8
  72. package/dist/cli/commands/discover.js.map +1 -1
  73. package/dist/cli/commands/eval.d.ts.map +1 -1
  74. package/dist/cli/commands/eval.js +26 -19
  75. package/dist/cli/commands/eval.js.map +1 -1
  76. package/dist/cli/commands/evaluate.d.ts +7 -3
  77. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  78. package/dist/cli/commands/evaluate.js +71 -36
  79. package/dist/cli/commands/evaluate.js.map +1 -1
  80. package/dist/cli/commands/explain.d.ts.map +1 -1
  81. package/dist/cli/commands/explain.js +7 -3
  82. package/dist/cli/commands/explain.js.map +1 -1
  83. package/dist/cli/commands/frontier.d.ts.map +1 -1
  84. package/dist/cli/commands/frontier.js +12 -2
  85. package/dist/cli/commands/frontier.js.map +1 -1
  86. package/dist/cli/commands/ground.d.ts.map +1 -1
  87. package/dist/cli/commands/ground.js +20 -5
  88. package/dist/cli/commands/ground.js.map +1 -1
  89. package/dist/cli/commands/map.d.ts +1 -1
  90. package/dist/cli/commands/map.d.ts.map +1 -1
  91. package/dist/cli/commands/map.js +29 -25
  92. package/dist/cli/commands/map.js.map +1 -1
  93. package/dist/cli/commands/metric.d.ts.map +1 -1
  94. package/dist/cli/commands/metric.js +21 -14
  95. package/dist/cli/commands/metric.js.map +1 -1
  96. package/dist/cli/commands/path.d.ts +3 -2
  97. package/dist/cli/commands/path.d.ts.map +1 -1
  98. package/dist/cli/commands/path.js +47 -20
  99. package/dist/cli/commands/path.js.map +1 -1
  100. package/dist/cli/commands/predict.d.ts.map +1 -1
  101. package/dist/cli/commands/predict.js +7 -3
  102. package/dist/cli/commands/predict.js.map +1 -1
  103. package/dist/cli/commands/priority.d.ts.map +1 -1
  104. package/dist/cli/commands/priority.js +7 -3
  105. package/dist/cli/commands/priority.js.map +1 -1
  106. package/dist/cli/commands/probe.d.ts.map +1 -1
  107. package/dist/cli/commands/probe.js +32 -16
  108. package/dist/cli/commands/probe.js.map +1 -1
  109. package/dist/cli/commands/recover.d.ts.map +1 -1
  110. package/dist/cli/commands/recover.js +7 -4
  111. package/dist/cli/commands/recover.js.map +1 -1
  112. package/dist/cli/commands/regime.d.ts +2 -2
  113. package/dist/cli/commands/regime.d.ts.map +1 -1
  114. package/dist/cli/commands/regime.js +36 -12
  115. package/dist/cli/commands/regime.js.map +1 -1
  116. package/dist/cli/commands/retrieve.d.ts.map +1 -1
  117. package/dist/cli/commands/retrieve.js +23 -4
  118. package/dist/cli/commands/retrieve.js.map +1 -1
  119. package/dist/cli/commands/search.d.ts.map +1 -1
  120. package/dist/cli/commands/search.js +12 -2
  121. package/dist/cli/commands/search.js.map +1 -1
  122. package/dist/cli/commands/symbolic.d.ts.map +1 -1
  123. package/dist/cli/commands/symbolic.js +11 -3
  124. package/dist/cli/commands/symbolic.js.map +1 -1
  125. package/dist/cli/commands/testplan.d.ts.map +1 -1
  126. package/dist/cli/commands/testplan.js +12 -2
  127. package/dist/cli/commands/testplan.js.map +1 -1
  128. package/dist/cli/eval-numbers.d.ts +2 -2
  129. package/dist/cli/eval-numbers.js +2 -2
  130. package/dist/cli/flag-help.d.ts +34 -0
  131. package/dist/cli/flag-help.d.ts.map +1 -0
  132. package/dist/cli/flag-help.js +113 -0
  133. package/dist/cli/flag-help.js.map +1 -0
  134. package/dist/cli/main.d.ts +0 -8
  135. package/dist/cli/main.d.ts.map +1 -1
  136. package/dist/cli/main.js +42 -29
  137. package/dist/cli/main.js.map +1 -1
  138. package/dist/cli/version.d.ts +6 -2
  139. package/dist/cli/version.d.ts.map +1 -1
  140. package/dist/cli/version.js +11 -3
  141. package/dist/cli/version.js.map +1 -1
  142. package/dist/cli-api.d.ts +50 -0
  143. package/dist/cli-api.d.ts.map +1 -1
  144. package/dist/cli-api.js +42 -0
  145. package/dist/cli-api.js.map +1 -1
  146. package/dist/composition/adjudication.d.ts +9 -0
  147. package/dist/composition/adjudication.d.ts.map +1 -1
  148. package/dist/composition/adjudication.js +13 -0
  149. package/dist/composition/adjudication.js.map +1 -1
  150. package/dist/composition/canonical-compare.d.ts +1 -0
  151. package/dist/composition/canonical-compare.d.ts.map +1 -1
  152. package/dist/composition/canonical-compare.js +1 -0
  153. package/dist/composition/canonical-compare.js.map +1 -1
  154. package/dist/composition/chain-result.d.ts +55 -0
  155. package/dist/composition/chain-result.d.ts.map +1 -0
  156. package/dist/composition/chain-result.js +57 -0
  157. package/dist/composition/chain-result.js.map +1 -0
  158. package/dist/composition/compose-symbolic.d.ts.map +1 -1
  159. package/dist/composition/compose-symbolic.js +4 -39
  160. package/dist/composition/compose-symbolic.js.map +1 -1
  161. package/dist/composition/compose.d.ts.map +1 -1
  162. package/dist/composition/compose.js +11 -4
  163. package/dist/composition/compose.js.map +1 -1
  164. package/dist/composition/edges/calibration.d.ts +9 -0
  165. package/dist/composition/edges/calibration.d.ts.map +1 -1
  166. package/dist/composition/edges/calibration.js +9 -9
  167. package/dist/composition/edges/calibration.js.map +1 -1
  168. package/dist/composition/edges/catalog-condensed-matter.d.ts +10 -0
  169. package/dist/composition/edges/catalog-condensed-matter.d.ts.map +1 -1
  170. package/dist/composition/edges/catalog-condensed-matter.js +10 -10
  171. package/dist/composition/edges/catalog-condensed-matter.js.map +1 -1
  172. package/dist/composition/edges/catalog-gravitation-cosmology.d.ts +11 -0
  173. package/dist/composition/edges/catalog-gravitation-cosmology.d.ts.map +1 -1
  174. package/dist/composition/edges/catalog-gravitation-cosmology.js +11 -11
  175. package/dist/composition/edges/catalog-gravitation-cosmology.js.map +1 -1
  176. package/dist/composition/edges/catalog-quantum.d.ts +10 -0
  177. package/dist/composition/edges/catalog-quantum.d.ts.map +1 -1
  178. package/dist/composition/edges/catalog-quantum.js +10 -10
  179. package/dist/composition/edges/catalog-quantum.js.map +1 -1
  180. package/dist/composition/edges/catalog-tranche.d.ts +11 -0
  181. package/dist/composition/edges/catalog-tranche.d.ts.map +1 -1
  182. package/dist/composition/edges/catalog-tranche.js +11 -11
  183. package/dist/composition/edges/catalog-tranche.js.map +1 -1
  184. package/dist/composition/enumerate.d.ts +46 -5
  185. package/dist/composition/enumerate.d.ts.map +1 -1
  186. package/dist/composition/enumerate.js +37 -8
  187. package/dist/composition/enumerate.js.map +1 -1
  188. package/dist/composition/expr-simplify.d.ts.map +1 -1
  189. package/dist/composition/expr-simplify.js +3 -11
  190. package/dist/composition/expr-simplify.js.map +1 -1
  191. package/dist/composition/frontier-account.d.ts +6 -6
  192. package/dist/composition/frontier-account.d.ts.map +1 -1
  193. package/dist/composition/mathts-scalar-symbols.d.ts +48 -0
  194. package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -0
  195. package/dist/composition/mathts-scalar-symbols.js +150 -0
  196. package/dist/composition/mathts-scalar-symbols.js.map +1 -0
  197. package/dist/composition/probe/frontier.d.ts.map +1 -1
  198. package/dist/composition/probe/frontier.js +17 -4
  199. package/dist/composition/probe/frontier.js.map +1 -1
  200. package/dist/composition/probe/study.js +1 -1
  201. package/dist/composition/probe/study.js.map +1 -1
  202. package/dist/composition/uncertainty.d.ts +2 -2
  203. package/dist/composition/uncertainty.d.ts.map +1 -1
  204. package/dist/composition/uncertainty.js +14 -13
  205. package/dist/composition/uncertainty.js.map +1 -1
  206. package/dist/diff/bridge-gradient.d.ts +5 -8
  207. package/dist/diff/bridge-gradient.d.ts.map +1 -1
  208. package/dist/diff/bridge-gradient.js +5 -8
  209. package/dist/diff/bridge-gradient.js.map +1 -1
  210. package/dist/dimensional/buckingham.d.ts.map +1 -1
  211. package/dist/dimensional/buckingham.js +19 -91
  212. package/dist/dimensional/buckingham.js.map +1 -1
  213. package/dist/dimensional/units.d.ts +13 -0
  214. package/dist/dimensional/units.d.ts.map +1 -1
  215. package/dist/dimensional/units.js +78 -1
  216. package/dist/dimensional/units.js.map +1 -1
  217. package/dist/index.d.ts +1 -1
  218. package/dist/index.d.ts.map +1 -1
  219. package/dist/index.js +4 -4
  220. package/dist/index.js.map +1 -1
  221. package/dist/numerical/binding-value.d.ts +3 -3
  222. package/dist/numerical/binding-value.d.ts.map +1 -1
  223. package/dist/numerical/binding-value.js +60 -31
  224. package/dist/numerical/binding-value.js.map +1 -1
  225. package/dist/numerical/einstein-equation.js +3 -3
  226. package/dist/numerical/einstein-equation.js.map +1 -1
  227. package/dist/numerical/engine-registry.d.ts +12 -27
  228. package/dist/numerical/engine-registry.d.ts.map +1 -1
  229. package/dist/numerical/engine-registry.js +10 -65
  230. package/dist/numerical/engine-registry.js.map +1 -1
  231. package/dist/numerical/errors.d.ts +1 -2
  232. package/dist/numerical/errors.d.ts.map +1 -1
  233. package/dist/numerical/errors.js +1 -2
  234. package/dist/numerical/errors.js.map +1 -1
  235. package/dist/numerical/formula-contract.d.ts +60 -0
  236. package/dist/numerical/formula-contract.d.ts.map +1 -0
  237. package/dist/numerical/formula-contract.js +107 -0
  238. package/dist/numerical/formula-contract.js.map +1 -0
  239. package/dist/numerical/formula-dimension.d.ts +33 -10
  240. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  241. package/dist/numerical/formula-dimension.js +48 -35
  242. package/dist/numerical/formula-dimension.js.map +1 -1
  243. package/dist/numerical/formula-mathts.d.ts +15 -17
  244. package/dist/numerical/formula-mathts.d.ts.map +1 -1
  245. package/dist/numerical/formula-mathts.js +34 -36
  246. package/dist/numerical/formula-mathts.js.map +1 -1
  247. package/dist/numerical/formula-registry.d.ts +11 -19
  248. package/dist/numerical/formula-registry.d.ts.map +1 -1
  249. package/dist/numerical/formula-registry.js +16 -79
  250. package/dist/numerical/formula-registry.js.map +1 -1
  251. package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
  252. package/dist/numerical/geodesic-integrator.js +19 -31
  253. package/dist/numerical/geodesic-integrator.js.map +1 -1
  254. package/dist/numerical/gl4-integrator.d.ts +12 -51
  255. package/dist/numerical/gl4-integrator.d.ts.map +1 -1
  256. package/dist/numerical/gl4-integrator.js +103 -565
  257. package/dist/numerical/gl4-integrator.js.map +1 -1
  258. package/dist/numerical/index.d.ts +0 -2
  259. package/dist/numerical/index.d.ts.map +1 -1
  260. package/dist/numerical/index.js +0 -2
  261. package/dist/numerical/index.js.map +1 -1
  262. package/dist/numerical/kretschmann.d.ts +2 -2
  263. package/dist/numerical/kretschmann.js +2 -2
  264. package/dist/numerical/mathts-engine.d.ts +7 -8
  265. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  266. package/dist/numerical/mathts-engine.js +19 -27
  267. package/dist/numerical/mathts-engine.js.map +1 -1
  268. package/dist/numerical/null-ray-integrator.d.ts.map +1 -1
  269. package/dist/numerical/null-ray-integrator.js +11 -28
  270. package/dist/numerical/null-ray-integrator.js.map +1 -1
  271. package/dist/numerical/quadrature.d.ts +2 -17
  272. package/dist/numerical/quadrature.d.ts.map +1 -1
  273. package/dist/numerical/quadrature.js +9 -20
  274. package/dist/numerical/quadrature.js.map +1 -1
  275. package/dist/numerical/spacetime-metrics.d.ts +1 -0
  276. package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
  277. package/dist/numerical/spacetime-metrics.js.map +1 -1
  278. package/dist/numerical/strides.d.ts +1 -2
  279. package/dist/numerical/strides.d.ts.map +1 -1
  280. package/dist/numerical/strides.js +1 -2
  281. package/dist/numerical/strides.js.map +1 -1
  282. package/dist/numerical/tensor-engine.d.ts +2 -3
  283. package/dist/numerical/tensor-engine.d.ts.map +1 -1
  284. package/dist/numerical/tensor-engine.js +1 -2
  285. package/dist/numerical/tensor-engine.js.map +1 -1
  286. package/dist/relations/category.d.ts +8 -2
  287. package/dist/relations/category.d.ts.map +1 -1
  288. package/dist/relations/category.js +10 -2
  289. package/dist/relations/category.js.map +1 -1
  290. package/dist/relations/composition-table.d.ts +1 -1
  291. package/dist/relations/composition-table.d.ts.map +1 -1
  292. package/dist/relations/composition-table.js +1 -1
  293. package/dist/relations/composition-table.js.map +1 -1
  294. package/dist/relations/regime-vocabularies.d.ts +40 -0
  295. package/dist/relations/regime-vocabularies.d.ts.map +1 -0
  296. package/dist/relations/regime-vocabularies.js +19 -0
  297. package/dist/relations/regime-vocabularies.js.map +1 -0
  298. package/package.json +13 -46
  299. package/dist/numerical/float64-engine.d.ts +0 -55
  300. package/dist/numerical/float64-engine.d.ts.map +0 -1
  301. package/dist/numerical/float64-engine.js +0 -675
  302. package/dist/numerical/float64-engine.js.map +0 -1
  303. package/dist/numerical/formula.d.ts +0 -106
  304. package/dist/numerical/formula.d.ts.map +0 -1
  305. package/dist/numerical/formula.js +0 -348
  306. package/dist/numerical/formula.js.map +0 -1
@@ -2,9 +2,9 @@
2
2
  * A binding value: a bare number, a number with a unit, or an expression of
3
3
  * registered constants and unit literals (`pi/2`, `0.6*c`, `2*1km`).
4
4
  *
5
- * The built-in formula parser evaluates the expression. MathTS is not used.
6
- * A bare `e` is the elementary charge. Euler's number is `exp(x)`.
7
- * A published install has no MathTS. A bare number, or an expression whose result is
5
+ * The MathTS parser produces the node this module evaluates, so a unit
6
+ * literal keeps its dimension. A bare `e` is the elementary charge.
7
+ * Euler's number is `exp(x)`. A bare number, or an expression whose result is
8
8
  * dimensionless and contains no unit literal, is already in the caller's
9
9
  * unit. Anything else is an SI quantity: the caller converts it into the
10
10
  * declared unit when the dimensions agree.
@@ -22,8 +22,9 @@ import { naturalConstantOverrides } from '../dimensional/natural-units.js';
22
22
  import { CONSTANTS as SYMBOLIC } from '../dimensional/symbolic-constants.js';
23
23
  import { divide, equals, format, multiply, power } from '../dimensional/algebra.js';
24
24
  import { DIMENSIONLESS, MASS } from '../dimensional/types.js';
25
- import { convertValue, parseUnit, unitConventionNotes, UnitError, } from '../dimensional/units.js';
26
- import { callBuiltinFunction, FormulaError, parseFormulaToAst, } from './formula.js';
25
+ import { convertValue, mathTsAgreedQuantity, parseUnit, unitConventionNotes, UnitError, } from '../dimensional/units.js';
26
+ import { callBuiltinFunction, EULER_NUMBER_ERROR, FormulaError } from './formula-contract.js';
27
+ import { parseFormulaPNode } from './formula-dimension.js';
27
28
  const NUMBER = /^[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?$/;
28
29
  const NUMBER_UNIT = /^([+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?)\s*(.*?)$/;
29
30
  const GLUED_NUMBER = /(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/g;
@@ -117,8 +118,9 @@ function spliceUnits(src) {
117
118
  if (parsed.affine !== undefined) {
118
119
  throw new UnitError('degC is affine and cannot be part of an expression; give the temperature alone, or use K');
119
120
  }
121
+ const agreed = mathTsAgreedQuantity(1, unit, parsed);
120
122
  const name = `__u${slots.size}`;
121
- slots.set(name, { value: parsed.scale, dim: parsed.dim });
123
+ slots.set(name, { value: agreed?.value ?? parsed.scale, dim: agreed?.dim ?? parsed.dim });
122
124
  for (const note of unitConventionNotes(unit)) {
123
125
  if (!notes.includes(note))
124
126
  notes.push(note);
@@ -135,6 +137,8 @@ function evalAst(node, scope, slots) {
135
137
  case 'num':
136
138
  return { value: node.value, dim: DIMENSIONLESS };
137
139
  case 'sym': {
140
+ if (node.name === 'euler')
141
+ throw new FormulaError(EULER_NUMBER_ERROR);
138
142
  const slot = slots.get(node.name);
139
143
  if (slot !== undefined)
140
144
  return slot;
@@ -143,35 +147,59 @@ function evalAst(node, scope, slots) {
143
147
  return known;
144
148
  throw new UnitError(`unknown name '${node.name}'`);
145
149
  }
146
- case 'unary': {
150
+ case 'neg': {
147
151
  const a = evalAst(node.arg, scope, slots);
148
- return { value: node.op === '-' ? -a.value : a.value, dim: a.dim };
152
+ return { value: -a.value, dim: a.dim };
149
153
  }
150
- case 'bin': {
151
- const l = evalAst(node.left, scope, slots);
152
- const r = evalAst(node.right, scope, slots);
153
- switch (node.op) {
154
- case '+':
155
- case '-':
156
- if (!equals(l.dim, r.dim)) {
157
- throw new UnitError(`cannot ${node.op === '+' ? 'add' : 'subtract'} ${format(l.dim)} and ${format(r.dim)}`);
158
- }
159
- return { value: node.op === '+' ? l.value + r.value : l.value - r.value, dim: l.dim };
160
- case '*':
161
- return { value: l.value * r.value, dim: multiply(l.dim, r.dim) };
162
- case '/':
163
- return { value: l.value / r.value, dim: divide(l.dim, r.dim) };
164
- case '^':
165
- if (!equals(r.dim, DIMENSIONLESS))
166
- throw new UnitError('an exponent must be dimensionless');
167
- return { value: Math.pow(l.value, r.value), dim: power(l.dim, r.value) };
168
- }
154
+ case 'op':
155
+ return evalOp(node.op, node.args.map((a) => evalAst(a, scope, slots)));
156
+ case 'pow': {
157
+ const base = evalAst(node.base, scope, slots);
158
+ const exp = evalAst(node.exp, scope, slots);
159
+ if (!equals(exp.dim, DIMENSIONLESS))
160
+ throw new UnitError('an exponent must be dimensionless');
161
+ return { value: Math.pow(base.value, exp.value), dim: power(base.dim, exp.value) };
169
162
  }
170
- // eslint-disable-next-line no-fallthrough
171
163
  case 'call':
164
+ if (node.fn === 'euler')
165
+ throw new FormulaError(EULER_NUMBER_ERROR);
172
166
  return evalCall(node.fn, node.args.map((a) => evalAst(a, scope, slots)));
173
167
  }
174
168
  }
169
+ function evalOp(op, args) {
170
+ if (args.length === 0)
171
+ throw new UnitError(`cannot ${op}`);
172
+ if (op === '+' || op === '-') {
173
+ const first = args[0];
174
+ if (args.length === 1) {
175
+ return op === '-' ? { value: -first.value, dim: first.dim } : first;
176
+ }
177
+ let value = first.value;
178
+ for (const next of args.slice(1)) {
179
+ if (!equals(first.dim, next.dim)) {
180
+ throw new UnitError(`cannot ${op === '+' ? 'add' : 'subtract'} ${format(first.dim)} and ${format(next.dim)}`);
181
+ }
182
+ value = op === '+' ? value + next.value : value - next.value;
183
+ }
184
+ return { value, dim: first.dim };
185
+ }
186
+ if (op === '*') {
187
+ let value = 1;
188
+ let dim = DIMENSIONLESS;
189
+ for (const a of args) {
190
+ value *= a.value;
191
+ dim = multiply(dim, a.dim);
192
+ }
193
+ return { value, dim };
194
+ }
195
+ let value = args[0].value;
196
+ let dim = args[0].dim;
197
+ for (const next of args.slice(1)) {
198
+ value /= next.value;
199
+ dim = divide(dim, next.dim);
200
+ }
201
+ return { value, dim };
202
+ }
175
203
  function evalCall(fn, args) {
176
204
  if (fn === 'sqrt' || fn === 'cbrt') {
177
205
  if (args.length !== 1)
@@ -231,10 +259,11 @@ function plainUnit(raw, reading) {
231
259
  }
232
260
  const v = finite(raw, Number(m[1]));
233
261
  const offset = unit.affine === 'celsius' && reading === 'absolute' ? CELSIUS_OFFSET_K : 0;
262
+ const agreed = offset === 0 ? mathTsAgreedQuantity(v, m[2], unit) : undefined;
234
263
  return {
235
- value: v * unit.scale + offset,
264
+ value: agreed?.value ?? v * unit.scale + offset,
236
265
  dimensioned: true,
237
- dimension: unit.dim,
266
+ dimension: agreed?.dim ?? unit.dim,
238
267
  notes: unitConventionNotes(m[2]),
239
268
  };
240
269
  }
@@ -278,7 +307,7 @@ export function readBinding(raw, opts) {
278
307
  const spliced = spliceUnits(trimmed);
279
308
  let ast;
280
309
  try {
281
- ast = parseFormulaToAst(spliced.expr);
310
+ ast = parseFormulaPNode(spliced.expr);
282
311
  }
283
312
  catch (e) {
284
313
  if (e instanceof FormulaError) {
@@ -1 +1 @@
1
- {"version":3,"file":"binding-value.js","sourceRoot":"","sources":["../../src/numerical/binding-value.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binding-value.js","sourceRoot":"","sources":["../../src/numerical/binding-value.ts"],"names":[],"mappings":"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"}
@@ -22,13 +22,13 @@
22
22
  * @module numerical/einstein-equation
23
23
  */
24
24
  import { lowerNode } from './lowering.js';
25
- import { Float64ReferenceEngine } from './float64-engine.js';
25
+ import { MathTSEngine } from './mathts-engine.js';
26
26
  import { metric } from '../dimensional/metric.js';
27
27
  import { tsym } from '../dimensional/tensor.js';
28
28
  import { LENGTH, DIMENSIONLESS } from '../dimensional/types.js';
29
29
  import { C_SI, G_SI } from '../core/constants.js';
30
- /** Shared engine instance (stateless Float64ReferenceEngine, safe to reuse). */
31
- const _engine = new Float64ReferenceEngine();
30
+ /** Shared engine instance (stateless MathTSEngine, safe to reuse). */
31
+ const _engine = new MathTSEngine();
32
32
  /**
33
33
  * Build the EinsteinTensorNode AST that the lowering layer understands.
34
34
  * The inner RiemannTensorNode and outer EinsteinTensorNode both reference
@@ -1 +1 @@
1
- {"version":3,"file":"einstein-equation.js","sourceRoot":"","sources":["../../src/numerical/einstein-equation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"einstein-equation.js","sourceRoot":"","sources":["../../src/numerical/einstein-equation.ts"],"names":[],"mappings":"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"}
@@ -1,48 +1,33 @@
1
1
  /**
2
- * Engine registry — selects the active TensorEngine. v0.4.0: when both
3
- * @danielsimonjr/mathts-tensor AND @danielsimonjr/mathts-autograd are
4
- * installed, getActiveEngine() returns MathTSEngine. Falls back to
5
- * Float64ReferenceEngine (the zero-dep default) with a one-time
6
- * console.warn (suppressible via UPT_QUIET_FALLBACK=1) when either dep
7
- * is absent.
2
+ * Engine registry — the active TensorEngine is `MathTSEngine`.
8
3
  *
9
- * HONEST FRAMING: both engines run the same naive O(n) algorithms in
10
- * v0.4.0. This default flip is a dep-shape + code-path-signal change,
11
- * NOT a performance win. MathTSEngine becomes the default because that
12
- * is where the autograd capability (AD) lives.
4
+ * The MathTS packages are required dependencies. There is no absent-peer
5
+ * branch.
13
6
  *
14
- * I4 fix (Promise-cache): the Promise itself is cached, not the resolved
15
- * instance. Two concurrent first-time callers therefore observe the same
16
- * in-flight Promise and never race to create separate engine instances.
17
- *
18
- * I5 fix (browser guard): `process` is undefined in browser bundlers.
19
- * All access is guarded by `typeof process !== 'undefined'`.
7
+ * The Promise itself is cached, so concurrent first-time callers share one
8
+ * resolution. `setActiveEngine` replaces that promise, including one that
9
+ * has not been awaited yet.
20
10
  *
21
11
  * @module numerical/engine-registry
22
12
  */
23
13
  import type { TensorEngine } from './tensor-engine.js';
24
14
  /**
25
- * The TensorEngine currently used by the `evaluateNumerical*` entry points
26
- * when no per-call `EvaluateOptions.engine` is supplied.
27
- *
28
- * v0.4.0: returns MathTSEngine when both @danielsimonjr/mathts-tensor AND
29
- * @danielsimonjr/mathts-autograd are installed; otherwise Float64ReferenceEngine.
30
- *
31
- * I4: returns a cached Promise — concurrent first-time callers share the
32
- * same in-flight resolution, so at most one MathTSEngine is ever constructed.
15
+ * The TensorEngine used by the `evaluateNumerical*` entry points when no
16
+ * per-call `EvaluateOptions.engine` is supplied. Always a `MathTSEngine`
17
+ * unless {@link setActiveEngine} replaced it.
33
18
  *
34
19
  * @public
35
20
  */
36
21
  export declare function getActiveEngine(): Promise<TensorEngine>;
37
22
  /**
38
- * Set the process-wide active TensorEngine (e.g. to `MathTSEngine`).
23
+ * Set the process-wide active TensorEngine.
39
24
  * Wraps the engine in a resolved Promise to match the async getActiveEngine
40
- * contract and invalidate any prior in-flight detection.
25
+ * contract.
41
26
  * @public
42
27
  */
43
28
  export declare function setActiveEngine(engine: TensorEngine): void;
44
29
  /**
45
- * Reset the Promise-cache and detection state for testing purposes only.
30
+ * Reset the Promise-cache for testing purposes only.
46
31
  * Not part of the public API surface; NOT exported from the root barrel.
47
32
  * @internal
48
33
  */
@@ -1 +1 @@
1
- {"version":3,"file":"engine-registry.d.ts","sourceRoot":"","sources":["../../src/numerical/engine-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAsDvD;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAY7D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAG1D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAI5C"}
1
+ {"version":3,"file":"engine-registry.d.ts","sourceRoot":"","sources":["../../src/numerical/engine-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAYvD;;;;;;GAMG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAG7D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAG1D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C"}
@@ -1,79 +1,25 @@
1
- import { Float64ReferenceEngine } from './float64-engine.js';
2
- // Module-level cache. Stores a Promise so that concurrent first-time calls
3
- // to getActiveEngine() both await the same in-flight detection, never racing
4
- // to construct two separate engine instances (I4 fix).
1
+ import { MathTSEngine } from './mathts-engine.js';
5
2
  let _activeEngineP;
6
- // Cache the detection result so we don't re-import on every getActiveEngine()
7
- // call after the first. Reset by resetEngineForTesting() in tests.
8
- let _resolvedDefault;
9
- // Synchronous record of an explicit setActiveEngine override. An in-flight
10
- // detection (started by an earlier getActiveEngine) reads this AFTER its async
11
- // import resolves, so a setActiveEngine that lands mid-detection wins for the
12
- // in-flight awaiter too — not just for later callers. Without it, the in-flight
13
- // promise resolves to the stale auto-detected engine.
3
+ // An explicit setActiveEngine override. Read when the cached promise is
4
+ // created, so a set that lands first wins for the first awaiter.
14
5
  let _override;
15
- /**
16
- * Attempt to import both optional peer deps. Returns 'mathts' when both are
17
- * present; 'float64' otherwise. Emits a one-time console.warn on fallback
18
- * (suppressible via UPT_QUIET_FALLBACK=1).
19
- */
20
- async function detectDefault() {
21
- if (_resolvedDefault !== undefined)
22
- return _resolvedDefault;
23
- try {
24
- await import('@danielsimonjr/mathts-tensor');
25
- // v0.5.1 TS-4: the prior `@ts-ignore` is replaced by the ambient module
26
- // declaration at the top of this file; the try-catch still handles the
27
- // runtime-absent case (Promise rejection from the bundler/loader).
28
- await import('@danielsimonjr/mathts-autograd');
29
- _resolvedDefault = 'mathts';
30
- }
31
- catch {
32
- // I5 fix: `process` is undefined in browser bundlers; guard before reading.
33
- const quiet = typeof process !== 'undefined' && process.env?.UPT_QUIET_FALLBACK === '1';
34
- if (!quiet) {
35
- console.warn('[universal-physics-tensor] @danielsimonjr/mathts-tensor and/or '
36
- + '@danielsimonjr/mathts-autograd not installed. '
37
- + 'Falling back to Float64ReferenceEngine. '
38
- + 'Install both peers for MathTS-default + autograd (AD) support. '
39
- + '(Suppress this warning with UPT_QUIET_FALLBACK=1.)');
40
- }
41
- _resolvedDefault = 'float64';
42
- }
43
- return _resolvedDefault;
44
- }
45
6
  // @public: getActiveEngine/setActiveEngine are part of the consumer-facing
46
7
  // engine-switching contract (re-exported from the root barrel).
47
8
  /**
48
- * The TensorEngine currently used by the `evaluateNumerical*` entry points
49
- * when no per-call `EvaluateOptions.engine` is supplied.
50
- *
51
- * v0.4.0: returns MathTSEngine when both @danielsimonjr/mathts-tensor AND
52
- * @danielsimonjr/mathts-autograd are installed; otherwise Float64ReferenceEngine.
53
- *
54
- * I4: returns a cached Promise — concurrent first-time callers share the
55
- * same in-flight resolution, so at most one MathTSEngine is ever constructed.
9
+ * The TensorEngine used by the `evaluateNumerical*` entry points when no
10
+ * per-call `EvaluateOptions.engine` is supplied. Always a `MathTSEngine`
11
+ * unless {@link setActiveEngine} replaced it.
56
12
  *
57
13
  * @public
58
14
  */
59
15
  export async function getActiveEngine() {
60
- _activeEngineP ??= (async () => {
61
- const choice = await detectDefault();
62
- // A setActiveEngine that landed while detection was in flight wins.
63
- if (_override !== undefined)
64
- return _override;
65
- if (choice === 'mathts') {
66
- const { MathTSEngine } = await import('./mathts-engine.js');
67
- return new MathTSEngine();
68
- }
69
- return new Float64ReferenceEngine();
70
- })();
16
+ _activeEngineP ??= Promise.resolve(_override ?? new MathTSEngine());
71
17
  return _activeEngineP;
72
18
  }
73
19
  /**
74
- * Set the process-wide active TensorEngine (e.g. to `MathTSEngine`).
20
+ * Set the process-wide active TensorEngine.
75
21
  * Wraps the engine in a resolved Promise to match the async getActiveEngine
76
- * contract and invalidate any prior in-flight detection.
22
+ * contract.
77
23
  * @public
78
24
  */
79
25
  export function setActiveEngine(engine) {
@@ -81,13 +27,12 @@ export function setActiveEngine(engine) {
81
27
  _activeEngineP = Promise.resolve(engine);
82
28
  }
83
29
  /**
84
- * Reset the Promise-cache and detection state for testing purposes only.
30
+ * Reset the Promise-cache for testing purposes only.
85
31
  * Not part of the public API surface; NOT exported from the root barrel.
86
32
  * @internal
87
33
  */
88
34
  export function resetEngineForTesting() {
89
35
  _activeEngineP = undefined;
90
- _resolvedDefault = undefined;
91
36
  _override = undefined;
92
37
  }
93
38
  //# sourceMappingURL=engine-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine-registry.js","sourceRoot":"","sources":["../../src/numerical/engine-registry.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,2EAA2E;AAC3E,6EAA6E;AAC7E,uDAAuD;AACvD,IAAI,cAAiD,CAAC;AAEtD,8EAA8E;AAC9E,mEAAmE;AACnE,IAAI,gBAAkD,CAAC;AAEvD,2EAA2E;AAC3E,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,sDAAsD;AACtD,IAAI,SAAmC,CAAC;AAExC;;;;GAIG;AACH,KAAK,UAAU,aAAa;IAC1B,IAAI,gBAAgB,KAAK,SAAS;QAAE,OAAO,gBAAgB,CAAC;IAC5D,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;QAC7C,wEAAwE;QACxE,uEAAuE;QACvE,mEAAmE;QACnE,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;QAC/C,gBAAgB,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,4EAA4E;QAC5E,MAAM,KAAK,GACT,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,kBAAkB,KAAK,GAAG,CAAC;QAC5E,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CACV,iEAAiE;kBAC/D,gDAAgD;kBAChD,0CAA0C;kBAC1C,iEAAiE;kBACjE,oDAAoD,CACvD,CAAC;QACJ,CAAC;QACD,gBAAgB,GAAG,SAAS,CAAC;IAC/B,CAAC;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,2EAA2E;AAC3E,gEAAgE;AAEhE;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,cAAc,KAAK,CAAC,KAAK,IAAI,EAAE;QAC7B,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;QACrC,oEAAoE;QACpE,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC9C,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAC5D,OAAO,IAAI,YAAY,EAAE,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,sBAAsB,EAAE,CAAC;IACtC,CAAC,CAAC,EAAE,CAAC;IACL,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,SAAS,GAAG,MAAM,CAAC;IACnB,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,cAAc,GAAG,SAAS,CAAC;IAC3B,gBAAgB,GAAG,SAAS,CAAC;IAC7B,SAAS,GAAG,SAAS,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"engine-registry.js","sourceRoot":"","sources":["../../src/numerical/engine-registry.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,IAAI,cAAiD,CAAC;AAEtD,wEAAwE;AACxE,iEAAiE;AACjE,IAAI,SAAmC,CAAC;AAExC,2EAA2E;AAC3E,gEAAgE;AAEhE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,YAAY,EAAE,CAAC,CAAC;IACpE,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,SAAS,GAAG,MAAM,CAAC;IACnB,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,cAAc,GAAG,SAAS,CAAC;IAC3B,SAAS,GAAG,SAAS,CAAC;AACxB,CAAC"}
@@ -15,8 +15,7 @@ export declare class NumericalBackendError extends UPTError {
15
15
  }
16
16
  /**
17
17
  * Thrown when a TensorEngine method required for an operation is not
18
- * implemented by the active engine (e.g. forwardGrad/reverseGrad on
19
- * Float64ReferenceEngine). Call `hasAutogradSupport(engine)` before
18
+ * implemented by the active engine. Call `hasAutogradSupport(engine)` before
20
19
  * invoking AD methods to avoid this error.
21
20
  * @public
22
21
  */
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/numerical/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,QAAQ;IACjD,YAAY,OAAO,EAAE,MAAM,EAI1B;CACF;AAED;;;;;;GAMG;AACH,qBAAa,qBAAsB,SAAQ,qBAAqB;aAE5C,UAAU,EAAE,MAAM;aAClB,aAAa,EAAE,MAAM;IAFvC,YACkB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EAQtC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,mBAAoB,SAAQ,qBAAqB;IAC5D,YAAY,OAAO,EAAE,MAAM,EAI1B;CACF"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/numerical/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,QAAQ;IACjD,YAAY,OAAO,EAAE,MAAM,EAI1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,qBAAqB;aAE5C,UAAU,EAAE,MAAM;aAClB,aAAa,EAAE,MAAM;IAFvC,YACkB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EAQtC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,mBAAoB,SAAQ,qBAAqB;IAC5D,YAAY,OAAO,EAAE,MAAM,EAI1B;CACF"}
@@ -19,8 +19,7 @@ export class NumericalBackendError extends UPTError {
19
19
  }
20
20
  /**
21
21
  * Thrown when a TensorEngine method required for an operation is not
22
- * implemented by the active engine (e.g. forwardGrad/reverseGrad on
23
- * Float64ReferenceEngine). Call `hasAutogradSupport(engine)` before
22
+ * implemented by the active engine. Call `hasAutogradSupport(engine)` before
24
23
  * invoking AD methods to avoid this error.
25
24
  * @public
26
25
  */
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/numerical/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD;;;;GAIG;AACH,MAAM,OAAO,qBAAsB,SAAQ,QAAQ;IACjD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,qBAAsB,SAAQ,qBAAqB;IAE5C,UAAU;IACV,aAAa;IAF/B,YACkB,UAAkB,EAClB,aAAqB;QAErC,KAAK,CACH,WAAW,UAAU,yBAAyB,aAAa,KAAK;YAChE,wEAAwE,CACzE,CAAC;0BANc,UAAU;6BACV,aAAa;QAM7B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,mBAAoB,SAAQ,qBAAqB;IAC5D,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/numerical/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD;;;;GAIG;AACH,MAAM,OAAO,qBAAsB,SAAQ,QAAQ;IACjD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,qBAAsB,SAAQ,qBAAqB;IAE5C,UAAU;IACV,aAAa;IAF/B,YACkB,UAAkB,EAClB,aAAqB;QAErC,KAAK,CACH,WAAW,UAAU,yBAAyB,aAAa,KAAK;YAChE,wEAAwE,CACzE,CAAC;0BANc,UAAU;6BACV,aAAa;QAM7B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,mBAAoB,SAAQ,qBAAqB;IAC5D,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;CACF"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Scalar-formula contract shared by the MathTS parser.
3
+ *
4
+ * Path B, the recursive-descent parser that used to live in `formula.ts`, is
5
+ * gone. These types and the documented function table stay: the MathTS
6
+ * adapter still returns a `number`, still refuses `euler`, and still supplies
7
+ * `ln` when MathTS does not define it.
8
+ *
9
+ * @module numerical/formula-contract
10
+ */
11
+ /** A parse or evaluation failure (bad syntax, unknown symbol, arity). */
12
+ export declare class FormulaError extends Error {
13
+ constructor(message: string);
14
+ }
15
+ /** A parsed formula: its free variables and a safe evaluator. @internal */
16
+ export interface CompiledFormula {
17
+ /** The original source string. */
18
+ readonly source: string;
19
+ /** Free variable names (excludes built-in constants and functions). */
20
+ readonly variables: readonly string[];
21
+ /** Evaluate against a `name → value` scope. Throws on a missing var. */
22
+ evaluate(scope: Record<string, number>): number;
23
+ }
24
+ /** The MathTS-backed parser implements this. @internal */
25
+ export interface FormulaParser {
26
+ parse(expr: string): CompiledFormula;
27
+ }
28
+ /**
29
+ * The name `euler` is not Euler's number. Write `exp(x)`, for example `exp(1)`.
30
+ * A bare `e` is the elementary charge. `E` is energy.
31
+ * @internal
32
+ */
33
+ export declare const EULER_NUMBER_ERROR = "euler is not Euler's number. Write it as exp(x), for example exp(1). A bare e is the elementary charge. E is energy.";
34
+ /** Names of the built-in functions this parser documents. @internal */
35
+ export declare const BUILTIN_FUNCTION_NAMES: readonly string[];
36
+ /**
37
+ * Function names from other conventions, each with the documented function that computes the same
38
+ * value (audit I4). An unknown name still fails: the equivalent is only named in the message, so a
39
+ * formula never means something its author did not write. Every `use` is in
40
+ * {@link BUILTIN_FUNCTION_NAMES}.
41
+ * @internal
42
+ */
43
+ export declare const FUNCTION_EQUIVALENTS: Readonly<Record<string, {
44
+ readonly use: string;
45
+ readonly meaning: string;
46
+ }>>;
47
+ /** The documented functions as help and diagnostics list them, with the base of `log` stated. @internal */
48
+ export declare const BUILTIN_FUNCTION_LIST: string;
49
+ /**
50
+ * The diagnostic for a function this parser does not document: the documented equivalent when the
51
+ * name is a known alias or differs only in case, then the documented list. @internal
52
+ */
53
+ export declare function unknownFunctionMessage(name: string): string;
54
+ /**
55
+ * Call a documented function by name, with this parser's arity checks. Supplies
56
+ * a function MathTS does not define (`ln`).
57
+ * @internal
58
+ */
59
+ export declare function callBuiltinFunction(name: string, args: number[]): number;
60
+ //# sourceMappingURL=formula-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formula-contract.d.ts","sourceRoot":"","sources":["../../src/numerical/formula-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,yEAAyE;AACzE,qBAAa,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,2EAA2E;AAC3E,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;CACjD;AAED,0DAA0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC;CACtC;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,yHACyF,CAAC;AAmCzH,uEAAuE;AACvE,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAA2B,CAAC;AAEhF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAY7G,CAAC;AAEF,2GAA2G;AAC3G,eAAO,MAAM,qBAAqB,EAAE,MAExB,CAAC;AAEb;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAW3D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAIxE"}