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
@@ -1,100 +1,37 @@
1
1
  /**
2
- * Formula-parser registry (Path A selector — mirrors `engine-registry.ts`).
2
+ * Formula-parser registry.
3
3
  *
4
- * `getFormulaParser()` returns the MathTS-backed parser when the optional
5
- * peer is installed AND actually assembles and evaluates (smoke-tested),
6
- * otherwise the self-contained Path B parser. The choice is detected once
7
- * and cached. A broken or absent MathTS never breaks the caller — it falls
8
- * back silently to Path B.
9
- *
10
- * The CLI and any inference code depend only on the {@link FormulaParser}
11
- * interface, so swapping Path B ↔ Path A is transparent.
4
+ * `getFormulaParser()` returns the MathTS-backed parser. The MathTS packages
5
+ * are required dependencies, so there is no absent-peer branch and no Path B
6
+ * parser.
12
7
  *
13
8
  * @module numerical/formula-registry
14
9
  */
15
- import { defaultFormulaParser } from './formula.js';
16
- import { loadMathtsFormulaParser } from './formula-mathts.js';
17
- import { loadFormulaDimensionChecker, builtinFormulaDimensionChecker } from './formula-dimension.js';
18
- let cached;
19
- /** A formula MathTS must reproduce to be accepted (the §1-gate smoke test). */
20
- const SMOKE_EXPR = 'a*b^2 + 1';
21
- const SMOKE_SCOPE = { a: 3, b: 4 };
22
- const SMOKE_EXPECTED = 49; // 3*16 + 1
23
- /** Run `fn` with MathTS's import-time WASM-fallback chatter suppressed. */
24
- async function quietly(fn) {
25
- const origWarn = console.warn;
26
- const origError = console.error;
27
- const origWrite = process.stderr.write.bind(process.stderr);
28
- console.warn = () => { };
29
- console.error = () => { };
30
- // mathts prints some notices via process.stderr.write directly.
31
- process.stderr.write = () => true;
32
- try {
33
- return await fn();
34
- }
35
- finally {
36
- console.warn = origWarn;
37
- console.error = origError;
38
- process.stderr.write = origWrite;
39
- }
40
- }
41
- async function detect() {
42
- try {
43
- const parser = await quietly(loadMathtsFormulaParser);
44
- // Smoke test: it must actually assemble AND evaluate correctly.
45
- const v = parser.parse(SMOKE_EXPR).evaluate(SMOKE_SCOPE);
46
- if (Math.abs(v - SMOKE_EXPECTED) < 1e-9) {
47
- return { parser, kind: 'mathts' };
48
- }
49
- }
50
- catch {
51
- /* peer absent or failed to assemble — fall through */
52
- }
53
- return { parser: defaultFormulaParser, kind: 'builtin' };
54
- }
55
- /** Resolve the active formula parser (cached). @internal */
10
+ import { mathtsFormulaParser } from './formula-mathts.js';
11
+ import { builtinFormulaDimensionChecker } from './formula-dimension.js';
12
+ /** Resolve the active formula parser. It is the MathTS parser. @internal */
56
13
  export async function getFormulaParser() {
57
- cached ??= detect();
58
- return (await cached).parser;
14
+ return mathtsFormulaParser;
59
15
  }
60
- /** Which parser is active — `mathts` (Path A) or `builtin` (Path B). @internal */
16
+ /** Which parser is active. Always `mathts`. @internal */
61
17
  export async function getFormulaParserKind() {
62
- cached ??= detect();
63
- return (await cached).kind;
18
+ return 'mathts';
64
19
  }
65
- let cachedChecker;
66
- const LENGTH_DIM = { L: 1, M: 0, T: 0, I: 0, Theta: 0, N: 0, J: 0 };
67
20
  /**
68
- * The dimensional checker for user formulas (MathTS Phase 2). Always
69
- * available: it uses the MathTS AST when the peer is installed and
70
- * smoke-tests clean, else the self-contained Path B AST — both transpile to
71
- * the same `ExprNode`, so the dimensional verdict is identical. @internal
21
+ * The dimensional checker for user formulas. It transpiles the MathTS AST.
22
+ * @internal
72
23
  */
73
24
  export async function getFormulaDimensionChecker() {
74
- cachedChecker ??= (async () => {
75
- try {
76
- const checker = await quietly(loadFormulaDimensionChecker);
77
- // smoke test: a dimensionless ratio is homogeneous and dimensionless.
78
- if (checker.check('a/a', { a: LENGTH_DIM }).ok)
79
- return checker;
80
- }
81
- catch {
82
- /* peer absent or failed — fall back to the built-in checker */
83
- }
84
- return builtinFormulaDimensionChecker();
85
- })();
86
- return cachedChecker;
25
+ return builtinFormulaDimensionChecker();
87
26
  }
88
27
  /**
89
- * Parse physics text to a dimensional `ExprNode` + its inferred dimension, using
90
- * the active front-end (MathTS when the optional peer is installed, else the
91
- * built-in parser). The single public string→`ExprNode` entry point.
28
+ * Parse physics text to a dimensional `ExprNode` + its inferred dimension.
29
+ * The single public string→`ExprNode` entry point.
92
30
  *
93
31
  * @throws {FormulaDimensionError} on a parse error or non-homogeneity.
94
32
  * @public
95
33
  */
96
34
  export async function parsePhysics(text, dims) {
97
- const checker = await getFormulaDimensionChecker();
98
- return checker.parse(text, dims);
35
+ return builtinFormulaDimensionChecker().parse(text, dims);
99
36
  }
100
37
  //# sourceMappingURL=formula-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formula-registry.js","sourceRoot":"","sources":["../../src/numerical/formula-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formula-registry.js","sourceRoot":"","sources":["../../src/numerical/formula-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAIxE,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,yDAAyD;AACzD,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B;IAC9C,OAAO,8BAA8B,EAAE,CAAC;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAY,EACZ,IAAyC;IAEzC,OAAO,8BAA8B,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC5D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"geodesic-integrator.d.ts","sourceRoot":"","sources":["../../src/numerical/geodesic-integrator.ts"],"names":[],"mappings":"AAwBA;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;;;;;OAYG;IACH,aAAa,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,YAAY,KAAK,YAAY,CAAC;IAE9E,iDAAiD;IACjD,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9C;;;;;;;;OAQG;IACH,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9C,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IAEjB,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IAEf,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,kCAAkC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAE3D,kCAAkC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAE3D;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC/E;AAwGD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,wBAAwB,GAC/B,wBAAwB,CA4D1B"}
1
+ {"version":3,"file":"geodesic-integrator.d.ts","sourceRoot":"","sources":["../../src/numerical/geodesic-integrator.ts"],"names":[],"mappings":"AA2BA;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;;;;;OAYG;IACH,aAAa,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,YAAY,KAAK,YAAY,CAAC;IAE9E,iDAAiD;IACjD,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9C;;;;;;;;OAQG;IACH,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9C,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IAEjB,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IAEf,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,kCAAkC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAE3D,kCAAkC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAE3D;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC/E;AAuFD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,wBAAwB,GAC/B,wBAAwB,CAuD1B"}
@@ -13,25 +13,17 @@
13
13
  *
14
14
  * The Christoffel symbol Γ^μ_{νρ} is supplied as a plain-JS closure that
15
15
  * maps a 4-coordinate array to a [4][4][4] tensor. No TensorEngine
16
- * dependency — the integrator is self-contained.
16
+ * dependency — the integrator is self-contained. The fixed steps are
17
+ * MathTS `solveODESystem` with `dt` set, which is that library's classical
18
+ * RK4. Adaptive `solveODE` is not this step.
17
19
  *
18
20
  * Validated against the cycloid parametric form for radial Schwarzschild
19
21
  * infall to ±1e-6 (Task 14 test, η = 0.5).
20
22
  *
21
23
  * @module numerical/geodesic-integrator
22
24
  */
25
+ import { solveODESystem } from '@danielsimonjr/mathts-functions';
23
26
  import { NumericalBackendError } from './errors.js';
24
- function addScaled4(a, b, k) {
25
- return [a[0] + k * b[0], a[1] + k * b[1], a[2] + k * b[2], a[3] + k * b[3]];
26
- }
27
- function combineRK4(y, k1, k2, k3, k4, h) {
28
- return [
29
- y[0] + (h / 6) * (k1[0] + 2 * k2[0] + 2 * k3[0] + k4[0]),
30
- y[1] + (h / 6) * (k1[1] + 2 * k2[1] + 2 * k3[1] + k4[1]),
31
- y[2] + (h / 6) * (k1[2] + 2 * k2[2] + 2 * k3[2] + k4[2]),
32
- y[3] + (h / 6) * (k1[3] + 2 * k2[3] + 2 * k3[3] + k4[3]),
33
- ];
34
- }
35
27
  /**
36
28
  * Evaluate the Christoffel acceleration −Γ^μ_{νρ} v^ν v^ρ at position x
37
29
  * with 4-velocity v. Returns (dx/dτ, dv/dτ) = (v, accel).
@@ -158,34 +150,30 @@ export function integrateGeodesic(inputs) {
158
150
  throw new NumericalBackendError(`integrateGeodesic: steps must be a positive integer, got ${steps}`);
159
151
  }
160
152
  const h = (tauEnd - tauStart) / steps;
161
- let x = [x0[0], x0[1], x0[2], x0[3]];
162
- let v = [v0[0], v0[1], v0[2], v0[3]];
163
- const sampleEvery = Math.max(1, Math.floor(steps / 100));
164
- const trajectory = [[...x]];
153
+ const y0 = [x0[0], x0[1], x0[2], x0[3], v0[0], v0[1], v0[2], v0[3]];
165
154
  // One scratch buffer reused across all Christoffel evaluations (4 per step).
166
155
  // Each geodesicRHS consumes its Γ before the next call, so reuse is safe and
167
156
  // avoids ~4·steps Float64Array(64) allocations per integration.
168
157
  const scratch = new Float64Array(64);
158
+ const sol = solveODESystem((_tau, y) => {
159
+ const x = [y[0], y[1], y[2], y[3]];
160
+ const v = [y[4], y[5], y[6], y[7]];
161
+ const s = geodesicRHS(christoffelFn, x, v, scratch);
162
+ return [s.dx[0], s.dx[1], s.dx[2], s.dx[3], s.dv[0], s.dv[1], s.dv[2], s.dv[3]];
163
+ }, y0, [tauStart, tauEnd], { dt: h });
164
+ const asVec4 = (row) => [row[0], row[1], row[2], row[3]];
165
+ const sampleEvery = Math.max(1, Math.floor(steps / 100));
166
+ const trajectory = [asVec4(sol.y[0] ?? y0)];
169
167
  for (let i = 0; i < steps; i++) {
170
- const s1 = geodesicRHS(christoffelFn, x, v, scratch);
171
- const x2 = addScaled4(x, s1.dx, h / 2);
172
- const v2 = addScaled4(v, s1.dv, h / 2);
173
- const s2 = geodesicRHS(christoffelFn, x2, v2, scratch);
174
- const x3 = addScaled4(x, s2.dx, h / 2);
175
- const v3 = addScaled4(v, s2.dv, h / 2);
176
- const s3 = geodesicRHS(christoffelFn, x3, v3, scratch);
177
- const x4 = addScaled4(x, s3.dx, h);
178
- const v4 = addScaled4(v, s3.dv, h);
179
- const s4 = geodesicRHS(christoffelFn, x4, v4, scratch);
180
- x = combineRK4(x, s1.dx, s2.dx, s3.dx, s4.dx, h);
181
- v = combineRK4(v, s1.dv, s2.dv, s3.dv, s4.dv, h);
182
168
  if ((i + 1) % sampleEvery === 0) {
183
- trajectory.push([...x]);
169
+ const row = sol.y[i + 1] ?? sol.y[sol.y.length - 1] ?? y0;
170
+ trajectory.push(asVec4(row));
184
171
  }
185
172
  }
173
+ const last = sol.y[sol.y.length - 1] ?? y0;
186
174
  return {
187
- xFinal: x,
188
- vFinal: v,
175
+ xFinal: asVec4(last),
176
+ vFinal: [last[4], last[5], last[6], last[7]],
189
177
  trajectory,
190
178
  };
191
179
  }
@@ -1 +1 @@
1
- {"version":3,"file":"geodesic-integrator.js","sourceRoot":"","sources":["../../src/numerical/geodesic-integrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geodesic-integrator.js","sourceRoot":"","sources":["../../src/numerical/geodesic-integrator.ts"],"names":[],"mappings":"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"}
@@ -1,34 +1,11 @@
1
1
  /**
2
- * Gauss-Legendre 4th-order quadrature nodes c₁, c₂ — the two roots of the
3
- * shifted Legendre polynomial P₂(x) on [0,1].
2
+ * Gauss–Legendre order-4 Butcher tableau from MathTS. `GL4_A` is the 2×2
3
+ * stage matrix, `GL4_B` the weights (both ½), and `GL4_C` the two nodes.
4
+ * `integrateGeodesicGL4` does not read these names; the tableau tests do.
4
5
  *
5
- * c₁ = ½ − √3/6, c₂ = ½ + √3/6.
6
- *
7
- * @internal — exported for unit tests pinning the Butcher tableau invariants.
8
- * Public callers should use {@link integrateGeodesicGL4}, not the raw constants.
9
- */
10
- export declare const GL4_C: readonly [number, number];
11
- /**
12
- * GL4 Butcher matrix a_{ij} — the 2×2 collocation table for the implicit
13
- * stages:
14
- *
15
- * [ 1/4 1/4 − √3/6 ]
16
- * [ 1/4 + √3/6 1/4 ]
17
- *
18
- * (Hairer/Lubich/Wanner §II.1, Table 1.1.)
19
- *
20
- * @internal — exported for unit tests pinning the Butcher tableau invariants.
21
- * Public callers should use {@link integrateGeodesicGL4}, not the raw constants.
22
- */
23
- export declare const GL4_A: readonly [readonly [number, number], readonly [number, number]];
24
- /**
25
- * GL4 stage weights — the 2-point Gauss-Legendre quadrature weights on
26
- * [0,1]: b₁ = b₂ = ½.
27
- *
28
- * @internal — exported for unit tests pinning the Butcher tableau invariants.
29
- * Public callers should use {@link integrateGeodesicGL4}, not the raw constants.
6
+ * @internal
30
7
  */
31
- export declare const GL4_B: readonly [number, number];
8
+ export { GL4_A, GL4_B, GL4_C } from '@danielsimonjr/mathts-functions';
32
9
  /**
33
10
  * Canonical (x, p) phase-space state for the geodesic flow on T*M.
34
11
  *
@@ -128,28 +105,12 @@ interface StageSolveResult {
128
105
  readonly iterations: number;
129
106
  }
130
107
  /**
131
- * Picard fixed-point solver for the GL4 implicit stage system.
132
- *
133
- * Per Design §3 Task 1a, the implicit system is:
134
- * X_i = x_n + h · Σ_j a_{ij} · g^{·ν}(X_j) P_{j,ν}
135
- * P_{i,μ} = p_n − h · Σ_j a_{ij} · ½ (∂_μ g^νρ)(X_j) P_{j,ν} P_{j,ρ}
136
- *
137
- * Data flow (F15 / M1): stage values (X_j, P_j) at iterate k feed forward
138
- * to update (X_i, P_i) at iterate k+1. This is Picard iteration (NOT
139
- * Newton) — no Jacobian assembly or LU decomposition. Convergence is
140
- * linear with contraction rate ≈ h·|∂f/∂x|. For Mercury (h ≈ 150 s),
141
- * expect 30–40 iterations at tol=1e-12. GL4's symplecticity is guaranteed
142
- * by the Butcher tableau, not by the inner solver's convergence speed
143
- * (Sanz-Serna 1988; Hairer/Lubich/Wanner §II.1).
144
- *
145
- * The `dgInverseFn` index order is `dg[λ][μ][ν] = ∂_λ g^{μν}` (Task 0 I2
146
- * pin, also recorded on `GL4Options.dgInverseFn`). When we evaluate
147
- * `dp_μ = −½ (∂_μ g^{νρ}) P_ν P_ρ` we therefore read
148
- * `dgInvAtXj[mu*dim²+nu*dim+rho]` — `mu` is the differentiation axis (λ in the
149
- * pinned order) and `(nu, rho)` are the upper metric indices.
108
+ * One GL4 step, reported in the stage-result shape the stage tests read.
150
109
  *
151
- * Throws `GL4ConvergenceError` with message matching
152
- * `/Picard iteration did not converge/` if `picardMaxIter` is exhausted.
110
+ * The step itself is MathTS `gaussLegendre4`. In flat space `p` is constant,
111
+ * so both stage momenta equal that advanced `p`. Throws `GL4ConvergenceError`
112
+ * with a message matching `/Picard iteration did not converge/` when the
113
+ * Picard cap is exhausted.
153
114
  *
154
115
  * @internal
155
116
  */
@@ -162,7 +123,8 @@ export declare function solveGL4Stage(state: GL4State, h: number, gInverseFn: (x
162
123
  *
163
124
  * H(x, p) = ½ g^{μν}(x) p_μ p_ν
164
125
  *
165
- * Drives the implicit Picard stage solver (`solveGL4Stage`) for each step,
126
+ * Each accepted step is MathTS `gaussLegendre4` on the geodesic Hamiltonian.
127
+ * Adaptive step-halving stays here. `onStep` reads that step's `iterations`.
166
128
  * with **adaptive step-halving on Picard non-convergence** (Adam+Eve I4,
167
129
  * replaces the single-retry R8): if Picard fails at step size h, retry at
168
130
  * h/2, h/4, … down to `hMin` (default `h · 1e-9`); throw
@@ -215,5 +177,4 @@ export declare function solveGL4Stage(state: GL4State, h: number, gInverseFn: (x
215
177
  * @public
216
178
  */
217
179
  export declare function integrateGeodesicGL4(initialState: GL4State, options: GL4Options): readonly GL4Snapshot[];
218
- export {};
219
180
  //# sourceMappingURL=gl4-integrator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gl4-integrator.d.ts","sourceRoot":"","sources":["../../src/numerical/gl4-integrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gl4-integrator.d.ts","sourceRoot":"","sources":["../../src/numerical/gl4-integrator.ts"],"names":[],"mappings":"AA4BA;;;;;;GAMG;AACH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAEtE;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,QAAQ;IACvB,+BAA+B;IAC/B,QAAQ,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,yCAAyC;IACzC,QAAQ,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,QAAQ,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB;qCACiC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;gFAC4E;IAC5E,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,KAAK,YAAY,CAAC;IAC5D;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,KAAK,YAAY,CAAC;IAC7D,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,mEAAmE;IACnE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,+FAA+F;IAC/F,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;qCAEiC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC3F;AAED;;;;;;;GAOG;AACH,UAAU,gBAAgB;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACjE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACjE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAClE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAClE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AA4FD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EACf,CAAC,EAAE,MAAM,EACT,UAAU,EAAE,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,KAAK,YAAY,EAClD,WAAW,EAAE,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,KAAK,YAAY,EACnD,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GACjD,gBAAgB,CAYlB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,QAAQ,EACtB,OAAO,EAAE,UAAU,GAClB,SAAS,WAAW,EAAE,CAmGxB"}