@essrt/physics 20.0.1 → 22.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 (63) hide show
  1. package/README.md +4 -4
  2. package/package.json +4 -8
  3. package/src/cardinal/one-source-structure.cjs +3 -2
  4. package/src/chain-cycles/index.cjs +12 -30
  5. package/src/climate/l1-orbital.cjs +3 -1
  6. package/src/constants/coefficients.d.ts +17 -93
  7. package/src/constants/coefficients.js +7 -22
  8. package/src/constants/generated.d.ts +18 -156
  9. package/src/constants/generated.js +33 -168
  10. package/src/deltat/deep-time.cjs +36 -92
  11. package/src/deltat/recession-history.cjs +2 -1
  12. package/src/earth/deep-orbital-history.cjs +4 -4
  13. package/src/earth/frame-of-date.cjs +25 -1
  14. package/src/earth/precession-composed.cjs +3 -3
  15. package/src/earth/year-lengths.cjs +16 -1
  16. package/src/eclipse/sun-planetary-completion.cjs +11 -12
  17. package/src/index.js +28 -48
  18. package/src/layer0/derive-params.js +10 -5
  19. package/src/layer0/index.js +27 -73
  20. package/src/layer1/index.js +6 -37
  21. package/src/model.js +200 -225
  22. package/src/moon/arguments.cjs +57 -83
  23. package/src/moon/deep-modes-artifact.cjs +2 -2
  24. package/src/moon/month-chain.cjs +25 -59
  25. package/src/moon/series.cjs +14 -10
  26. package/src/phase/deep-calendar.cjs +35 -80
  27. package/src/planets/chain-artifact.js +2 -2
  28. package/src/planets/display-names.cjs +30 -0
  29. package/src/planets/geometry.cjs +79 -29
  30. package/src/planets/model.cjs +12 -11
  31. package/src/planets/spin-channel.cjs +46 -2
  32. package/types/chain-cycles/index.d.cts +9 -4
  33. package/types/climate/l1-orbital.d.cts +3 -1
  34. package/types/constants/coefficients.d.ts +17 -93
  35. package/types/constants/generated.d.ts +18 -156
  36. package/types/deltat/deep-time.d.cts +3 -16
  37. package/types/earth/frame-of-date.d.cts +9 -0
  38. package/types/earth/year-lengths.d.cts +12 -0
  39. package/types/eclipse/sun-planetary-completion.d.cts +0 -9
  40. package/types/index.d.ts +4 -13
  41. package/types/layer0/derive-params.d.ts +7 -4
  42. package/types/layer0/index.d.ts +6 -13
  43. package/types/layer1/index.d.ts +0 -2
  44. package/types/model.d.ts +8 -6
  45. package/types/moon/arguments.d.cts +23 -22
  46. package/types/moon/deep-modes-artifact.d.cts +3 -3
  47. package/types/moon/month-chain.d.cts +7 -16
  48. package/types/moon/series.d.cts +2 -4
  49. package/types/phase/deep-calendar.d.cts +14 -50
  50. package/types/planets/display-names.d.cts +2 -0
  51. package/types/planets/geometry.d.cts +36 -13
  52. package/types/planets/model.d.cts +7 -6
  53. package/types/planets/spin-channel.d.cts +4 -0
  54. package/src/cardinal/index.cjs +0 -324
  55. package/src/moon/ecc-channel.cjs +0 -141
  56. package/src/phase/index.cjs +0 -186
  57. package/src/planets/ecc-channel.cjs +0 -59
  58. package/src/sun/longitude-correction.cjs +0 -68
  59. package/types/cardinal/index.d.cts +0 -80
  60. package/types/moon/ecc-channel.d.cts +0 -30
  61. package/types/phase/index.d.cts +0 -38
  62. package/types/planets/ecc-channel.d.cts +0 -20
  63. package/types/sun/longitude-correction.d.cts +0 -41
@@ -3,21 +3,25 @@
3
3
  * (Phase 8.2-5). The measured argument-decomposition recipe of doc 66 §1:
4
4
  * {Lp, D, M, Mp, F} in degrees, of-date, Meeus Ch. 47 convention.
5
5
  *
6
- * Extracted VERBATIM from src/script.js (_FW_MOON, _FW_SUN_SEC,
7
- * _fwSunSecularDeviations, the two bounded Lp carriers, _fwMoonArgsDeep,
8
- * _fwMoonArgs, and the pure-Meeus reference polynomials), which
9
- * tools/lib/scene-graph.js mirrored. Mirror gaps closed here:
6
+ * Extracted VERBATIM from src/script.js (_FW_MOON, the two bounded Lp
7
+ * carriers, _fwMoonArgsDeep, _fwMoonArgs, and the pure-Meeus reference
8
+ * polynomials), which tools/lib/scene-graph.js mirrored. Plan 09: the Sun's
9
+ * mean longitude and perihelion of date are INJECTED from the ONE certified
10
+ * Sun (sunMeanLonDegAtJdTT / sunPerihelionLonDegAtJdTT); the former
11
+ * _FW_SUN_SEC / _fwSunSecularDeviations (the retired year combs' Sun
12
+ * integrals, −695″ against the IAU mean Sun at −2000) are deleted. Mirror
13
+ * gaps closed at extraction:
10
14
  *
11
- * - S3: the Sun secular deviations' year coordinate. The browser used the
12
- * full Julian/Gregorian calendar conversion; the tools mirror used a
15
+ * - S3: the (then) Sun secular deviations' year coordinate. The browser used
16
+ * the full Julian/Gregorian calendar conversion; the tools mirror used a
13
17
  * linear approximation. The calendar conversion is EMBEDDED here as a
14
- * private helper, so both engines now evaluate the same coordinate.
18
+ * private helper, so both engines evaluate the same coordinate.
15
19
  * - S9: ϖ/Ω composition order in the deep branch (wrapper-composed vs
16
20
  * use-site subtraction) — one form now, the browser's.
17
- * - S10: P_DEGCY was derived from the browser's MUTABLE holisticyearLength
18
- * global (a latent epoch dependency in a J2000-frozen bundle) — it is
19
- * built from the injected holisticYearJ2000 and has no consumers; kept
20
- * as documentation of the frame decomposition.
21
+ * - S10: P_DEGCY (the counter's 13/H general precession, no consumers) was
22
+ * kept as documentation of the frame decomposition; it left with the
23
+ * unit at plan 09 step 5c (the frame decomposition is WDOT = ϖ̇_ICRF + p,
24
+ * NDOT = Ω̇_ICRF + p with p the IAU general precession).
21
25
  *
22
26
  * Construction (docs/66 §1, abridged): linear rates are observational J2000
23
27
  * anchors; perigee/node ride the PHASE-AWARE e_E channel integral (s_ϖ
@@ -70,17 +74,19 @@ function jdToDecimalYear(jd) {
70
74
  * @typedef {{Lp: number, D: number, M: number, Mp: number, F: number}} MoonArgsDeg
71
75
  */
72
76
 
77
+ /** The secular-completion taper half-width, Julian years: the cos² envelope
78
+ * inside which the chain's Meeus-measured rate anchors and the Lp secular
79
+ * completion act (full at the anchor, zero beyond). A recorded window of the
80
+ * completion, not a law — the anchors were measured with it (plan 09 step
81
+ * 5c: it was written as the era unit's twelfth, H/12, "lattice-derived";
82
+ * the value is kept bit-identical and named for what it is). */
83
+ const SECULAR_COMPLETION_TAPER_YEARS = 27943.083333333332;
84
+
73
85
  /**
74
86
  * @param {{
75
87
  * constants: {
76
88
  * j2000JD: number,
77
89
  * julianCenturyDays: number,
78
- * holisticYearJ2000: number,
79
- * balancedYearJ2000: number,
80
- * meanSolarYearDays: number,
81
- * meanAnomalisticYearDays: number,
82
- * tropicalYearHarmonics: Array<[number, number, number]>,
83
- * anomalisticYearHarmonics: Array<[number, number, number]>,
84
90
  * eccentricityJ2000: number,
85
91
  * eccentricityDotJ2000: number,
86
92
  * eccentricityDotDotJ2000: number,
@@ -92,11 +98,12 @@ function jdToDecimalYear(jd) {
92
98
  * eccAt: (tYr: number) => number,
93
99
  * channelIntegral: (T: number, s: number) => number,
94
100
  * computeObliquityEarth: (year: number) => number,
101
+ * sunMeanLonDegAtJdTT: (jdTT: number) => number,
102
+ * sunPerihelionLonDegAtJdTT: (jdTT: number) => number,
95
103
  * jdToSIyear: (jd: number) => number,
96
104
  * tropicalOrbitsBetween: (yearA: number, yearB: number) => (number | null),
97
105
  * apsidalOfDateCyclesBetween: (yearA: number, yearB: number) => (number | null),
98
106
  * nodalOfDateCyclesBetween: (yearA: number, yearB: number) => (number | null),
99
- * cyclesBetween: (yearA: number, yearB: number, divisorN: number) => (number | null),
100
107
  * isDeepTime: () => boolean,
101
108
  * isFrameworkNative: () => boolean,
102
109
  * pDynDegPerYearAt?: (year: number) => number,
@@ -110,20 +117,28 @@ function jdToDecimalYear(jd) {
110
117
  * evaluators — the tweakpane identity, real at J2000, epoch-valid);
111
118
  * pKin = the KINEMATIC pair's beat (the H/13-family mean the chains
112
119
  * embed). Absent ⇒ the completion is disabled (pre-(d′) behaviour).
120
+ * Plan 09: the Sun of the arguments is the engine's ONE certified Sun —
121
+ * sunMeanLonDegAtJdTT (the mean longitude that integrates the one-family
122
+ * tropical year, unwrapped) and sunPerihelionLonDegAtJdTT (the mean
123
+ * perihelion of date, wrapped — the arguments wrap M, and the rate anchors
124
+ * difference it over ±25 days wrapped to ±180°). The former "model timeline" Sun — 360° per mean solar
125
+ * year plus the closed-form integrals of the retired year-length combs,
126
+ * the perihelion on the H/16 chain count — sat 0.2° behind the IAU mean
127
+ * Sun at −2000 (the combs could not carry the tropical year's secular
128
+ * drift); measured against Meeus L0 before the move.
113
129
  */
114
130
  function createMoonArguments({ constants, fns }) {
115
131
  const {
116
- j2000JD, julianCenturyDays, holisticYearJ2000, balancedYearJ2000,
117
- meanSolarYearDays, meanAnomalisticYearDays,
118
- tropicalYearHarmonics, anomalisticYearHarmonics,
132
+ j2000JD, julianCenturyDays,
119
133
  eccentricityJ2000, eccentricityDotJ2000, eccentricityDotDotJ2000,
120
134
  elpEarthFigureJ2ArcsecPerCy2, elpGeneralPrecessionPA_T2ArcsecPerCy2,
121
135
  eccE0,
122
136
  } = constants;
123
137
  const {
124
138
  eccAt, channelIntegral, computeObliquityEarth, jdToSIyear,
139
+ sunMeanLonDegAtJdTT, sunPerihelionLonDegAtJdTT,
125
140
  tropicalOrbitsBetween, apsidalOfDateCyclesBetween, nodalOfDateCyclesBetween,
126
- cyclesBetween, isDeepTime, isFrameworkNative,
141
+ isDeepTime, isFrameworkNative,
127
142
  pDynDegPerYearAt, pKinDegPerYearAt,
128
143
  } = fns;
129
144
 
@@ -133,7 +148,6 @@ function createMoonArguments({ constants, fns }) {
133
148
  MP0 = 134.9633964, F0 = 93.2720950;
134
149
  const LPR = 481267.88123421, DR = 445267.1114034, MR = 35999.0502909,
135
150
  MPR = 477198.8675055, FR = 483202.0175233;
136
- const P_DEGCY = 360 * 13 / holisticYearJ2000 * 100; // framework general precession, deg/Julian cy (S10: J2000-frozen by injection; no consumers — documentation of the frame decomposition)
137
151
  const WDOT = LPR - MPR; // perigee ϖ̇ of-date (+4069.0137) = ϖ̇_ICRF + p
138
152
  const NDOT = LPR - FR; // node Ω̇ of-date (−1934.1363) = Ω̇_ICRF + p
139
153
  // e_E channel Taylor CHECKS (documented J2000 reference values — the live
@@ -154,52 +168,12 @@ function createMoonArguments({ constants, fns }) {
154
168
  const T2_LP_TIDAL = (-25.86 / 3600) / 2;
155
169
  const T2_LP_PLANETARY = -0.0015786 - T2_LP_TIDAL; // +7.247″/cy²
156
170
  const T2_LP = T2_LP_TIDAL + T2_LP_PLANETARY;
157
- return { LP0, D0, M0, MP0, F0, LPR, DR, MR, P_DEGCY, WDOT, NDOT, T2_W, T2_N, T3_W, T3_N, T2_LP, T2_LP_TIDAL, S_W, S_N };
158
- })();
159
-
160
- // ── Sun secular deviations: closed-form year-length-harmonic integrals ───
161
- // Normalized to value 0 AND slope 0 at J2000. KL/KA/KS capture the J2000
162
- // mean-year values at construction by design; phases use the fixed J2000
163
- // lattice (the documented snapshot approximation).
164
- const sunSec = (() => {
165
- const trop = tropicalYearHarmonics, anom = anomalisticYearHarmonics;
166
- const PBAR = meanSolarYearDays, ABAR = meanAnomalisticYearDays, DBAR = ABAR - PBAR;
167
- const KL = -(360 / PBAR);
168
- const wbar = 360 * DBAR / ABAR;
169
- const KA = wbar * PBAR / (ABAR * DBAR);
170
- const KS = -wbar / DBAR;
171
- /** @param {number} y @param {Array<[number, number, number]>} set */
172
- const dP = (y, set) => {
173
- const t = y - balancedYearJ2000; let s = 0;
174
- for (const [d, sc, cc] of set) {
175
- const w = 2 * Math.PI / (holisticYearJ2000 / d);
176
- s += sc * Math.sin(w * t) + cc * Math.cos(w * t);
177
- } return s;
178
- };
179
- /** @param {number} y @param {Array<[number, number, number]>} set */
180
- const intdP = (y, set) => {
181
- const t = y - balancedYearJ2000; let s = 0;
182
- for (const [d, sc, cc] of set) {
183
- const w = 2 * Math.PI / (holisticYearJ2000 / d);
184
- s += (-sc * Math.cos(w * t) + cc * Math.sin(w * t)) / w;
185
- } return s;
186
- };
187
- return { int0T: intdP(2000, trop), int0A: intdP(2000, anom),
188
- slope0L: KL * dP(2000, trop),
189
- slope0P: KA * dP(2000, anom) + KS * dP(2000, trop),
190
- KL, KA, KS, intdP, trop, anom };
171
+ return { LP0, D0, M0, MP0, F0, LPR, DR, MR, WDOT, NDOT, T2_W, T2_N, T3_W, T3_N, T2_LP, T2_LP_TIDAL, S_W, S_N };
191
172
  })();
192
173
 
193
- /** @param {number} jdTT @returns {{dLs: number, dPeri: number}} */
194
- function sunSecularDeviations(jdTT) {
195
- const y = jdToDecimalYear(jdTT); // S3: the calendar coordinate, both engines
196
- const S = sunSec;
197
- const iT = S.intdP(y, S.trop) - S.int0T, iA = S.intdP(y, S.anom) - S.int0A;
198
- return {
199
- dLs: S.KL * iT - S.slope0L * (y - 2000),
200
- dPeri: S.KA * iA + S.KS * iT - S.slope0P * (y - 2000),
201
- };
202
- }
174
+ // (Plan 09: the "Sun secular deviations" — closed-form integrals of the
175
+ // retired year-length combs on the calendar coordinate — are gone; the
176
+ // Sun is injected, see the header.)
203
177
 
204
178
  // ── Bounded Lp carriers (K_PL / C_OBL derived lazily — zero new constants)
205
179
  /** @type {number | null} */
@@ -272,9 +246,9 @@ function createMoonArguments({ constants, fns }) {
272
246
  // channel) through the same K_PL conversion: zero through T² by
273
247
  // construction (the certified T² normalization is untouched), < 0.001″
274
248
  // in the modern era, the derived tail across the eclipse corpus. The
275
- // envelope is the H/3 quarter-period cos² taper (H/12 yr — lattice-
276
- // derived, no new constant): the completion saturates there, so deep
277
- // time keeps the pure H-lattice claim (no open polynomial). The
249
+ // envelope is the cos² taper of half-width SECULAR_COMPLETION_TAPER_YEARS
250
+ // (~27.9 kyr): the completion saturates there, so deep time carries no
251
+ // open polynomial. The
278
252
  // channel's own third-order content is not subtracted (ω³-suppressed,
279
253
  // negligible); the T⁴ secular remainder beyond the channel term stays a
280
254
  // documented deviation (D3: 40.8% derived; ≈ −7″ at −135).
@@ -292,7 +266,7 @@ function createMoonArguments({ constants, fns }) {
292
266
  /** @param {number} tCy */
293
267
  const e2 = (tCy) => { const e = eccAt(tCy * 100); return e * e; };
294
268
  const d2Ch = (e2(10) - 2 * e2(0) + e2(-10)) / 100;
295
- secComp = { dd2: d2Sec - d2Ch, d3Sec, Tq: holisticYearJ2000 / 12 / 100 };
269
+ secComp = { dd2: d2Sec - d2Ch, d3Sec, Tq: SECULAR_COMPLETION_TAPER_YEARS / 100 };
296
270
  }
297
271
  const S = secComp;
298
272
  /** @param {number} t */
@@ -403,6 +377,8 @@ function createMoonArguments({ constants, fns }) {
403
377
  return dy / 2 + (Tq / (2 * Math.PI)) * Math.sin(Math.PI * dy / Tq);
404
378
  }
405
379
 
380
+ /** Wrap a degree difference to (−180, 180]. @param {number} d */
381
+ const w180 = (d) => ((d + 540) % 360 + 360) % 360 - 180;
406
382
  /** @type {{ok: boolean, Lp: number, w: number, om: number, Lsun: number, ws: number, Tq: number} | null} */
407
383
  let rcAnchors = null;
408
384
  function anchorsInit() {
@@ -430,8 +406,8 @@ function createMoonArguments({ constants, fns }) {
430
406
  w: B.WDOT * k - (b.w - a.w) / span,
431
407
  om: B.NDOT * k - (b.om - a.om) / span,
432
408
  Lsun: (B.LPR - B.DR) * k - (b.Lsun - a.Lsun) / span,
433
- ws: (B.LPR - B.DR - B.MR) * k - (b.ws - a.ws) / span,
434
- Tq: holisticYearJ2000 / 12,
409
+ ws: (B.LPR - B.DR - B.MR) * k - w180(b.ws - a.ws) / span, // ws is wrapped; ±25 days of perihelion motion is far inside ±180°
410
+ Tq: SECULAR_COMPLETION_TAPER_YEARS,
435
411
  };
436
412
  return rcAnchors;
437
413
  }
@@ -447,9 +423,7 @@ function createMoonArguments({ constants, fns }) {
447
423
  const Ntrop = tropicalOrbitsBetween(argsY0, y);
448
424
  const Naps = apsidalOfDateCyclesBetween(argsY0, y);
449
425
  const Nnod = nodalOfDateCyclesBetween(argsY0, y);
450
- const Nperi = cyclesBetween(argsY0, y, 16);
451
- if (Ntrop === null || Naps === null || Nnod === null || Nperi === null) return null; // tidal-lock guard
452
- const dev = sunSecularDeviations(jd);
426
+ if (Ntrop === null || Naps === null || Nnod === null) return null; // tidal-lock guard
453
427
  const Tj = (jd - j2000JD) / julianCenturyDays;
454
428
  const dy = y - argsY0;
455
429
  // pFix rides Lp ONLY: the obliquity carrier's PA reduction compensates
@@ -464,8 +438,9 @@ function createMoonArguments({ constants, fns }) {
464
438
  + lpSecularCompletion(Tj) + pF;
465
439
  const w = (A.LP0 - A.MP0) + 360 * Naps; // perigee ϖ (of-date, advance)
466
440
  const om = (A.LP0 - A.F0) - 360 * Nnod; // node Ω (of-date, regression)
467
- const Lsun = (A.LP0 - A.D0) + 360 * dy + dev.dLs; // mean Sun (model timeline)
468
- const ws = (A.LP0 - A.D0 - A.M0) + 360 * Nperi + dev.dPeri; // Sun perihelion (H/16 chain)
441
+ const Lsun = sunMeanLonDegAtJdTT(jd); // the certified Sun's mean longitude (unwrapped)
442
+ const ws = sunPerihelionLonDegAtJdTT(jd) + 180; // the Sun's perihelion = Earth's mean ϖ of date + 180° (wrapped; M wraps)
443
+ void A;
469
444
  return { Lp, w, om, Lsun, ws, dy };
470
445
  }
471
446
 
@@ -510,9 +485,8 @@ function createMoonArguments({ constants, fns }) {
510
485
  const Lp = A.LP0 + A.LPR * T + A.T2_LP * Tc2 + Tc3 / 538841 - Tc4 / 65194000;
511
486
  const w = (A.LP0 - A.MP0) + A.WDOT * (T + channelIntegral(T, A.S_W)); // perigee ϖ (of-date)
512
487
  const om = (A.LP0 - A.F0) + A.NDOT * (T + channelIntegral(T, A.S_N)); // node Ω (of-date)
513
- const dev = sunSecularDeviations(jdTT);
514
- const Lsun = (A.LP0 - A.D0) + (A.LPR - A.DR) * T + dev.dLs; // of-date mean Sun
515
- const ws = (A.LP0 - A.D0 - A.M0) + (A.LPR - A.DR - A.MR) * T + dev.dPeri; // of-date Sun perihelion
488
+ const Lsun = sunMeanLonDegAtJdTT(jdTT); // the certified Sun's mean longitude of date
489
+ const ws = sunPerihelionLonDegAtJdTT(jdTT) + 180; // the Sun's perihelion of date
516
490
  return {
517
491
  Lp: wrap(Lp), D: wrap(Lp - Lsun), M: wrap(Lsun - ws),
518
492
  Mp: wrap(Lp - w), F: wrap(Lp - om),
@@ -543,8 +517,8 @@ function createMoonArguments({ constants, fns }) {
543
517
 
544
518
  // _rateCompletion: probe hook (instruments/verification) — the (d′) state:
545
519
  // whether the completion is live, its measured ṗΔ, and the five anchors.
546
- return { argsAt, fwArgs, fwArgsDeep, pureMeeusArgs, sunSecularDeviations, planetaryCarrier, obliquityCarrier, lpSecularCompletion, bundle,
520
+ return { argsAt, fwArgs, fwArgsDeep, pureMeeusArgs, planetaryCarrier, obliquityCarrier, lpSecularCompletion, bundle,
547
521
  _rateCompletion: () => ({ rc: rateCompInit(), anchors: anchorsInit() }) };
548
522
  }
549
523
 
550
- module.exports = { createMoonArguments, jdToDecimalYear };
524
+ module.exports = { createMoonArguments, jdToDecimalYear, SECULAR_COMPLETION_TAPER_YEARS };
@@ -16,8 +16,8 @@
16
16
  */
17
17
  'use strict';
18
18
 
19
- const DEEP_MODES_ARTIFACT_HASH = "7633dd8f434fd6fc";
19
+ const DEEP_MODES_ARTIFACT_HASH = "87c325fac77d94a4";
20
20
 
21
- const DEEP_MODES_ARTIFACT = Object.freeze({"meta":{"integrator":"wh","order":2,"dtDays":2,"spanYears":20000000,"sampleDays":20000,"gr":true,"seed":"JPL Horizons J2000 heliocentric state vectors (tools/explore/j2000-state.mjs, the one home)","masses":"DE440 mass ratios (astro-reference physicalConstants)","runCommand":"node tools/explore/lattice-long-window-test.mjs years=20000000 integrator=wh dt=2 order=2 gr=1 frame=both sample=20000 lunar=1 asteroids=1 mean=1","physics":{"lunarQuadrupole":{"qTilde":0.012002947703527635,"aEmKm":384399.07,"effectiveFactor":0.8537,"provenance":"calibrated against the real-Moon RK4 triple (apsidal-fidelity-sweep RM/RQ)"},"asteroids":{"ceres":62.6284,"pallas":13.63,"vesta":17.28828}},"sampling":{"kind":"running mean","windowDays":20000,"accumulateDays":20,"form":"z = e·e^{iϖ}, ζ = sin(i/2)·e^{iΩ}, the unwrapped L and a averaged over the interval centred on each sample instant; e/ϖ/i/Ω read back from the mean vectors"},"dumpFile":"tools/explore/lattice-long-window-ecliptic-20000000-gr.local.json (untracked, 337 MB)","dumpSha256":"fc601c3a6000530e7948e6a5472d571f139c5a04623f5eb0e00b7609875d3eea","conservationMaxDE":1.2738960401328902e-8,"decimation":4,"naffTerms":18,"naffZetaTerms":16,"naffZetaTermsEra":8,"frame":"ecliptic-J2000 (z-modes for the lunar-chain e; ζ-modes for the Stage-C obliquity hybrid — the invariable-frame ζ table remains unbanked, no consumer)","laskarRef":"Laskar, J. et al. (2004), A&A 428, 261–285, Table 3, as tabulated beside La2010a in Laskar et al. (2011), A&A 532, A89, Table 6 (theory reference labels)"},"verdict":{"strongestBeatPeriodKyr":405.6256163323512,"strongestBeatArcsecPerYr":3.195064482658601,"la2004BeatPeriodKyr":405.6972922210049,"rockMetronomeKyr":405.6,"companion124Kyr":123.8461774280429,"companion95Kyr":94.8779191670953,"earthLeadingModesArcsecPerYr":[4.25735934102568,7.45242382368428,17.917018104383835,17.3689464700915],"topBeatLines":[{"periodKyr":405.6256163323512,"productAmp":0.0003123331310002905},{"periodKyr":94.8779191670953,"productAmp":0.00024338439929369183},{"periodKyr":123.8461774280429,"productAmp":0.00020980866259533084},{"periodKyr":98.8438689567201,"productAmp":0.0001669487990040976},{"periodKyr":130.69097366197656,"productAmp":0.00014391762307936173},{"periodKyr":2364.6543971818337,"productAmp":0.00011214725805349748},{"periodKyr":972.3108567571052,"productAmp":0.00007217872288838428},{"periodKyr":695.9669361480503,"productAmp":0.00006222141337324166}],"note":"g5 matches La2004 to 0.0001 ″/yr and g2 (7.4524) to 0.0004 ″/yr (La2004 7.452, La2010a 7.453) — the point-mass run read 7.4230 (EMB merged, no asteroids; the pre-lunar dump), 0.029 ″/yr low; the lunar quadrupole + asteroids this run carries supply 0.0294 ″/yr (the lab’s asteroid effect on Earth is null, so it is the Moon) and close that gap — doc 109 §17."},"earthZ":[{"omegaRadPerYr":0.00002064026053928728,"re":0.016408481973687293,"im":0.00964767356766811},{"omegaRadPerYr":0.000036130370271487795,"re":-0.015519642149088433,"im":-0.005327887107665329},{"omegaRadPerYr":0.00008686415501692527,"re":-0.011108273919656759,"im":0.006332365232208935},{"omegaRadPerYr":0.00008420702875159541,"re":0.005504475099147945,"im":-0.006828457315943787},{"omegaRadPerYr":0.000027102376295286908,"re":0.0005989651787266197,"im":0.003744371476925423},{"omegaRadPerYr":0.00008284689867908997,"re":0.0023859026034732315,"im":0.0008687938005845257},{"omegaRadPerYr":0.00008551634174576832,"re":0.0012668406307752948,"im":0.0012845431923923425},{"omegaRadPerYr":0.00008156882850046812,"re":-0.00034138421027087083,"im":0.001682380915016239},{"omegaRadPerYr":0.0000334561278810516,"re":-0.0012412251771850532,"im":0.0009317341271077432},{"omegaRadPerYr":0.0001369362592349324,"re":-0.000926051128681748,"im":0.0011910539702119224},{"omegaRadPerYr":0.00008736463255888094,"re":0.001319961318579058,"im":0.0009530742834143687},{"omegaRadPerYr":0.00008630680149412104,"re":-0.00038870896796713313,"im":0.0009911550727905994},{"omegaRadPerYr":0.000026453640981046377,"re":-0.00032604229856499203,"im":-0.0018103222794453506},{"omegaRadPerYr":0.000034145952616259075,"re":0.000948067859564817,"im":-0.0008231127465299272},{"omegaRadPerYr":0.000035480850773932457,"re":-0.0013008376918118244,"im":-0.0004244818801519477},{"omegaRadPerYr":0.00008951127352155837,"re":-0.0010559690881993635,"im":-0.000006007222063534987},{"omegaRadPerYr":0.00008814769748799456,"re":-0.0003393110824778119,"im":-0.0012661738187862766},{"omegaRadPerYr":0.00002769257654916034,"re":0.0004456460433847887,"im":0.001314672372975069}],"earthZeta":[{"omegaRadPerYr":-1.1410293228035924e-13,"re":-0.004134413965808633,"im":0.013144187955853495},{"omegaRadPerYr":-0.00009139020542200846,"re":-0.003762855590302997,"im":-0.007417296801641696},{"omegaRadPerYr":-0.000027078021559933723,"re":0.00422876100285432,"im":0.00155286032785777},{"omegaRadPerYr":-0.00008608086603475567,"re":0.0012161433255985612,"im":-0.003845457399097178},{"omegaRadPerYr":-0.0000341430545590667,"re":-0.003083019044835525,"im":0.0025226701548715204},{"omegaRadPerYr":-0.00008873899573767858,"re":-0.00020769829253787777,"im":-0.0026851282887250696},{"omegaRadPerYr":-0.00003333897758181369,"re":0.0006468537453096387,"im":-0.0008212873095351131},{"omegaRadPerYr":-0.000034707553507463474,"re":0.0012115494424393928,"im":-0.000860411790116295},{"omegaRadPerYr":-0.0000940469486230801,"re":0.0011248423973212406,"im":0.0009724980212842997},{"omegaRadPerYr":-0.000026471937837019996,"re":0.0016060798799799707,"im":0.000593154840511889},{"omegaRadPerYr":-0.00003277703034606899,"re":0.0005051926299923736,"im":-0.0006705902286727336},{"omegaRadPerYr":-0.00012773805775455268,"re":-0.0008122426040282591,"im":0.0010593610390690518},{"omegaRadPerYr":-0.00009269956749879626,"re":-0.0006909391732184238,"im":0.0004135337700854824},{"omegaRadPerYr":-0.000014507596996125832,"re":-0.0006470710267199387,"im":0.000577430822715892},{"omegaRadPerYr":-0.00003376189960948027,"re":0.0011578179749108309,"im":-0.0006909320839040882},{"omegaRadPerYr":-0.000028297573149631648,"re":-0.0011184863049224826,"im":-0.00038854420643713}],"earthZetaEra":[{"omegaRadPerYr":-1.1410293228035924e-13,"re":-0.004136153285970237,"im":0.013147337976083528},{"omegaRadPerYr":-0.00009139020542200846,"re":-0.0037451237972679404,"im":-0.007367091634537792},{"omegaRadPerYr":-0.000027078021559933723,"re":0.004192469329211744,"im":0.0015465198705623788},{"omegaRadPerYr":-0.00008608086603475567,"re":0.0012039923095212837,"im":-0.0038572750383669345},{"omegaRadPerYr":-0.0000341430545590667,"re":-0.0032014640685733347,"im":0.0025701013111980495},{"omegaRadPerYr":-0.00008873899573767858,"re":-0.00021856302716135288,"im":-0.002669850686242565},{"omegaRadPerYr":-0.00003333897758181369,"re":0.0003478756410273143,"im":-0.0006130452097161655},{"omegaRadPerYr":-0.000034707553507463474,"re":0.0012187997429937238,"im":-0.0008793880034144133}],"planetLeadingZetaArcsecPerYr":{"mercury":-5.583654017430141,"venus":-18.850622076583996,"earth":-18.850583014252912,"mars":-17.755517386122037,"jupiter":-26.347850642158217,"saturn":-26.347850635862965,"uranus":-2.992403456610929,"neptune":-0.6916261436887565},"planetZ":{"mercury":[{"omegaRadPerYr":0.000027101464292273197,"re":0.036444023071520636,"im":0.15311954497855707},{"omegaRadPerYr":0.000026456823395078742,"re":-0.014114753138057533,"im":-0.07933223620417756},{"omegaRadPerYr":0.000027695766401728754,"re":0.01488391380562996,"im":0.047703846765386804},{"omegaRadPerYr":0.00002060882554543645,"re":0.0339423908826784,"im":0.020589139515272425},{"omegaRadPerYr":0.00003613198793828062,"re":0.026373193241984387,"im":0.007998904226487892},{"omegaRadPerYr":0.000025943087153978193,"re":-0.00008248063135793124,"im":0.013824800750224079},{"omegaRadPerYr":0.000021259365941927403,"re":-0.010921071601665637,"im":-0.00539059578698316},{"omegaRadPerYr":0.000033442897746394404,"re":-0.006298687522836857,"im":0.00484612541944046},{"omegaRadPerYr":0.000027342848191263363,"re":-0.031442682817373786,"im":-0.0012822394903995275},{"omegaRadPerYr":0.000026863602621838813,"re":-0.002366611347964581,"im":0.038454733492295695},{"omegaRadPerYr":0.00002907738952128752,"re":-0.005667150672888674,"im":0.008668058090193012},{"omegaRadPerYr":0.000025324684311921822,"re":-0.005942093342373906,"im":-0.01227534565589349},{"omegaRadPerYr":0.000029797550612968427,"re":0.000809258995991266,"im":-0.006447105182531865},{"omegaRadPerYr":0.00001999241202238688,"re":0.012472253334907629,"im":0.003598867020651667},{"omegaRadPerYr":0.00002454698002313524,"re":0.002056079809993918,"im":0.0009914215789243552},{"omegaRadPerYr":0.00002812715562213109,"re":-0.0020516552363352264,"im":-0.003328524118382283},{"omegaRadPerYr":0.000019449370220817053,"re":-0.003801761527220787,"im":-0.0028424602404039483}],"venus":[{"omegaRadPerYr":0.00003613032717939823,"re":-0.020105347354812095,"im":-0.006917538891956874},{"omegaRadPerYr":0.000020639948809626973,"re":0.017068877008042455,"im":0.010006596219855075},{"omegaRadPerYr":0.0000868645027614212,"re":0.011426774420107297,"im":-0.006520468232307801},{"omegaRadPerYr":0.00008420762194547333,"re":-0.006892461031289234,"im":0.008472542669728586},{"omegaRadPerYr":0.00002710184368013,"re":0.0009493588277041413,"im":0.005898793130900129},{"omegaRadPerYr":0.00008284929179142955,"re":-0.0030327004795685426,"im":-0.0010976765634767385},{"omegaRadPerYr":0.00008156590429518311,"re":0.00046548814192078384,"im":-0.002280559309662902},{"omegaRadPerYr":0.00003345630063643376,"re":-0.0017828871626142308,"im":0.0012955364260770735},{"omegaRadPerYr":0.00008551538273944128,"re":-0.0011609762656497502,"im":-0.0012677611714651579},{"omegaRadPerYr":0.000026453137653133872,"re":-0.0005188505651127462,"im":-0.0028560488274096364},{"omegaRadPerYr":0.00003414565288549131,"re":0.001293348332442756,"im":-0.0011398131361210271},{"omegaRadPerYr":0.000027695175568907657,"re":0.0006921270564176893,"im":0.0020564256252633547},{"omegaRadPerYr":0.00003548134976957423,"re":-0.0017504233501284942,"im":-0.0005758759957417746},{"omegaRadPerYr":0.00008736398097589147,"re":-0.0013474575390550706,"im":-0.0009927321347241434},{"omegaRadPerYr":0.00008630851103555993,"re":0.00037655629612362053,"im":-0.0010608653943554895},{"omegaRadPerYr":0.00003678579077719159,"re":0.0015965103652885013,"im":0.000326196064641942},{"omegaRadPerYr":0.0000881453951345754,"re":0.00043023762572567373,"im":0.001269808377143898},{"omegaRadPerYr":0.00009215945807380688,"re":-0.0008156703652309041,"im":-0.00017529954633412867}],"mars":[{"omegaRadPerYr":0.00008686194512479256,"re":0.041504765489223015,"im":-0.02235814703330247},{"omegaRadPerYr":0.00008420997111097055,"re":0.024191089432561166,"im":-0.02897789085013378},{"omegaRadPerYr":0.000020640675014565008,"re":0.017529126075107513,"im":0.010379120272326686},{"omegaRadPerYr":0.000081559020668252,"re":-0.00512653562679053,"im":0.01749879738680057},{"omegaRadPerYr":0.00008951470911630578,"re":0.012453519346797655,"im":-0.0011163597951142977},{"omegaRadPerYr":0.00008286071875760845,"re":0.012151704081874753,"im":0.005285614192118448},{"omegaRadPerYr":0.00008552376315601169,"re":-0.008207003431997713,"im":-0.006506087433708435},{"omegaRadPerYr":0.0001369361221002656,"re":-0.004303475464136668,"im":0.005495829517999798},{"omegaRadPerYr":0.00008631407152193165,"re":0.0033781915488995404,"im":-0.003571055838038572},{"omegaRadPerYr":0.00009216418877389077,"re":0.0041800677044199945,"im":0.001239884803910324},{"omegaRadPerYr":0.00008815294721554903,"re":0.00154794952520183,"im":0.00539423751052082},{"omegaRadPerYr":0.00008737006845359332,"re":-0.004859218563287805,"im":-0.002468677396252279},{"omegaRadPerYr":0.00008474936086400094,"re":-0.0037175961790920664,"im":0.0005712029882590096},{"omegaRadPerYr":0.00003613060896653201,"re":-0.002878129202013714,"im":-0.0009814752724489001},{"omegaRadPerYr":0.00008323445025475002,"re":-0.0021029885361835633,"im":0.002382757319176468},{"omegaRadPerYr":0.00008591713432043544,"re":0.00033708647405510046,"im":-0.0031644039564270067},{"omegaRadPerYr":0.00008022543414911489,"re":0.0014076962389630687,"im":0.00023987935673597328},{"omegaRadPerYr":0.00009003358824060439,"re":-0.0007651109812525995,"im":-0.0015582440837956203}],"jupiter":[{"omegaRadPerYr":0.000020640753950043428,"re":0.03802835653373994,"im":0.022474649418839143},{"omegaRadPerYr":0.00013693627464314361,"re":0.009616154524345534,"im":-0.012410670409417759},{"omegaRadPerYr":0.00001497069966714567,"re":-0.0009272949693244661,"im":0.0015648766360135547},{"omegaRadPerYr":0.00025323179540132025,"re":0.0004058115437952037,"im":0.00040467312162701524},{"omegaRadPerYr":0.00013126627519382845,"re":-0.00015615390192768368,"im":-0.00012179063499624867},{"omegaRadPerYr":0.00014260614561117772,"re":-0.00015325271440933683,"im":-0.00011808845300916341},{"omegaRadPerYr":0.0001400031002474608,"re":0.00010313509494656653,"im":0.0000651207812040597},{"omegaRadPerYr":0.0001338686339295293,"re":0.0000796494850505555,"im":0.00007573975519807786},{"omegaRadPerYr":0.000026318691871986604,"re":-0.000033595588479122196,"im":0.00005893247722089392},{"omegaRadPerYr":0.000003264678984966945,"re":0.000015672896590185083,"im":0.000055892815074490174},{"omegaRadPerYr":0.0002589017654084997,"re":0.00003478722893472479,"im":-0.00003493345314915969},{"omegaRadPerYr":0.00036952732172556234,"re":-0.000023203909177119398,"im":0.000018106250385394238},{"omegaRadPerYr":0.000247561165114356,"re":0.000010581651136056448,"im":-0.00001055507796201632},{"omegaRadPerYr":0.00003612988319399951,"re":0.000013390695778674781,"im":0.0000047037021480044725},{"omegaRadPerYr":-0.00009565477053631919,"re":0.000005624309267976877,"im":-0.000012958002634747445},{"omegaRadPerYr":-0.0003924122435437034,"re":-0.000006992958975102424,"im":0.000009315796061382198},{"omegaRadPerYr":0.000009269941986513537,"re":-0.000008048534939225588,"im":-0.000003864628170723291},{"omegaRadPerYr":0.000027095228271856093,"re":-0.0000012609241750656542,"im":-0.000009355961110822987}],"saturn":[{"omegaRadPerYr":0.000136936274676527,"re":-0.029526114913357417,"im":0.03810663037643012},{"omegaRadPerYr":0.000020640753952303068,"re":0.02836216323554009,"im":0.016761916826061506},{"omegaRadPerYr":0.00025323179557224743,"re":-0.001358212735687014,"im":-0.001354494584141828},{"omegaRadPerYr":0.00001497069849206233,"re":-0.0007728290759742578,"im":0.0013036819124627682},{"omegaRadPerYr":0.00013126626764177452,"re":0.00047689972059781664,"im":0.0003718595755313727},{"omegaRadPerYr":0.00014260614140321844,"re":0.0004737043111922672,"im":0.00036497849195663706},{"omegaRadPerYr":0.00014000311722760271,"re":-0.0003189291778619858,"im":-0.00020142776498442827},{"omegaRadPerYr":0.0001338686331837861,"re":-0.00024288410398718474,"im":-0.00023105602990010615},{"omegaRadPerYr":0.00025890179311419993,"re":-0.0001171411707612403,"im":0.00011746492627150931},{"omegaRadPerYr":-0.00009565476823859153,"re":-0.000056224226827865934,"im":0.00012953968117821664},{"omegaRadPerYr":0.00036952732152187306,"re":0.000074583569294192,"im":-0.00005820083715270732},{"omegaRadPerYr":0.000003264848751840267,"re":0.000015700788295876694,"im":0.000055596186033803225},{"omegaRadPerYr":0.00024756115576041627,"re":-0.000035570705372331575,"im":0.00003545203031406821},{"omegaRadPerYr":0.00002631979662460751,"re":-0.000022991236071399768,"im":0.00003897885795678947},{"omegaRadPerYr":0.001249681025763079,"re":-2.3198668024885977e-9,"im":-2.0840120184947853e-8}],"uranus":[{"omegaRadPerYr":0.000020640754051905455,"re":-0.03238314921291906,"im":-0.019136270900500952},{"omegaRadPerYr":0.0000149707050305949,"re":-0.014799549047510857,"im":0.0249763314093295},{"omegaRadPerYr":0.0000032644703067195065,"re":0.0004512567709134293,"im":0.001607308223192826},{"omegaRadPerYr":0.00013693627421784157,"re":0.0009472723337198114,"im":-0.001223413990042431},{"omegaRadPerYr":0.00000929094076647845,"re":-0.0004098452587973499,"im":-0.000230897166720661},{"omegaRadPerYr":0.000026312658284797307,"re":0.0002273593783200553,"im":-0.00037789890577027204},{"omegaRadPerYr":0.000014377129396282065,"re":0.00005768197408126378,"im":-0.00005810167513883437},{"omegaRadPerYr":0.00013126623893761725,"re":-0.00004556400692074889,"im":-0.000035057876684577},{"omegaRadPerYr":0.000023704505602337045,"re":-0.00002212705831337314,"im":0.00004522467254519739},{"omegaRadPerYr":0.00025323179334234454,"re":0.000030115231546042077,"im":0.000030059783606340597},{"omegaRadPerYr":-0.0000956549513307507,"re":0.000016732588154100183,"im":-0.000038367429765478644},{"omegaRadPerYr":-0.00010132493178332638,"re":-0.00003431585146480019,"im":-0.000014866128319587489},{"omegaRadPerYr":0.000003858978166561776,"re":0.000022170010867448007,"im":0.000036447723730098744},{"omegaRadPerYr":0.000008814049719074161,"re":-0.00004082218088597741,"im":0.000012040500670065223},{"omegaRadPerYr":-0.00011590416867359514,"re":8.699602946641052e-8,"im":5.553883763810545e-8}],"neptune":[{"omegaRadPerYr":0.000003264141493530658,"re":0.0024666456746272147,"im":0.008775592288536284},{"omegaRadPerYr":0.000014970655885150893,"re":0.0018888514982263334,"im":-0.0031893968986236457},{"omegaRadPerYr":0.000020640754940856132,"re":0.00162951102568054,"im":0.0009616436926450925},{"omegaRadPerYr":-0.00011593914216418409,"re":2.747101136845908e-8,"im":-4.5026418830945565e-8}]},"planetZeta":{"mercury":[{"omegaRadPerYr":-0.000027070318582323557,"re":0.03509797249014931,"im":0.012514149382448552},{"omegaRadPerYr":-0.00003413690389739279,"re":0.026959869021417716,"im":-0.02182847853112868},{"omegaRadPerYr":-0.00003471031474027818,"re":-0.012559011294671124,"im":0.008298962969675253},{"omegaRadPerYr":-0.000026467651991945705,"re":0.015448590221985688,"im":0.005987464598341215},{"omegaRadPerYr":-0.000033407984465361296,"re":-0.006454952479176622,"im":0.006225963940515123},{"omegaRadPerYr":5.3811079978842454e-11,"re":-0.003980547301058507,"im":0.013069885927750423},{"omegaRadPerYr":-0.00003284702818980641,"re":-0.005700152713256442,"im":0.005259062565586818},{"omegaRadPerYr":-0.000035947927223711426,"re":-0.0012959811858415944,"im":0.0016158859533398368},{"omegaRadPerYr":-0.00002507612667936281,"re":0.0009462178374093093,"im":0.004877806208895182},{"omegaRadPerYr":-0.00003524962417899834,"re":0.0036109217252571144,"im":-0.0046240145829117745},{"omegaRadPerYr":-0.000024475657766030782,"re":0.000022798260296432497,"im":-0.004353168465030345},{"omegaRadPerYr":-0.00003379279225968061,"re":-0.007806902851354338,"im":0.004006379682954141},{"omegaRadPerYr":-0.00003218755977160671,"re":-0.003704667874928154,"im":0.0011958837300393094},{"omegaRadPerYr":-0.000028313967231963364,"re":-0.007360063047898489,"im":-0.0027969385837881607},{"omegaRadPerYr":-0.000027441503808049902,"re":0.0057143439391363115,"im":-0.00031294413395922653},{"omegaRadPerYr":-0.000025718821831500368,"re":-0.00022793114140702504,"im":-0.0019692404478195507}],"venus":[{"omegaRadPerYr":-1.6562063244548837e-12,"re":-0.0041316136422036975,"im":0.01314721125537392},{"omegaRadPerYr":-0.00009139039480153373,"re":0.004107285858484012,"im":0.008097724809849395},{"omegaRadPerYr":-0.000027077828639080643,"re":0.005723189259789776,"im":0.0021039425165124866},{"omegaRadPerYr":-0.00008608097266426905,"re":-0.0017575515997674367,"im":0.005497157000665012},{"omegaRadPerYr":-0.000034143334247237,"re":-0.0036684091781582005,"im":0.002972948909888301},{"omegaRadPerYr":-0.00008873898453972984,"re":0.00017435780296718974,"im":0.0028392930948168225},{"omegaRadPerYr":-0.00003332403122213448,"re":0.0008226721972746479,"im":-0.0009902272668019395},{"omegaRadPerYr":-0.000034706995821957084,"re":0.0013981723019846563,"im":-0.001003710822132505},{"omegaRadPerYr":-0.000026472136493668425,"re":0.002192723210036257,"im":0.0008156183271466527},{"omegaRadPerYr":-0.00009404722603802501,"re":-0.001310191142044668,"im":-0.0011533602374424112},{"omegaRadPerYr":-0.00003276166039911322,"re":0.0005497614278436831,"im":-0.000766360825371281},{"omegaRadPerYr":-0.0000926990603428534,"re":0.0007742960276975197,"im":-0.0004388347814239686},{"omegaRadPerYr":-0.000014507611623856052,"re":-0.0007092320230026597,"im":0.0006439859099214741},{"omegaRadPerYr":-0.000033754439090015164,"re":0.0014500510633024821,"im":-0.0008823786435673462},{"omegaRadPerYr":-0.000028299666175675138,"re":-0.0015021371101183883,"im":-0.0005258401276251515},{"omegaRadPerYr":-0.000032142206337013534,"re":0.0006661202277925022,"im":-0.0002653819963406987}],"mars":[{"omegaRadPerYr":-0.0000860811774397019,"re":0.010210834361735826,"im":-0.033564529480866426},{"omegaRadPerYr":-0.00009138911135565136,"re":0.006448618722464604,"im":0.013039152431651668},{"omegaRadPerYr":4.601264393751777e-13,"re":-0.004136646781035758,"im":0.013131602510833217},{"omegaRadPerYr":-0.00008873924254782978,"re":0.000719112601174314,"im":0.006332401348408038},{"omegaRadPerYr":-0.00008342553438253896,"re":-0.0033853606632027037,"im":0.004320155147168284},{"omegaRadPerYr":-0.00012773796955546586,"re":-0.002768989655290775,"im":0.0036533623978556177},{"omegaRadPerYr":-0.00008732461876937654,"re":0.00231534214924283,"im":0.00021373810426928368},{"omegaRadPerYr":-0.00008533731389685978,"re":0.00006630596192623674,"im":0.0014041501898406413},{"omegaRadPerYr":-0.00009270137877064185,"re":0.0012004306952446298,"im":-0.0007842328019909585},{"omegaRadPerYr":-0.00008675664615870381,"re":0.0007083420236363926,"im":-0.0008188387730287849},{"omegaRadPerYr":-0.00008568093986250838,"re":-0.0022270788357200036,"im":-0.00029158862728667726},{"omegaRadPerYr":-0.00009201279009249361,"re":-0.0001271862943350417,"im":0.001183825444928393},{"omegaRadPerYr":-0.00008937418452457295,"re":-0.0002755997174158327,"im":0.0007026579504328407},{"omegaRadPerYr":-0.0000270784800397243,"re":0.0008884309933447211,"im":0.00034003835617355427},{"omegaRadPerYr":-0.0000909288977613683,"re":-0.0004328117004380372,"im":0.0003922371902857479},{"omegaRadPerYr":-0.0000900480286442466,"re":0.0008966649316363436,"im":-0.0005174407942921522}],"jupiter":[{"omegaRadPerYr":3.7221754548585053e-13,"re":-0.004161137617013913,"im":0.013131043801952312},{"omegaRadPerYr":-0.00012773798459148977,"re":0.0019098221513580863,"im":-0.0025056558344084797},{"omegaRadPerYr":-0.000003353109945997523,"re":0.0005277820190990891,"im":0.00023288511772927517},{"omegaRadPerYr":-0.000014507601915596835,"re":-0.0003702089551422678,"im":0.0003078742011939763},{"omegaRadPerYr":-0.00013080293731212533,"re":-0.000017471232928724017,"im":-0.000016346795039079824},{"omegaRadPerYr":-0.000011442276301002287,"re":0.00001245980539505912,"im":0.00001269484118435882},{"omegaRadPerYr":0.00040161053399539277,"re":0.000008812960980166388,"im":-0.000011208823964357068},{"omegaRadPerYr":-0.000008827051616158178,"re":0.000007828579901231225,"im":0.00000781148442453125},{"omegaRadPerYr":-0.000027076815023712354,"re":-0.00000904470054078902,"im":-0.000003339892094053355},{"omegaRadPerYr":-0.00002017687762687059,"re":0.00000615649209644949,"im":0.00000751719853458792},{"omegaRadPerYr":0.0002853150150423352,"re":0.000007292068558861277,"im":0.000004378186079347917},{"omegaRadPerYr":-0.00024403350530026745,"re":0.000006274646554284911,"im":0.0000036486170089619},{"omegaRadPerYr":0.000169019491259695,"re":-0.0000025193695259248434,"im":0.000005678652678520896},{"omegaRadPerYr":-0.000002758708719863724,"re":0.000005899866664345434,"im":8.408375136534654e-7},{"omegaRadPerYr":-0.00003414438203433599,"re":0.00000471959319804195,"im":-0.000003724804010815483},{"omegaRadPerYr":-0.00013340793479052466,"re":0.000003615222293693522,"im":0.0000026473282077432464}],"saturn":[{"omegaRadPerYr":3.585419863101795e-13,"re":-0.004160829821085266,"im":0.01313035318190379},{"omegaRadPerYr":-0.00012773798456096954,"re":-0.00475752525331164,"im":0.006241839650150809},{"omegaRadPerYr":-0.000003353104048552392,"re":0.0005082773835787105,"im":0.00022438915547556837},{"omegaRadPerYr":-0.000014507604459261644,"re":-0.0003003529136201397,"im":0.0002498522709495287},{"omegaRadPerYr":-0.00013080297358737127,"re":0.00004462313026048051,"im":0.00004172135220672922},{"omegaRadPerYr":0.00040161053412911805,"re":-0.000021891186916241336,"im":0.000027842986249657194},{"omegaRadPerYr":0.00028531501271526966,"re":-0.000016973213900275996,"im":-0.000010209427993912636},{"omegaRadPerYr":0.00016901949553398734,"re":0.000006351249396626556,"im":-0.000014466385743905935},{"omegaRadPerYr":-0.000027077124002162175,"re":-0.000011812157537888775,"im":-0.000004333883484050759},{"omegaRadPerYr":-0.00008608110331037643,"re":-0.000003851841685967594,"im":0.000012265127869631022},{"omegaRadPerYr":-0.00013340770677559036,"re":-0.000008294931517564553,"im":-0.000006049557294846683},{"omegaRadPerYr":-0.00012206710895509666,"re":-0.000007849634096708948,"im":-0.000006182455594994061},{"omegaRadPerYr":-0.000008827439024311075,"re":0.000006897691656407948,"im":0.000007082500448309159},{"omegaRadPerYr":-0.0002440335040954839,"re":-0.000006773234418159552,"im":-0.000003939449654109784},{"omegaRadPerYr":-0.0000341439870403911,"re":0.000006808043941033205,"im":-0.000005368804116486281},{"omegaRadPerYr":-0.000020177691392900797,"re":0.000004208114355739691,"im":0.000005258604111260197}],"uranus":[{"omegaRadPerYr":1.6141148042328129e-12,"re":-0.004160858186670563,"im":0.013129873611558377},{"omegaRadPerYr":-0.000014507581351644442,"re":0.00681976988891068,"im":-0.00567455558541934},{"omegaRadPerYr":-0.0000033533173289506766,"re":-0.0005101610822664126,"im":-0.000224310078502412},{"omegaRadPerYr":-0.0001277379853640299,"re":0.0002139091624012802,"im":-0.00028067983977205185},{"omegaRadPerYr":-0.00001144239016674966,"re":-0.0002156563261634957,"im":-0.0002150429303191138},{"omegaRadPerYr":-0.000020175380714993984,"re":-0.0001217849690988656,"im":-0.0001456139226672655},{"omegaRadPerYr":-0.000008831574335573594,"re":-0.00012271331977628462,"im":-0.00013405824655403535},{"omegaRadPerYr":-0.00001510388467496541,"re":-0.00005803376568527162,"im":0.00002617841729566363},{"omegaRadPerYr":-0.000005772310975280442,"re":0.0000186284763652826,"im":-0.000018787231377164656},{"omegaRadPerYr":0.000055789018305747005,"re":-0.000003584390196202557,"im":0.000018771821808602262},{"omegaRadPerYr":0.000050118875830489076,"re":0.000011950781441802792,"im":0.0000022797653890251466},{"omegaRadPerYr":-0.00002707666210632543,"re":0.00000860900240250949,"im":0.000003963441917605542},{"omegaRadPerYr":-0.00013080306359358084,"re":-0.000007760848939991108,"im":-0.0000071759927999063306},{"omegaRadPerYr":-0.000009192797711448383,"re":-0.000006995283248688764,"im":0.000009869457731411796},{"omegaRadPerYr":-0.000014175489628890538,"re":-0.000012703150624760847,"im":0.000007778454242024216},{"omegaRadPerYr":0.0001017879709588662,"re":-0.000004042914508902477,"im":-0.000006404468758645802}],"neptune":[{"omegaRadPerYr":-5.354534864918708e-12,"re":-0.004159722070410082,"im":0.013130987574325645},{"omegaRadPerYr":-0.0000033530981667333895,"re":-0.005314734683414286,"im":-0.002345763320993943},{"omegaRadPerYr":-0.000014507473745238309,"re":-0.0008167258086049919,"im":0.0006798034088892296},{"omegaRadPerYr":-0.000011442679063650532,"re":0.000041036510281751056,"im":0.00004000471131993182},{"omegaRadPerYr":-0.0000027576451599032637,"re":-0.00006149844675699788,"im":-0.000008691318229841067},{"omegaRadPerYr":-0.0001277379853991284,"re":0.000022940819123859223,"im":-0.000030013552771801523},{"omegaRadPerYr":-0.000020173403598083907,"re":0.000017856436332375348,"im":0.000021295077746280004},{"omegaRadPerYr":-0.00000898047932753266,"re":-0.0000018712220224329416,"im":0.00001734263010674452},{"omegaRadPerYr":0.0000022940677597405162,"re":-0.000008135675285680441,"im":0.00001596639991310029},{"omegaRadPerYr":-0.00000577342966650786,"re":-0.000010151270217803843,"im":0.000012347469128448818},{"omegaRadPerYr":-0.000003688694102054736,"re":-0.000013288748719471691,"im":-0.000004967372846951306},{"omegaRadPerYr":-0.00001510336833335311,"re":0.000008447399515316875,"im":-0.0000038128564863716114},{"omegaRadPerYr":0.0000029055858228923875,"re":1.0662959363406667e-8,"im":-0.000006670003949424725},{"omegaRadPerYr":0.00005011796292783657,"re":-0.000005130325158457534,"im":-0.0000010094005026246946},{"omegaRadPerYr":0.00003897837341896782,"re":-0.0000020680050285509657,"im":0.0000027753917603475307}]},"anchorE":0.016702435651957018,"anchorPeriEclipticDeg":462.9179213996577,"anchorInclEclipticDeg":0.00010345820355474172,"anchorAscNodeEclipticDeg":140.29217988414328,"anchorZDotPerYr":[-8.220369999999999e-7,-6.198139999999997e-7],"slopeTaperYears":27943.083333333332});
21
+ const DEEP_MODES_ARTIFACT = Object.freeze({"meta":{"integrator":"wh","order":2,"dtDays":2,"spanYears":20000000,"sampleDays":20000,"gr":true,"seed":"JPL Horizons J2000 heliocentric state vectors (tools/explore/j2000-state.mjs, the one home)","masses":"DE440 mass ratios (astro-reference physicalConstants)","runCommand":"node tools/explore/lattice-long-window-test.mjs years=20000000 integrator=wh dt=2 order=2 gr=1 frame=both sample=20000 lunar=1 asteroids=1 mean=1","physics":{"lunarQuadrupole":{"qTilde":0.012002947703527635,"aEmKm":384399.07,"effectiveFactor":0.8537,"provenance":"calibrated against the real-Moon RK4 triple (apsidal-fidelity-sweep RM/RQ)"},"asteroids":{"ceres":62.6284,"pallas":13.63,"vesta":17.28828}},"sampling":{"kind":"running mean","windowDays":20000,"accumulateDays":20,"form":"z = e·e^{iϖ}, ζ = sin(i/2)·e^{iΩ}, the unwrapped L and a averaged over the interval centred on each sample instant; e/ϖ/i/Ω read back from the mean vectors"},"dumpFile":"tools/explore/lattice-long-window-ecliptic-20000000-gr.local.json (untracked, 337 MB)","dumpSha256":"fc601c3a6000530e7948e6a5472d571f139c5a04623f5eb0e00b7609875d3eea","conservationMaxDE":1.2738960401328902e-8,"decimation":4,"naffTerms":18,"naffZetaTerms":16,"naffZetaTermsEra":8,"frame":"ecliptic-J2000 (z-modes for the lunar-chain e; ζ-modes for the Stage-C obliquity hybrid — the invariable-frame ζ table remains unbanked, no consumer)","laskarRef":"Laskar, J. et al. (2004), A&A 428, 261–285, Table 3, as tabulated beside La2010a in Laskar et al. (2011), A&A 532, A89, Table 6 (theory reference labels)"},"verdict":{"strongestBeatPeriodKyr":405.6256163323512,"strongestBeatArcsecPerYr":3.195064482658601,"la2004BeatPeriodKyr":405.6972922210049,"rockMetronomeKyr":405.6,"companion124Kyr":123.8461774280429,"companion95Kyr":94.8779191670953,"earthLeadingModesArcsecPerYr":[4.25735934102568,7.45242382368428,17.917018104383835,17.3689464700915],"topBeatLines":[{"periodKyr":405.6256163323512,"productAmp":0.0003123331310002905},{"periodKyr":94.8779191670953,"productAmp":0.00024338439929369183},{"periodKyr":123.8461774280429,"productAmp":0.00020980866259533084},{"periodKyr":98.8438689567201,"productAmp":0.0001669487990040976},{"periodKyr":130.69097366197656,"productAmp":0.00014391762307936173},{"periodKyr":2364.6543971818337,"productAmp":0.00011214725805349748},{"periodKyr":972.3108567571052,"productAmp":0.00007217872288838428},{"periodKyr":695.9669361480503,"productAmp":0.00006222141337324166}],"note":"g5 matches La2004 to 0.0001 ″/yr and g2 (7.4524) to 0.0004 ″/yr (La2004 7.452, La2010a 7.453) — the point-mass run read 7.4230 (EMB merged, no asteroids; the pre-lunar dump), 0.029 ″/yr low; the lunar quadrupole + asteroids this run carries supply 0.0294 ″/yr (the lab’s asteroid effect on Earth is null, so it is the Moon) and close that gap — doc 109 §17."},"earthZ":[{"omegaRadPerYr":0.00002064026053928728,"re":0.016408481973687293,"im":0.00964767356766811},{"omegaRadPerYr":0.000036130370271487795,"re":-0.015519642149088433,"im":-0.005327887107665329},{"omegaRadPerYr":0.00008686415501692527,"re":-0.011108273919656759,"im":0.006332365232208935},{"omegaRadPerYr":0.00008420702875159541,"re":0.005504475099147945,"im":-0.006828457315943787},{"omegaRadPerYr":0.000027102376295286908,"re":0.0005989651787266197,"im":0.003744371476925423},{"omegaRadPerYr":0.00008284689867908997,"re":0.0023859026034732315,"im":0.0008687938005845257},{"omegaRadPerYr":0.00008551634174576832,"re":0.0012668406307752948,"im":0.0012845431923923425},{"omegaRadPerYr":0.00008156882850046812,"re":-0.00034138421027087083,"im":0.001682380915016239},{"omegaRadPerYr":0.0000334561278810516,"re":-0.0012412251771850532,"im":0.0009317341271077432},{"omegaRadPerYr":0.0001369362592349324,"re":-0.000926051128681748,"im":0.0011910539702119224},{"omegaRadPerYr":0.00008736463255888094,"re":0.001319961318579058,"im":0.0009530742834143687},{"omegaRadPerYr":0.00008630680149412104,"re":-0.00038870896796713313,"im":0.0009911550727905994},{"omegaRadPerYr":0.000026453640981046377,"re":-0.00032604229856499203,"im":-0.0018103222794453506},{"omegaRadPerYr":0.000034145952616259075,"re":0.000948067859564817,"im":-0.0008231127465299272},{"omegaRadPerYr":0.000035480850773932457,"re":-0.0013008376918118244,"im":-0.0004244818801519477},{"omegaRadPerYr":0.00008951127352155837,"re":-0.0010559690881993635,"im":-0.000006007222063534987},{"omegaRadPerYr":0.00008814769748799456,"re":-0.0003393110824778119,"im":-0.0012661738187862766},{"omegaRadPerYr":0.00002769257654916034,"re":0.0004456460433847887,"im":0.001314672372975069}],"earthZeta":[{"omegaRadPerYr":-1.1410293228035924e-13,"re":-0.004134413965808633,"im":0.013144187955853495},{"omegaRadPerYr":-0.00009139020542200846,"re":-0.003762855590302997,"im":-0.007417296801641696},{"omegaRadPerYr":-0.000027078021559933723,"re":0.00422876100285432,"im":0.00155286032785777},{"omegaRadPerYr":-0.00008608086603475567,"re":0.0012161433255985612,"im":-0.003845457399097178},{"omegaRadPerYr":-0.0000341430545590667,"re":-0.003083019044835525,"im":0.0025226701548715204},{"omegaRadPerYr":-0.00008873899573767858,"re":-0.00020769829253787777,"im":-0.0026851282887250696},{"omegaRadPerYr":-0.00003333897758181369,"re":0.0006468537453096387,"im":-0.0008212873095351131},{"omegaRadPerYr":-0.000034707553507463474,"re":0.0012115494424393928,"im":-0.000860411790116295},{"omegaRadPerYr":-0.0000940469486230801,"re":0.0011248423973212406,"im":0.0009724980212842997},{"omegaRadPerYr":-0.000026471937837019996,"re":0.0016060798799799707,"im":0.000593154840511889},{"omegaRadPerYr":-0.00003277703034606899,"re":0.0005051926299923736,"im":-0.0006705902286727336},{"omegaRadPerYr":-0.00012773805775455268,"re":-0.0008122426040282591,"im":0.0010593610390690518},{"omegaRadPerYr":-0.00009269956749879626,"re":-0.0006909391732184238,"im":0.0004135337700854824},{"omegaRadPerYr":-0.000014507596996125832,"re":-0.0006470710267199387,"im":0.000577430822715892},{"omegaRadPerYr":-0.00003376189960948027,"re":0.0011578179749108309,"im":-0.0006909320839040882},{"omegaRadPerYr":-0.000028297573149631648,"re":-0.0011184863049224826,"im":-0.00038854420643713}],"earthZetaEra":[{"omegaRadPerYr":-1.1410293228035924e-13,"re":-0.004136153285970237,"im":0.013147337976083528},{"omegaRadPerYr":-0.00009139020542200846,"re":-0.0037451237972679404,"im":-0.007367091634537792},{"omegaRadPerYr":-0.000027078021559933723,"re":0.004192469329211744,"im":0.0015465198705623788},{"omegaRadPerYr":-0.00008608086603475567,"re":0.0012039923095212837,"im":-0.0038572750383669345},{"omegaRadPerYr":-0.0000341430545590667,"re":-0.0032014640685733347,"im":0.0025701013111980495},{"omegaRadPerYr":-0.00008873899573767858,"re":-0.00021856302716135288,"im":-0.002669850686242565},{"omegaRadPerYr":-0.00003333897758181369,"re":0.0003478756410273143,"im":-0.0006130452097161655},{"omegaRadPerYr":-0.000034707553507463474,"re":0.0012187997429937238,"im":-0.0008793880034144133}],"planetLeadingZetaArcsecPerYr":{"mercury":-5.583654017430141,"venus":-18.850622076583996,"earth":-18.850583014252912,"mars":-17.755517386122037,"jupiter":-26.347850642158217,"saturn":-26.347850635862965,"uranus":-2.992403456610929,"neptune":-0.6916261436887565},"planetZ":{"mercury":[{"omegaRadPerYr":0.000027101464292273197,"re":0.036444023071520636,"im":0.15311954497855707},{"omegaRadPerYr":0.000026456823395078742,"re":-0.014114753138057533,"im":-0.07933223620417756},{"omegaRadPerYr":0.000027695766401728754,"re":0.01488391380562996,"im":0.047703846765386804},{"omegaRadPerYr":0.00002060882554543645,"re":0.0339423908826784,"im":0.020589139515272425},{"omegaRadPerYr":0.00003613198793828062,"re":0.026373193241984387,"im":0.007998904226487892},{"omegaRadPerYr":0.000025943087153978193,"re":-0.00008248063135793124,"im":0.013824800750224079},{"omegaRadPerYr":0.000021259365941927403,"re":-0.010921071601665637,"im":-0.00539059578698316},{"omegaRadPerYr":0.000033442897746394404,"re":-0.006298687522836857,"im":0.00484612541944046},{"omegaRadPerYr":0.000027342848191263363,"re":-0.031442682817373786,"im":-0.0012822394903995275},{"omegaRadPerYr":0.000026863602621838813,"re":-0.002366611347964581,"im":0.038454733492295695},{"omegaRadPerYr":0.00002907738952128752,"re":-0.005667150672888674,"im":0.008668058090193012},{"omegaRadPerYr":0.000025324684311921822,"re":-0.005942093342373906,"im":-0.01227534565589349},{"omegaRadPerYr":0.000029797550612968427,"re":0.000809258995991266,"im":-0.006447105182531865},{"omegaRadPerYr":0.00001999241202238688,"re":0.012472253334907629,"im":0.003598867020651667},{"omegaRadPerYr":0.00002454698002313524,"re":0.002056079809993918,"im":0.0009914215789243552},{"omegaRadPerYr":0.00002812715562213109,"re":-0.0020516552363352264,"im":-0.003328524118382283},{"omegaRadPerYr":0.000019449370220817053,"re":-0.003801761527220787,"im":-0.0028424602404039483}],"venus":[{"omegaRadPerYr":0.00003613032717939823,"re":-0.020105347354812095,"im":-0.006917538891956874},{"omegaRadPerYr":0.000020639948809626973,"re":0.017068877008042455,"im":0.010006596219855075},{"omegaRadPerYr":0.0000868645027614212,"re":0.011426774420107297,"im":-0.006520468232307801},{"omegaRadPerYr":0.00008420762194547333,"re":-0.006892461031289234,"im":0.008472542669728586},{"omegaRadPerYr":0.00002710184368013,"re":0.0009493588277041413,"im":0.005898793130900129},{"omegaRadPerYr":0.00008284929179142955,"re":-0.0030327004795685426,"im":-0.0010976765634767385},{"omegaRadPerYr":0.00008156590429518311,"re":0.00046548814192078384,"im":-0.002280559309662902},{"omegaRadPerYr":0.00003345630063643376,"re":-0.0017828871626142308,"im":0.0012955364260770735},{"omegaRadPerYr":0.00008551538273944128,"re":-0.0011609762656497502,"im":-0.0012677611714651579},{"omegaRadPerYr":0.000026453137653133872,"re":-0.0005188505651127462,"im":-0.0028560488274096364},{"omegaRadPerYr":0.00003414565288549131,"re":0.001293348332442756,"im":-0.0011398131361210271},{"omegaRadPerYr":0.000027695175568907657,"re":0.0006921270564176893,"im":0.0020564256252633547},{"omegaRadPerYr":0.00003548134976957423,"re":-0.0017504233501284942,"im":-0.0005758759957417746},{"omegaRadPerYr":0.00008736398097589147,"re":-0.0013474575390550706,"im":-0.0009927321347241434},{"omegaRadPerYr":0.00008630851103555993,"re":0.00037655629612362053,"im":-0.0010608653943554895},{"omegaRadPerYr":0.00003678579077719159,"re":0.0015965103652885013,"im":0.000326196064641942},{"omegaRadPerYr":0.0000881453951345754,"re":0.00043023762572567373,"im":0.001269808377143898},{"omegaRadPerYr":0.00009215945807380688,"re":-0.0008156703652309041,"im":-0.00017529954633412867}],"mars":[{"omegaRadPerYr":0.00008686194512479256,"re":0.041504765489223015,"im":-0.02235814703330247},{"omegaRadPerYr":0.00008420997111097055,"re":0.024191089432561166,"im":-0.02897789085013378},{"omegaRadPerYr":0.000020640675014565008,"re":0.017529126075107513,"im":0.010379120272326686},{"omegaRadPerYr":0.000081559020668252,"re":-0.00512653562679053,"im":0.01749879738680057},{"omegaRadPerYr":0.00008951470911630578,"re":0.012453519346797655,"im":-0.0011163597951142977},{"omegaRadPerYr":0.00008286071875760845,"re":0.012151704081874753,"im":0.005285614192118448},{"omegaRadPerYr":0.00008552376315601169,"re":-0.008207003431997713,"im":-0.006506087433708435},{"omegaRadPerYr":0.0001369361221002656,"re":-0.004303475464136668,"im":0.005495829517999798},{"omegaRadPerYr":0.00008631407152193165,"re":0.0033781915488995404,"im":-0.003571055838038572},{"omegaRadPerYr":0.00009216418877389077,"re":0.0041800677044199945,"im":0.001239884803910324},{"omegaRadPerYr":0.00008815294721554903,"re":0.00154794952520183,"im":0.00539423751052082},{"omegaRadPerYr":0.00008737006845359332,"re":-0.004859218563287805,"im":-0.002468677396252279},{"omegaRadPerYr":0.00008474936086400094,"re":-0.0037175961790920664,"im":0.0005712029882590096},{"omegaRadPerYr":0.00003613060896653201,"re":-0.002878129202013714,"im":-0.0009814752724489001},{"omegaRadPerYr":0.00008323445025475002,"re":-0.0021029885361835633,"im":0.002382757319176468},{"omegaRadPerYr":0.00008591713432043544,"re":0.00033708647405510046,"im":-0.0031644039564270067},{"omegaRadPerYr":0.00008022543414911489,"re":0.0014076962389630687,"im":0.00023987935673597328},{"omegaRadPerYr":0.00009003358824060439,"re":-0.0007651109812525995,"im":-0.0015582440837956203}],"jupiter":[{"omegaRadPerYr":0.000020640753950043428,"re":0.03802835653373994,"im":0.022474649418839143},{"omegaRadPerYr":0.00013693627464314361,"re":0.009616154524345534,"im":-0.012410670409417759},{"omegaRadPerYr":0.00001497069966714567,"re":-0.0009272949693244661,"im":0.0015648766360135547},{"omegaRadPerYr":0.00025323179540132025,"re":0.0004058115437952037,"im":0.00040467312162701524},{"omegaRadPerYr":0.00013126627519382845,"re":-0.00015615390192768368,"im":-0.00012179063499624867},{"omegaRadPerYr":0.00014260614561117772,"re":-0.00015325271440933683,"im":-0.00011808845300916341},{"omegaRadPerYr":0.0001400031002474608,"re":0.00010313509494656653,"im":0.0000651207812040597},{"omegaRadPerYr":0.0001338686339295293,"re":0.0000796494850505555,"im":0.00007573975519807786},{"omegaRadPerYr":0.000026318691871986604,"re":-0.000033595588479122196,"im":0.00005893247722089392},{"omegaRadPerYr":0.000003264678984966945,"re":0.000015672896590185083,"im":0.000055892815074490174},{"omegaRadPerYr":0.0002589017654084997,"re":0.00003478722893472479,"im":-0.00003493345314915969},{"omegaRadPerYr":0.00036952732172556234,"re":-0.000023203909177119398,"im":0.000018106250385394238},{"omegaRadPerYr":0.000247561165114356,"re":0.000010581651136056448,"im":-0.00001055507796201632},{"omegaRadPerYr":0.00003612988319399951,"re":0.000013390695778674781,"im":0.0000047037021480044725},{"omegaRadPerYr":-0.00009565477053631919,"re":0.000005624309267976877,"im":-0.000012958002634747445},{"omegaRadPerYr":-0.0003924122435437034,"re":-0.000006992958975102424,"im":0.000009315796061382198},{"omegaRadPerYr":0.000009269941986513537,"re":-0.000008048534939225588,"im":-0.000003864628170723291},{"omegaRadPerYr":0.000027095228271856093,"re":-0.0000012609241750656542,"im":-0.000009355961110822987}],"saturn":[{"omegaRadPerYr":0.000136936274676527,"re":-0.029526114913357417,"im":0.03810663037643012},{"omegaRadPerYr":0.000020640753952303068,"re":0.02836216323554009,"im":0.016761916826061506},{"omegaRadPerYr":0.00025323179557224743,"re":-0.001358212735687014,"im":-0.001354494584141828},{"omegaRadPerYr":0.00001497069849206233,"re":-0.0007728290759742578,"im":0.0013036819124627682},{"omegaRadPerYr":0.00013126626764177452,"re":0.00047689972059781664,"im":0.0003718595755313727},{"omegaRadPerYr":0.00014260614140321844,"re":0.0004737043111922672,"im":0.00036497849195663706},{"omegaRadPerYr":0.00014000311722760271,"re":-0.0003189291778619858,"im":-0.00020142776498442827},{"omegaRadPerYr":0.0001338686331837861,"re":-0.00024288410398718474,"im":-0.00023105602990010615},{"omegaRadPerYr":0.00025890179311419993,"re":-0.0001171411707612403,"im":0.00011746492627150931},{"omegaRadPerYr":-0.00009565476823859153,"re":-0.000056224226827865934,"im":0.00012953968117821664},{"omegaRadPerYr":0.00036952732152187306,"re":0.000074583569294192,"im":-0.00005820083715270732},{"omegaRadPerYr":0.000003264848751840267,"re":0.000015700788295876694,"im":0.000055596186033803225},{"omegaRadPerYr":0.00024756115576041627,"re":-0.000035570705372331575,"im":0.00003545203031406821},{"omegaRadPerYr":0.00002631979662460751,"re":-0.000022991236071399768,"im":0.00003897885795678947},{"omegaRadPerYr":0.001249681025763079,"re":-2.3198668024885977e-9,"im":-2.0840120184947853e-8}],"uranus":[{"omegaRadPerYr":0.000020640754051905455,"re":-0.03238314921291906,"im":-0.019136270900500952},{"omegaRadPerYr":0.0000149707050305949,"re":-0.014799549047510857,"im":0.0249763314093295},{"omegaRadPerYr":0.0000032644703067195065,"re":0.0004512567709134293,"im":0.001607308223192826},{"omegaRadPerYr":0.00013693627421784157,"re":0.0009472723337198114,"im":-0.001223413990042431},{"omegaRadPerYr":0.00000929094076647845,"re":-0.0004098452587973499,"im":-0.000230897166720661},{"omegaRadPerYr":0.000026312658284797307,"re":0.0002273593783200553,"im":-0.00037789890577027204},{"omegaRadPerYr":0.000014377129396282065,"re":0.00005768197408126378,"im":-0.00005810167513883437},{"omegaRadPerYr":0.00013126623893761725,"re":-0.00004556400692074889,"im":-0.000035057876684577},{"omegaRadPerYr":0.000023704505602337045,"re":-0.00002212705831337314,"im":0.00004522467254519739},{"omegaRadPerYr":0.00025323179334234454,"re":0.000030115231546042077,"im":0.000030059783606340597},{"omegaRadPerYr":-0.0000956549513307507,"re":0.000016732588154100183,"im":-0.000038367429765478644},{"omegaRadPerYr":-0.00010132493178332638,"re":-0.00003431585146480019,"im":-0.000014866128319587489},{"omegaRadPerYr":0.000003858978166561776,"re":0.000022170010867448007,"im":0.000036447723730098744},{"omegaRadPerYr":0.000008814049719074161,"re":-0.00004082218088597741,"im":0.000012040500670065223},{"omegaRadPerYr":-0.00011590416867359514,"re":8.699602946641052e-8,"im":5.553883763810545e-8}],"neptune":[{"omegaRadPerYr":0.000003264141493530658,"re":0.0024666456746272147,"im":0.008775592288536284},{"omegaRadPerYr":0.000014970655885150893,"re":0.0018888514982263334,"im":-0.0031893968986236457},{"omegaRadPerYr":0.000020640754940856132,"re":0.00162951102568054,"im":0.0009616436926450925},{"omegaRadPerYr":-0.00011593914216418409,"re":2.747101136845908e-8,"im":-4.5026418830945565e-8}]},"planetZeta":{"mercury":[{"omegaRadPerYr":-0.000027070318582323557,"re":0.03509797249014931,"im":0.012514149382448552},{"omegaRadPerYr":-0.00003413690389739279,"re":0.026959869021417716,"im":-0.02182847853112868},{"omegaRadPerYr":-0.00003471031474027818,"re":-0.012559011294671124,"im":0.008298962969675253},{"omegaRadPerYr":-0.000026467651991945705,"re":0.015448590221985688,"im":0.005987464598341215},{"omegaRadPerYr":-0.000033407984465361296,"re":-0.006454952479176622,"im":0.006225963940515123},{"omegaRadPerYr":5.3811079978842454e-11,"re":-0.003980547301058507,"im":0.013069885927750423},{"omegaRadPerYr":-0.00003284702818980641,"re":-0.005700152713256442,"im":0.005259062565586818},{"omegaRadPerYr":-0.000035947927223711426,"re":-0.0012959811858415944,"im":0.0016158859533398368},{"omegaRadPerYr":-0.00002507612667936281,"re":0.0009462178374093093,"im":0.004877806208895182},{"omegaRadPerYr":-0.00003524962417899834,"re":0.0036109217252571144,"im":-0.0046240145829117745},{"omegaRadPerYr":-0.000024475657766030782,"re":0.000022798260296432497,"im":-0.004353168465030345},{"omegaRadPerYr":-0.00003379279225968061,"re":-0.007806902851354338,"im":0.004006379682954141},{"omegaRadPerYr":-0.00003218755977160671,"re":-0.003704667874928154,"im":0.0011958837300393094},{"omegaRadPerYr":-0.000028313967231963364,"re":-0.007360063047898489,"im":-0.0027969385837881607},{"omegaRadPerYr":-0.000027441503808049902,"re":0.0057143439391363115,"im":-0.00031294413395922653},{"omegaRadPerYr":-0.000025718821831500368,"re":-0.00022793114140702504,"im":-0.0019692404478195507}],"venus":[{"omegaRadPerYr":-1.6562063244548837e-12,"re":-0.0041316136422036975,"im":0.01314721125537392},{"omegaRadPerYr":-0.00009139039480153373,"re":0.004107285858484012,"im":0.008097724809849395},{"omegaRadPerYr":-0.000027077828639080643,"re":0.005723189259789776,"im":0.0021039425165124866},{"omegaRadPerYr":-0.00008608097266426905,"re":-0.0017575515997674367,"im":0.005497157000665012},{"omegaRadPerYr":-0.000034143334247237,"re":-0.0036684091781582005,"im":0.002972948909888301},{"omegaRadPerYr":-0.00008873898453972984,"re":0.00017435780296718974,"im":0.0028392930948168225},{"omegaRadPerYr":-0.00003332403122213448,"re":0.0008226721972746479,"im":-0.0009902272668019395},{"omegaRadPerYr":-0.000034706995821957084,"re":0.0013981723019846563,"im":-0.001003710822132505},{"omegaRadPerYr":-0.000026472136493668425,"re":0.002192723210036257,"im":0.0008156183271466527},{"omegaRadPerYr":-0.00009404722603802501,"re":-0.001310191142044668,"im":-0.0011533602374424112},{"omegaRadPerYr":-0.00003276166039911322,"re":0.0005497614278436831,"im":-0.000766360825371281},{"omegaRadPerYr":-0.0000926990603428534,"re":0.0007742960276975197,"im":-0.0004388347814239686},{"omegaRadPerYr":-0.000014507611623856052,"re":-0.0007092320230026597,"im":0.0006439859099214741},{"omegaRadPerYr":-0.000033754439090015164,"re":0.0014500510633024821,"im":-0.0008823786435673462},{"omegaRadPerYr":-0.000028299666175675138,"re":-0.0015021371101183883,"im":-0.0005258401276251515},{"omegaRadPerYr":-0.000032142206337013534,"re":0.0006661202277925022,"im":-0.0002653819963406987}],"mars":[{"omegaRadPerYr":-0.0000860811774397019,"re":0.010210834361735826,"im":-0.033564529480866426},{"omegaRadPerYr":-0.00009138911135565136,"re":0.006448618722464604,"im":0.013039152431651668},{"omegaRadPerYr":4.601264393751777e-13,"re":-0.004136646781035758,"im":0.013131602510833217},{"omegaRadPerYr":-0.00008873924254782978,"re":0.000719112601174314,"im":0.006332401348408038},{"omegaRadPerYr":-0.00008342553438253896,"re":-0.0033853606632027037,"im":0.004320155147168284},{"omegaRadPerYr":-0.00012773796955546586,"re":-0.002768989655290775,"im":0.0036533623978556177},{"omegaRadPerYr":-0.00008732461876937654,"re":0.00231534214924283,"im":0.00021373810426928368},{"omegaRadPerYr":-0.00008533731389685978,"re":0.00006630596192623674,"im":0.0014041501898406413},{"omegaRadPerYr":-0.00009270137877064185,"re":0.0012004306952446298,"im":-0.0007842328019909585},{"omegaRadPerYr":-0.00008675664615870381,"re":0.0007083420236363926,"im":-0.0008188387730287849},{"omegaRadPerYr":-0.00008568093986250838,"re":-0.0022270788357200036,"im":-0.00029158862728667726},{"omegaRadPerYr":-0.00009201279009249361,"re":-0.0001271862943350417,"im":0.001183825444928393},{"omegaRadPerYr":-0.00008937418452457295,"re":-0.0002755997174158327,"im":0.0007026579504328407},{"omegaRadPerYr":-0.0000270784800397243,"re":0.0008884309933447211,"im":0.00034003835617355427},{"omegaRadPerYr":-0.0000909288977613683,"re":-0.0004328117004380372,"im":0.0003922371902857479},{"omegaRadPerYr":-0.0000900480286442466,"re":0.0008966649316363436,"im":-0.0005174407942921522}],"jupiter":[{"omegaRadPerYr":3.7221754548585053e-13,"re":-0.004161137617013913,"im":0.013131043801952312},{"omegaRadPerYr":-0.00012773798459148977,"re":0.0019098221513580863,"im":-0.0025056558344084797},{"omegaRadPerYr":-0.000003353109945997523,"re":0.0005277820190990891,"im":0.00023288511772927517},{"omegaRadPerYr":-0.000014507601915596835,"re":-0.0003702089551422678,"im":0.0003078742011939763},{"omegaRadPerYr":-0.00013080293731212533,"re":-0.000017471232928724017,"im":-0.000016346795039079824},{"omegaRadPerYr":-0.000011442276301002287,"re":0.00001245980539505912,"im":0.00001269484118435882},{"omegaRadPerYr":0.00040161053399539277,"re":0.000008812960980166388,"im":-0.000011208823964357068},{"omegaRadPerYr":-0.000008827051616158178,"re":0.000007828579901231225,"im":0.00000781148442453125},{"omegaRadPerYr":-0.000027076815023712354,"re":-0.00000904470054078902,"im":-0.000003339892094053355},{"omegaRadPerYr":-0.00002017687762687059,"re":0.00000615649209644949,"im":0.00000751719853458792},{"omegaRadPerYr":0.0002853150150423352,"re":0.000007292068558861277,"im":0.000004378186079347917},{"omegaRadPerYr":-0.00024403350530026745,"re":0.000006274646554284911,"im":0.0000036486170089619},{"omegaRadPerYr":0.000169019491259695,"re":-0.0000025193695259248434,"im":0.000005678652678520896},{"omegaRadPerYr":-0.000002758708719863724,"re":0.000005899866664345434,"im":8.408375136534654e-7},{"omegaRadPerYr":-0.00003414438203433599,"re":0.00000471959319804195,"im":-0.000003724804010815483},{"omegaRadPerYr":-0.00013340793479052466,"re":0.000003615222293693522,"im":0.0000026473282077432464}],"saturn":[{"omegaRadPerYr":3.585419863101795e-13,"re":-0.004160829821085266,"im":0.01313035318190379},{"omegaRadPerYr":-0.00012773798456096954,"re":-0.00475752525331164,"im":0.006241839650150809},{"omegaRadPerYr":-0.000003353104048552392,"re":0.0005082773835787105,"im":0.00022438915547556837},{"omegaRadPerYr":-0.000014507604459261644,"re":-0.0003003529136201397,"im":0.0002498522709495287},{"omegaRadPerYr":-0.00013080297358737127,"re":0.00004462313026048051,"im":0.00004172135220672922},{"omegaRadPerYr":0.00040161053412911805,"re":-0.000021891186916241336,"im":0.000027842986249657194},{"omegaRadPerYr":0.00028531501271526966,"re":-0.000016973213900275996,"im":-0.000010209427993912636},{"omegaRadPerYr":0.00016901949553398734,"re":0.000006351249396626556,"im":-0.000014466385743905935},{"omegaRadPerYr":-0.000027077124002162175,"re":-0.000011812157537888775,"im":-0.000004333883484050759},{"omegaRadPerYr":-0.00008608110331037643,"re":-0.000003851841685967594,"im":0.000012265127869631022},{"omegaRadPerYr":-0.00013340770677559036,"re":-0.000008294931517564553,"im":-0.000006049557294846683},{"omegaRadPerYr":-0.00012206710895509666,"re":-0.000007849634096708948,"im":-0.000006182455594994061},{"omegaRadPerYr":-0.000008827439024311075,"re":0.000006897691656407948,"im":0.000007082500448309159},{"omegaRadPerYr":-0.0002440335040954839,"re":-0.000006773234418159552,"im":-0.000003939449654109784},{"omegaRadPerYr":-0.0000341439870403911,"re":0.000006808043941033205,"im":-0.000005368804116486281},{"omegaRadPerYr":-0.000020177691392900797,"re":0.000004208114355739691,"im":0.000005258604111260197}],"uranus":[{"omegaRadPerYr":1.6141148042328129e-12,"re":-0.004160858186670563,"im":0.013129873611558377},{"omegaRadPerYr":-0.000014507581351644442,"re":0.00681976988891068,"im":-0.00567455558541934},{"omegaRadPerYr":-0.0000033533173289506766,"re":-0.0005101610822664126,"im":-0.000224310078502412},{"omegaRadPerYr":-0.0001277379853640299,"re":0.0002139091624012802,"im":-0.00028067983977205185},{"omegaRadPerYr":-0.00001144239016674966,"re":-0.0002156563261634957,"im":-0.0002150429303191138},{"omegaRadPerYr":-0.000020175380714993984,"re":-0.0001217849690988656,"im":-0.0001456139226672655},{"omegaRadPerYr":-0.000008831574335573594,"re":-0.00012271331977628462,"im":-0.00013405824655403535},{"omegaRadPerYr":-0.00001510388467496541,"re":-0.00005803376568527162,"im":0.00002617841729566363},{"omegaRadPerYr":-0.000005772310975280442,"re":0.0000186284763652826,"im":-0.000018787231377164656},{"omegaRadPerYr":0.000055789018305747005,"re":-0.000003584390196202557,"im":0.000018771821808602262},{"omegaRadPerYr":0.000050118875830489076,"re":0.000011950781441802792,"im":0.0000022797653890251466},{"omegaRadPerYr":-0.00002707666210632543,"re":0.00000860900240250949,"im":0.000003963441917605542},{"omegaRadPerYr":-0.00013080306359358084,"re":-0.000007760848939991108,"im":-0.0000071759927999063306},{"omegaRadPerYr":-0.000009192797711448383,"re":-0.000006995283248688764,"im":0.000009869457731411796},{"omegaRadPerYr":-0.000014175489628890538,"re":-0.000012703150624760847,"im":0.000007778454242024216},{"omegaRadPerYr":0.0001017879709588662,"re":-0.000004042914508902477,"im":-0.000006404468758645802}],"neptune":[{"omegaRadPerYr":-5.354534864918708e-12,"re":-0.004159722070410082,"im":0.013130987574325645},{"omegaRadPerYr":-0.0000033530981667333895,"re":-0.005314734683414286,"im":-0.002345763320993943},{"omegaRadPerYr":-0.000014507473745238309,"re":-0.0008167258086049919,"im":0.0006798034088892296},{"omegaRadPerYr":-0.000011442679063650532,"re":0.000041036510281751056,"im":0.00004000471131993182},{"omegaRadPerYr":-0.0000027576451599032637,"re":-0.00006149844675699788,"im":-0.000008691318229841067},{"omegaRadPerYr":-0.0001277379853991284,"re":0.000022940819123859223,"im":-0.000030013552771801523},{"omegaRadPerYr":-0.000020173403598083907,"re":0.000017856436332375348,"im":0.000021295077746280004},{"omegaRadPerYr":-0.00000898047932753266,"re":-0.0000018712220224329416,"im":0.00001734263010674452},{"omegaRadPerYr":0.0000022940677597405162,"re":-0.000008135675285680441,"im":0.00001596639991310029},{"omegaRadPerYr":-0.00000577342966650786,"re":-0.000010151270217803843,"im":0.000012347469128448818},{"omegaRadPerYr":-0.000003688694102054736,"re":-0.000013288748719471691,"im":-0.000004967372846951306},{"omegaRadPerYr":-0.00001510336833335311,"re":0.000008447399515316875,"im":-0.0000038128564863716114},{"omegaRadPerYr":0.0000029055858228923875,"re":1.0662959363406667e-8,"im":-0.000006670003949424725},{"omegaRadPerYr":0.00005011796292783657,"re":-0.000005130325158457534,"im":-0.0000010094005026246946},{"omegaRadPerYr":0.00003897837341896782,"re":-0.0000020680050285509657,"im":0.0000027753917603475307}]},"anchorE":0.016702435651957125,"anchorPeriEclipticDeg":462.9179213996576,"anchorInclEclipticDeg":0.00010345820355474172,"anchorAscNodeEclipticDeg":140.29217988414328,"anchorZDotPerYr":[-8.220369999999999e-7,-6.198139999999997e-7],"slopeTaperYears":27943.083333333332});
22
22
 
23
23
  module.exports = { DEEP_MODES_ARTIFACT, DEEP_MODES_ARTIFACT_HASH };
@@ -11,7 +11,7 @@
11
11
  * ▼ ▼
12
12
  * (engine LOD layer, injected) Kepler sidereal month
13
13
  * ├─► synodic month (beat with sidereal year)
14
- * ├─► tropical month (H/13 identity)
14
+ * ├─► tropical month (one equinox turn per T_p(t))
15
15
  * └─► perigee/node precession
16
16
  * (Brouwer–Clemence m² scaling ×
17
17
  * e_E-channel modulation — the
@@ -31,9 +31,12 @@
31
31
  * - `modulation` is the shared moon eccentricity channel's [g/g₀]^s with the
32
32
  * Meeus-EFFECTIVE sensitivities s_ϖ = 2.407 / s_Ω = 1.018 (the physical
33
33
  * pair is 2.479/0.867 after removing the IAU frame term — doc 66 §1).
34
- * - The 'OfDate' cycle/precession family carries the legacy-'ICRF' input
35
- * names but holds OF-DATE observational anchors (Option C+); the
36
- * star-referenced values differ by ∓13 counts per H.
34
+ * - The of-date perigee/node periods are COMPOSITIONS of the inertial chain
35
+ * with the precession of date (the engines' `…OfDateCyclesBetween` count
36
+ * identities N_trop − N_anom and N_drac − N_trop). The former 'OfDate'
37
+ * family here — N·(H(t)/H₀)² counts per anchor unit and period ∝ T_yr/H —
38
+ * was the era device's counter law (doc 99's "Lunar Precession
39
+ * Invariant"); it left at plan 09 step 5c with the per-H counts.
37
40
  * - apsidalMeetsNodal / lunarLeveling existed ONLY in the browser before
38
41
  * this move (the Node scene aliased apsidal-of-date on a cancellation
39
42
  * argument valid for the paired scene nodes only) — the Node engine gains
@@ -52,14 +55,9 @@
52
55
  * gmEarthMoonM3PerS2: number,
53
56
  * massRatioEarthMoon: number,
54
57
  * moonSiderealMonthInputDays: number,
55
- * holisticYearJ2000: number,
56
58
  * meanSiderealYearJ2000Seconds: number,
57
- * nApsidalOfDateJ2000: number,
58
- * nNodalOfDateJ2000: number,
59
59
  * moonApsidalJ2000Seconds: number,
60
60
  * moonNodalJ2000Seconds: number,
61
- * moonApsidalOfDateJ2000Seconds: number,
62
- * moonNodalOfDateJ2000Seconds: number,
63
61
  * moonSiderealMonthJ2000Seconds: number,
64
62
  * sPerigee: number,
65
63
  * sNode: number,
@@ -67,13 +65,18 @@
67
65
  * fns: {
68
66
  * meanLodSecondsAtAge: (tMa: number) => (number | null),
69
67
  * meanSiderealYearSecondsAtAge: (tMa: number) => number,
70
- * meanHAtAge: (tMa: number) => (number | null),
68
+ * precessionPeriodYearsAtAge: (tMa: number) => (number | null),
71
69
  * modulation: (tMa: number, s: number) => number,
72
70
  * distanceMetresAtAge?: (tMa: number) => number,
73
71
  * },
74
72
  * }} deps — fns are the ENGINE'S OWN layer-0/1 evaluators and the shared
75
73
  * eccentricity channel's modulation; constants are the engine's derived
76
74
  * J2000 anchors (both engines derive them from the same JSON).
75
+ * fns.precessionPeriodYearsAtAge is the engine's lunisolar precession period
76
+ * of date T_p(t), Julian years (the composed rate's period; plan 09 step
77
+ * 5c — the tropical month's equinox turn, formerly the counter's 13/H(t),
78
+ * 0.086 % slow: the chain's J2000 tropical month sat 5.85 ms above the IAU
79
+ * input, the 1/T_p form is within 0.1 ms of it).
77
80
  * fns.distanceMetresAtAge, when present, OVERRIDES the internal quartic —
78
81
  * the Driver-1½ regime-aware history (recession-history.cjs); absent, the
79
82
  * internal quartic is the pure twin (bit-identical for t ≤ jointMa).
@@ -82,14 +85,12 @@ function createMoonMonthChain({ constants, fns }) {
82
85
  const {
83
86
  aMoonNowMetres, alpha1PerMa, alpha3PerMa3, alpha4PerMa4,
84
87
  gmEarthMoonM3PerS2, massRatioEarthMoon, moonSiderealMonthInputDays,
85
- holisticYearJ2000, meanSiderealYearJ2000Seconds,
86
- nApsidalOfDateJ2000, nNodalOfDateJ2000,
88
+ meanSiderealYearJ2000Seconds,
87
89
  moonApsidalJ2000Seconds, moonNodalJ2000Seconds,
88
- moonApsidalOfDateJ2000Seconds, moonNodalOfDateJ2000Seconds,
89
90
  moonSiderealMonthJ2000Seconds,
90
91
  sPerigee, sNode,
91
92
  } = constants;
92
- const { meanLodSecondsAtAge, meanSiderealYearSecondsAtAge, meanHAtAge, modulation } = fns;
93
+ const { meanLodSecondsAtAge, meanSiderealYearSecondsAtAge, precessionPeriodYearsAtAge, modulation } = fns;
93
94
 
94
95
  /** Farhat α₁/α₃/α₄ polynomial — Earth–Moon distance in metres at age t_Ma.
95
96
  * @param {number} tMa @returns {number} */
@@ -140,55 +141,22 @@ function createMoonMonthChain({ constants, fns }) {
140
141
  return tSm * tYr / (tYr - tSm);
141
142
  }
142
143
 
143
- /** Tropical month in seconds (equinox-referenced, the H/13 identity).
144
- * @param {number} tMa @returns {number | null} */
144
+ /** Tropical month in seconds (equinox-referenced): the sidereal month less
145
+ * the equinox's own motion over one month — one turn per the precession
146
+ * period of date T_p(t). (Plan 09 step 5c: formerly 13 turns per the
147
+ * counter H(t), 0.086 % slow.) @param {number} tMa @returns {number | null} */
145
148
  function tropicalMonthSecondsAtAge(tMa) {
146
149
  const tSm = siderealMonthSecondsAtAge(tMa);
147
150
  if (tSm === null) return null;
148
151
  const tYr = meanSiderealYearSecondsAtAge(tMa);
149
- const hT = meanHAtAge(tMa);
150
- return tSm * (1 - 13 * tSm / (/** @type {number} */ (hT) * tYr));
151
- }
152
-
153
- /** Apsidal cycles per H (of-date convention; legacy-'ICRF' input name):
154
- * N × (H/H₀)², real-valued. @param {number} tMa @returns {number | null} */
155
- function apsidalCyclesOfDateAtAge(tMa) {
156
- const hT = meanHAtAge(tMa);
157
- if (hT === null) return null;
158
- return nApsidalOfDateJ2000 * Math.pow(hT / holisticYearJ2000, 2);
159
- }
160
-
161
- /** @param {number} tMa @returns {number | null} */
162
- function nodalCyclesOfDateAtAge(tMa) {
163
- const hT = meanHAtAge(tMa);
164
- if (hT === null) return null;
165
- return nNodalOfDateJ2000 * Math.pow(hT / holisticYearJ2000, 2);
152
+ const tP = precessionPeriodYearsAtAge(tMa);
153
+ return tSm * (1 - tSm / (/** @type {number} */ (tP) * tYr));
166
154
  }
167
155
 
168
- /** The of-date period from the H² counter: N ∝ H² and period = H·T_yr/N
169
- * ⇒ period ∝ T_yr / H, anchored on the engine's own of-date J2000 period
170
- * (the t_Ma === 0 fast path returns it EXACTLY, as the star-referenced
171
- * anchors do). UNIT FIX: the earlier form rebuilt the period as
172
- * H × sidereal-year seconds / N while N was counted in mean-SOLAR-year
173
- * days — the sidereal/solar ratio 1.0000388 put the J2000 perigee cycle
174
- * 2.9 h and the node 6.2 h above the anchors (found by the Formula
175
- * Verification Moon panels against Meeus). The year RATIO carries the
176
- * evolution; the anchor carries the unit. @param {number} tMa
177
- * @returns {number | null} */
178
- function apsidalPrecessionSecondsOfDateAtAge(tMa) {
179
- if (tMa === 0) return moonApsidalOfDateJ2000Seconds;
180
- const hT = meanHAtAge(tMa);
181
- if (hT === null) return null;
182
- return moonApsidalOfDateJ2000Seconds * (meanSiderealYearSecondsAtAge(tMa) / meanSiderealYearJ2000Seconds) * (holisticYearJ2000 / hT);
183
- }
184
-
185
- /** @param {number} tMa @returns {number | null} */
186
- function nodalPrecessionSecondsOfDateAtAge(tMa) {
187
- if (tMa === 0) return moonNodalOfDateJ2000Seconds;
188
- const hT = meanHAtAge(tMa);
189
- if (hT === null) return null;
190
- return moonNodalOfDateJ2000Seconds * (meanSiderealYearSecondsAtAge(tMa) / meanSiderealYearJ2000Seconds) * (holisticYearJ2000 / hT);
191
- }
156
+ // (Plan 09 step 5c: the H² of-date family — apsidal/nodal "cycles per H"
157
+ // N·(H(t)/H₀)² and the of-date periods ∝ T_yr/H — is deleted with the per-H
158
+ // counts. The of-date perigee and node of date are the engines' count
159
+ // compositions of this chain's inertial periods with the tropical month.)
192
160
 
193
161
  /** Perigee precession period in seconds — Brouwer–Clemence m² scaling ×
194
162
  * e_E-channel modulation (the factored law: period = invariant mean /
@@ -256,8 +224,6 @@ function createMoonMonthChain({ constants, fns }) {
256
224
  distanceMetresAtAge, distanceKmAtAge, solarDeltaAKmAtAge,
257
225
  distanceCorrectedKmAtAge, siderealMonthSecondsAtAge,
258
226
  synodicMonthSecondsAtAge, tropicalMonthSecondsAtAge,
259
- apsidalCyclesOfDateAtAge, nodalCyclesOfDateAtAge,
260
- apsidalPrecessionSecondsOfDateAtAge, nodalPrecessionSecondsOfDateAtAge,
261
227
  perigeePrecessionSecondsAtAge, nodePrecessionSecondsAtAge,
262
228
  anomalisticMonthSecondsAtAge, nodalMonthSecondsAtAge,
263
229
  apsidalMeetsNodalSecondsAtAge, lunarLevelingSecondsAtAge,