@essrt/physics 23.3.2 → 23.6.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 (57) hide show
  1. package/README.md +6 -1
  2. package/package.json +2 -2
  3. package/src/constants/coefficients.d.ts +5 -1
  4. package/src/constants/coefficients.js +3 -2
  5. package/src/constants/generated.d.ts +2 -3
  6. package/src/constants/generated.js +3 -4
  7. package/src/constants/units.cjs +4 -1
  8. package/src/deltat/deep-time.cjs +37 -72
  9. package/src/index.js +35 -48
  10. package/src/model/cardinal-instants.js +101 -0
  11. package/src/model/context.js +54 -0
  12. package/src/model/deep-time-chain.js +79 -0
  13. package/src/model/delta-t.js +38 -0
  14. package/src/model/derived-constants.js +58 -0
  15. package/src/model/earth-scalars.js +47 -0
  16. package/src/model/inv-plane-elements.js +56 -0
  17. package/src/model/lunar-theory.js +216 -0
  18. package/src/model/moon-epoch.js +28 -0
  19. package/src/model/one-source-movement.js +192 -0
  20. package/src/model/planet-elements-of-date.js +61 -0
  21. package/src/model/planet-records.js +63 -0
  22. package/src/model/planet-spin-channel.js +41 -0
  23. package/src/model/published-periods.js +38 -0
  24. package/src/model/sun-and-eclipses.js +199 -0
  25. package/src/model/surface.js +330 -0
  26. package/src/model/time-axis.js +24 -0
  27. package/src/model/year-day-lengths.js +42 -0
  28. package/src/model.js +62 -1612
  29. package/src/moon/arguments.cjs +27 -43
  30. package/src/planets/chain-artifact.js +2 -2
  31. package/src/planets/keplerian-chain.cjs +1 -1
  32. package/types/constants/coefficients.d.ts +5 -1
  33. package/types/constants/generated.d.ts +2 -3
  34. package/types/constants/units.d.cts +3 -0
  35. package/types/deltat/deep-time.d.cts +18 -24
  36. package/types/index.d.ts +1 -1
  37. package/types/model/cardinal-instants.d.ts +14 -0
  38. package/types/model/context.d.ts +87 -0
  39. package/types/model/deep-time-chain.d.ts +288 -0
  40. package/types/model/delta-t.d.ts +11 -0
  41. package/types/model/derived-constants.d.ts +25 -0
  42. package/types/model/earth-scalars.d.ts +14 -0
  43. package/types/model/inv-plane-elements.d.ts +6 -0
  44. package/types/model/lunar-theory.d.ts +72 -0
  45. package/types/model/moon-epoch.d.ts +10 -0
  46. package/types/model/one-source-movement.d.ts +74 -0
  47. package/types/model/planet-elements-of-date.d.ts +9 -0
  48. package/types/model/planet-records.d.ts +7 -0
  49. package/types/model/planet-spin-channel.d.ts +29 -0
  50. package/types/model/published-periods.d.ts +7 -0
  51. package/types/model/sun-and-eclipses.d.ts +52 -0
  52. package/types/model/surface.d.ts +279 -0
  53. package/types/model/time-axis.d.ts +12 -0
  54. package/types/model/year-day-lengths.d.ts +8 -0
  55. package/types/model.d.ts +9 -81
  56. package/types/moon/arguments.d.cts +5 -11
  57. package/types/planets/keplerian-chain.d.cts +3 -1
@@ -27,14 +27,14 @@ export type DeepTimeLodConstants = {
27
27
  */
28
28
  alpha1PerMa: number;
29
29
  /**
30
- * - ω₀, the J2000 day length (the SI day since plan 09; identifier kept)
30
+ * - ω₀, the J2000 day length (the SI day; identifier kept)
31
31
  */
32
32
  lodNowH13Seconds: number;
33
33
  meanSiderealYearJ2000Seconds: number;
34
34
  solarMassLossFracPerYear: number;
35
35
  /**
36
36
  * - f_S, the solar fraction of the J2000
37
- * precession torque (derive-params) — the unit H(t) = 13·T_p,composed needs it
37
+ * precession torque (derive-params) — the composed precession rate needs it
38
38
  */
39
39
  precessionSolarShareJ2000: number;
40
40
  };
@@ -61,10 +61,9 @@ export type DeepTimeLodDeps = {
61
61
  */
62
62
  swingLodRateAt: (year: number) => number;
63
63
  /**
64
- * - the model's DERIVED
65
- * J2000 axial precession period: the certified year-length laws' beat at
66
- * 2000, sid/(sid − trop) ≈ 25,771.4 yr (plan 06 S5 — one J2000 precession
67
- * reading; the same anchor the hybrid obliquity self-anchors on). Read
64
+ * - the model's J2000 axial
65
+ * precession period, 1,296,000/p_A = 25,771.575 yr (the IAU 2006 general
66
+ * precession; the same anchor the hybrid obliquity self-anchors on). Read
68
67
  * LAZILY on the first composed-rate use, never at construction: every
69
68
  * runtime's year laws read THIS factory's bases.
70
69
  */
@@ -74,16 +73,14 @@ export type DeepTimeLodDeps = {
74
73
  * plane's nodal regression on the invariable plane, 1,296,000/|s₃| with s₃
75
74
  * the dominant ζ mode of the banked deep secular modes (≈ 68,751 yr). An
76
75
  * ORBITAL quantity (μ-tier: it does not follow Earth's spin), the reference
77
- * the solar day's "ecliptic missing motion" term rides (plan 06 T2 item —
78
- * formerly the spin unit's H/5, 67,063 yr, 2.5 % off and scaling with the
79
- * spin at deep time). Lazy, like the precession anchor.
76
+ * the solar day's "ecliptic missing motion" term rides. Lazy, like the
77
+ * precession anchor.
80
78
  */
81
79
  nodalPeriodYearsFn: () => number;
82
80
  /**
83
81
  * - OPTIONAL time-dependent
84
82
  * Earth-Moon angular momentum. Absent → the J2000 constant: conservation
85
- * (plan 12 option A — the Driver-1½ solar-channel budget is deleted;
86
- * measured: conservation on the cited history reproduces Farhat's own LOD
83
+ * (measured: conservation on the cited history reproduces Farhat's own LOD
87
84
  * to 0.01 h at 100 Ma, 0.14 h at 2.46 Ga).
88
85
  */
89
86
  lEmAtAgeKgm2S?: ((tMa: number) => number) | undefined;
@@ -98,7 +95,7 @@ export type DeepTimeLodDeps = {
98
95
  * -
99
96
  * OPTIONAL cos ε̄(t)/cos ε̄(0) of the cited mean obliquity (earth/mean-
100
97
  * obliquity-history) — the factor the precession RATE of date carries on the
101
- * constant (plan 12 §8 option (a)); absent → 1, the constant alone, bit-identical.
98
+ * constant; absent → 1, the constant alone, bit-identical.
102
99
  */
103
100
  meanObliquityCosRatioAtAge?: ((tMa: number) => number | null) | undefined;
104
101
  };
@@ -113,11 +110,11 @@ export type DeepTimeLodDeps = {
113
110
  * @property {number} aLockMetres - tidal-lock distance (LOD denominator → 0)
114
111
  * @property {number} aMoonNowMetres - Farhat polynomial anchor
115
112
  * @property {number} alpha1PerMa - the LLR recession rate (the J2000 slope of the cited history)
116
- * @property {number} lodNowH13Seconds - ω₀, the J2000 day length (the SI day since plan 09; identifier kept)
113
+ * @property {number} lodNowH13Seconds - ω₀, the J2000 day length (the SI day; identifier kept)
117
114
  * @property {number} meanSiderealYearJ2000Seconds
118
115
  * @property {number} solarMassLossFracPerYear
119
116
  * @property {number} precessionSolarShareJ2000 - f_S, the solar fraction of the J2000
120
- * precession torque (derive-params) — the unit H(t) = 13·T_p,composed needs it
117
+ * precession torque (derive-params) — the composed precession rate needs it
121
118
  */
122
119
  /**
123
120
  * @typedef {Object} DeepTimeLodDeps
@@ -127,23 +124,20 @@ export type DeepTimeLodDeps = {
127
124
  * @property {(year: number) => number} cycleLodSumAt - gated δLOD sum (incl. swing)
128
125
  * @property {(year: number) => number} swingLodAt - gated swing δLOD alone
129
126
  * @property {(year: number) => number} swingLodRateAt - gated analytic swing rate
130
- * @property {() => number} precessionPeriodJ2000YearsFn - the model's DERIVED
131
- * J2000 axial precession period: the certified year-length laws' beat at
132
- * 2000, sid/(sid − trop) ≈ 25,771.4 yr (plan 06 S5 — one J2000 precession
133
- * reading; the same anchor the hybrid obliquity self-anchors on). Read
127
+ * @property {() => number} precessionPeriodJ2000YearsFn - the model's J2000 axial
128
+ * precession period, 1,296,000/p_A = 25,771.575 yr (the IAU 2006 general
129
+ * precession; the same anchor the hybrid obliquity self-anchors on). Read
134
130
  * LAZILY on the first composed-rate use, never at construction: every
135
131
  * runtime's year laws read THIS factory's bases.
136
132
  * @property {() => number} nodalPeriodYearsFn - the period of Earth's orbit
137
133
  * plane's nodal regression on the invariable plane, 1,296,000/|s₃| with s₃
138
134
  * the dominant ζ mode of the banked deep secular modes (≈ 68,751 yr). An
139
135
  * ORBITAL quantity (μ-tier: it does not follow Earth's spin), the reference
140
- * the solar day's "ecliptic missing motion" term rides (plan 06 T2 item —
141
- * formerly the spin unit's H/5, 67,063 yr, 2.5 % off and scaling with the
142
- * spin at deep time). Lazy, like the precession anchor.
136
+ * the solar day's "ecliptic missing motion" term rides. Lazy, like the
137
+ * precession anchor.
143
138
  * @property {(tMa: number) => number} [lEmAtAgeKgm2S] - OPTIONAL time-dependent
144
139
  * Earth-Moon angular momentum. Absent → the J2000 constant: conservation
145
- * (plan 12 option A — the Driver-1½ solar-channel budget is deleted;
146
- * measured: conservation on the cited history reproduces Farhat's own LOD
140
+ * (measured: conservation on the cited history reproduces Farhat's own LOD
147
141
  * to 0.01 h at 100 Ma, 0.14 h at 2.46 Ga).
148
142
  * @property {(tMa: number) => number|null} [moonDistanceSlopeMetresPerMaAtAge] -
149
143
  * OPTIONAL analytic slope of the distance history (metres per Ma, positive
@@ -152,7 +146,7 @@ export type DeepTimeLodDeps = {
152
146
  * @property {(tMa: number) => number|null} [meanObliquityCosRatioAtAge] -
153
147
  * OPTIONAL cos ε̄(t)/cos ε̄(0) of the cited mean obliquity (earth/mean-
154
148
  * obliquity-history) — the factor the precession RATE of date carries on the
155
- * constant (plan 12 §8 option (a)); absent → 1, the constant alone, bit-identical.
149
+ * constant; absent → 1, the constant alone, bit-identical.
156
150
  */
157
151
  /** @param {DeepTimeLodDeps} deps */
158
152
  export function createDeepTimeLod(deps: DeepTimeLodDeps): {
package/types/index.d.ts CHANGED
@@ -66,7 +66,7 @@ export { computeMassChainJ2000, computeMoonPeriodsJ2000 } from "./earth/mass-cha
66
66
  export { SECONDS_PER_DAY, DAYS_PER_JULIAN_YEAR, JULIAN_CENTURY_DAYS, SECONDS_PER_JULIAN_YEAR } from "./constants/units.cjs";
67
67
  export { computeEarthFrameOfDate, solveWheelAngleForLongitude, computeSceneWorldFrameJ2000, SCENE_EQUINOX_VIEW_AZIMUTH_DEG } from "./earth/frame-of-date.cjs";
68
68
  export { derivePlanetGeometry, scaffoldOrbitInputs } from "./planets/geometry.cjs";
69
- export { buildPlanetChainsFromArtifactData, computePlanetElementsAtYear, computeHeliocentricEclipticFromElements, computePoissonArgRad, computeOsculatingElements, solveKeplerRad, computeApsidalSecularDegPerYr, ANCHOR_EPOCH_YEAR, ANCHOR_EPOCH_JD } from "./planets/keplerian-chain.cjs";
69
+ export { buildPlanetChainsFromArtifactData, computePlanetElementsAtYear, computeHeliocentricEclipticFromElements, computePoissonArgRad, computeOsculatingElements, solveKeplerRad, computeApsidalSecularDegPerYr, computeApsidalSecularDegPerYr as computeApsidalTangentDegPerYr, ANCHOR_EPOCH_YEAR, ANCHOR_EPOCH_JD } from "./planets/keplerian-chain.cjs";
70
70
  export { computeEquatorNodeOriginSFrameDeg, convertNodeSFrameToEquatorOriginDeg } from "./planets/inv-plane-frame.cjs";
71
71
  export { computePlanetPrecessionConstant, createPlanetSpinChannel, createPlanetSpinChannelFromArtifacts, computeObliquityJ2000Deg } from "./planets/spin-channel.cjs";
72
72
  export { CHAIN_ARTIFACT, CHAIN_ARTIFACT_HASH } from "./planets/chain-artifact.js";
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Cardinal instants — the apparent Sun (completed, aberrated, nutated) and the Newton crossings.
3
+ *
4
+ * One slice of `assembleModel` (../model.js): receives the context the earlier slices built, returns the bindings the later ones read.
5
+ */
6
+ /** @param {import('./published-periods.js').Ctx} ctx @returns the bindings the later slices read */
7
+ export function assembleCardinalInstants(ctx: import("./published-periods.js").Ctx): {
8
+ cardinalCrossingJdUT: (year: number, type: string) => number;
9
+ cardinalCrossingNearJdUT: (jdSeedUT: number, type: string) => number;
10
+ cardinalTargetDeg: (type: string) => number;
11
+ sunAberrationArcsecAt: (year: number) => number;
12
+ sunApparentLonDegAtJdUT: (jdUT: number) => number;
13
+ };
14
+ export type Ctx = import("./published-periods.js").Ctx & ReturnType<typeof assembleCardinalInstants>;
@@ -0,0 +1,87 @@
1
+ /**
2
+ * RESEARCH OVERRIDES for Earth's orbit laws (doc 109 §7): an alternative e(t), de/dt(t) and
3
+ * ϖ_of-date(t) flow through every consumer (the eclipse Sun, the Moon's E-factor, the cardinal
4
+ * points) exactly as the shipped laws do. `{}` = the shipped laws. Not a counterfactual in the §2d
5
+ * sense (no hash change) — callers must say when they used it; the generators refuse to --write
6
+ * under an override.
7
+ */
8
+ export type Laws = {
9
+ eccentricityAt?: (year: number) => number;
10
+ eccentricityRateAt?: (year: number) => number;
11
+ perihelionLongitudeDegAt?: (year: number) => number;
12
+ };
13
+ /**
14
+ * `giaEllipticityOfDate: false` builds the one-source history WITHOUT the J₂(t)/J₂₀ factor of date
15
+ * (the ice-driven GIA channel, which rides the climate formula's own post-MPT layer): the orbital
16
+ * FORCING alone. The T1 exporter derives the climate lines' obliquity rate on it, so the lines
17
+ * cannot depend on their own fit (v23.0; measured 3e-5 of the rate, 2–3 yr of period). Default true =
18
+ * the shipped physics.
19
+ */
20
+ export type Options = {
21
+ giaEllipticityOfDate?: boolean;
22
+ };
23
+ /**
24
+ * The forward bindings — what an early slice reads at call time from a later one. Typed by the
25
+ * members actually read, so the composer's assignment is checked against each owner's surface.
26
+ */
27
+ export type LateBindings = {
28
+ /**
29
+ * owner: year-day-lengths — read by deep-time-chain
30
+ */
31
+ certifiedAxialPrecessionJ2000Years: () => number;
32
+ /**
33
+ * owner: one-source-movement — read by deep-time-chain and earth-scalars
34
+ */
35
+ oneSourceM: {
36
+ epsAt(year: number): number;
37
+ eAt(year: number): number;
38
+ periOfDateDegAt(year: number): number;
39
+ precessionOfDateFactorsAt(year: number): {
40
+ solarTorque: number;
41
+ ellipticity: number;
42
+ };
43
+ axialPrecessionYearsLunisolarJ2000: number;
44
+ };
45
+ /**
46
+ * owner: one-source-movement — read by year-day-lengths
47
+ */
48
+ yearLengthsM: {
49
+ anomalisticYearSecondsAtYear(year: number): number;
50
+ };
51
+ /**
52
+ * owner: sun-and-eclipses — read by lunar-theory (the arguments' Sun)
53
+ */
54
+ sunMeanLongitudeDegAt: (year: number) => number;
55
+ /**
56
+ * owner: published-periods — read by lunar-theory (the dynamical rate of date)
57
+ */
58
+ publishedAxialPrecessionYearsAtYear: (year: number) => number;
59
+ /**
60
+ * owner: published-periods — read by year-day-lengths
61
+ */
62
+ publishedSiderealYearSecondsAtYear: (year: number) => number;
63
+ /**
64
+ * owner: cardinal-instants — read by sun-and-eclipses (the besselian's apparent Sun)
65
+ */
66
+ sunAberrationArcsecAt: (year: number) => number;
67
+ };
68
+ /**
69
+ * The composer's inputs — the first slice's context.
70
+ */
71
+ export type ModelInputs = {
72
+ /**
73
+ * the frozen constants context
74
+ */
75
+ C: Readonly<Record<string, any>>;
76
+ /**
77
+ * the fitted coefficients
78
+ */
79
+ F: Readonly<Record<string, any>>;
80
+ laws: Laws;
81
+ /**
82
+ * the governed N-body secular series (the API/Node path; null for the bare package)
83
+ */
84
+ secularSeriesArtifact: any;
85
+ options: Options;
86
+ late: LateBindings;
87
+ };
@@ -0,0 +1,288 @@
1
+ /** @param {import('./derived-constants.js').Ctx} ctx @returns the bindings the later slices read */
2
+ export function assembleDeepTimeChain(ctx: import("./derived-constants.js").Ctx): {
3
+ EPOCH_PARAMS: import("../layer0/index.js").EpochParams;
4
+ alphaGia: {
5
+ alphaAt: (year: number) => number;
6
+ j2RatioAt: (year: number) => number;
7
+ laggedL1PermilAt: (year: number) => number;
8
+ kPerPermille: number;
9
+ relaxationKyr: number;
10
+ laggedL1Terms: Array<{
11
+ period_kyr: number;
12
+ a: number;
13
+ b: number;
14
+ }>;
15
+ };
16
+ chain: Readonly<{
17
+ meanSolarYearDays: number;
18
+ meanSiderealYearDays: any;
19
+ meanSiderealYearSeconds: number;
20
+ meanLengthOfDay: any;
21
+ meanTropicalYearJ2000Seconds: number;
22
+ siTropicalYearDays: number;
23
+ axialPrecessionJ2000Years: number;
24
+ axialPrecessionJ2000Days: number;
25
+ G_CONSTANT: any;
26
+ MASS_RATIO_EARTH_MOON: any;
27
+ currentAUDistance: any;
28
+ earthMoiFactorJ2000: any;
29
+ moonDistanceKm: any;
30
+ moonSiderealMonthInput: any;
31
+ moonOrbitalShift: number;
32
+ moonDistanceCorrected: number;
33
+ GM_EARTH_MOON_SYSTEM: number;
34
+ GM_EARTH_ALONE: number;
35
+ GM_MOON_ALONE: number;
36
+ GM_SUN_PLUS_EARTH: number;
37
+ GM_SUN: number;
38
+ M_SUN: number;
39
+ moonApsidalJ2000Seconds: number;
40
+ moonNodalJ2000Seconds: number;
41
+ moonSiderealMonthJ2000Seconds: number;
42
+ moonPeriods: {
43
+ moonApsidalPrecessionDaysEarth: number;
44
+ moonNodalPrecessionDaysEarth: number;
45
+ moonApsidalJ2000Seconds: number;
46
+ moonNodalJ2000Seconds: number;
47
+ moonSiderealMonthJ2000Seconds: number;
48
+ moonAnomalisticMonthDays: number;
49
+ moonNodalMonthDays: number;
50
+ moonSynodicMonthDays: number;
51
+ moonTropicalMonthDays: number;
52
+ moonFullMoonCycleEarthDays: number;
53
+ moonFullMoonCycleICRFDays: number;
54
+ moonApsidalMeetsNodalDays: number;
55
+ moonLunarLevelingCycleDays: number;
56
+ moonDraconicYearICRFDays: number;
57
+ moonDraconicYearEarthDays: number;
58
+ };
59
+ certifiedAxialPrecessionJ2000Years: () => number;
60
+ precessionRateJ2000ArcsecPerYr: () => number;
61
+ EPOCH_PARAMS: import("../layer0/index.js").EpochParams;
62
+ ageAnchorYear: any;
63
+ alphaGia: {
64
+ alphaAt: (year: number) => number;
65
+ j2RatioAt: (year: number) => number;
66
+ laggedL1PermilAt: (year: number) => number;
67
+ kPerPermille: number;
68
+ relaxationKyr: number;
69
+ laggedL1Terms: Array<{
70
+ period_kyr: number;
71
+ a: number;
72
+ b: number;
73
+ }>;
74
+ };
75
+ earthMoiFactorAtAge: (tMa: number) => number;
76
+ withLatticeAlpha: (build: () => void) => void;
77
+ j2RatioAtYear: (year: number) => number;
78
+ iEarthAtAge: (tMa: number) => number;
79
+ recession: {
80
+ distanceMetresAtAge: (tMa: number) => number | null;
81
+ slopeMetresPerMaAtAge: (tMa: number) => number | null;
82
+ ratioAtAge: (tMa: number) => number | null;
83
+ spanMa: number;
84
+ };
85
+ meanObliquity: {
86
+ meanObliquityDegAtAge: (tMa: number) => number | null;
87
+ cosRatioAtAge: (tMa: number) => number | null;
88
+ meanObliquityJ2000Deg: number;
89
+ spanMa: number;
90
+ };
91
+ dtCycles: {
92
+ taperAt: (year: number) => number;
93
+ taperDerivativeAt: (year: number) => number;
94
+ cycleDeltaTSecondsAt: (cycleKey: string, year: number) => number;
95
+ cycleLodSecondsAt: (cycleKey: string, year: number) => number;
96
+ swingDeltaTSecondsAt: (year: number) => number;
97
+ swingLodSecondsAt: (year: number) => number;
98
+ swingLodRateAt: (year: number) => number;
99
+ };
100
+ s3ArcsecPerYr: number;
101
+ deepLod: {
102
+ lodSecondsAtAge: (t_Ma: number) => number | null;
103
+ lodSecondsAtAgeWithAlpha: (t_Ma: number, alpha: number) => number | null;
104
+ lodHoursAtAge: (t_Ma: number) => number | null;
105
+ lunisolarPrecessionRateArcsecPerYrAtAge: (t_Ma: number) => number | null;
106
+ lunisolarPrecessionPeriodYearsAtAge: (t_Ma: number) => number | null;
107
+ lunisolarTorqueRateArcsecPerYrAtAge: (t_Ma: number) => number | null;
108
+ lunisolarTorquePeriodYearsAtAge: (t_Ma: number) => number | null;
109
+ precessionObliquityFactorAtAge: (t_Ma: number) => number | null;
110
+ lunarTorqueFactorAtAge: (tMa: number) => (number | null);
111
+ precessionTorqueTermAtAge: (tMa: number) => (number | null);
112
+ siderealYearSecondsAtAge: (t_Ma: number) => number;
113
+ tropicalYearSecondsAtAge: (t_Ma: number) => number;
114
+ tropicalYearDaysAtAge: (t_Ma: number) => number | null;
115
+ tropicalYearSecondsFromLod: (t_Ma: number, LOD_s: number | null) => number;
116
+ eclipticLodCorrectionSecondsAtAge: (t_Ma: number) => number | null;
117
+ yearInDaysAtAge: (t_Ma: number) => number | null;
118
+ deltaTRawSecondsAtAge: (t_Ma: number) => number;
119
+ lodSecondsWithCorrectionsAtAge: (t_Ma: number) => number | null;
120
+ dLodDtDecompositionAtAge: (t_Ma: number) => {
121
+ tidal: number | null;
122
+ gia: number | null;
123
+ stack: number | null;
124
+ resonator: number | null;
125
+ net_L2: number | null;
126
+ net_L3: number | null;
127
+ net_L4: number | null;
128
+ };
129
+ };
130
+ l0: import("../layer0/index.js").EpochPrimitives;
131
+ deepEcc: {
132
+ eccAt: (tYr: number) => number;
133
+ eccRateAt: (tYr: number) => number;
134
+ modulation: (tMa: number, s: number) => number;
135
+ channelIntegral: (T: number, s: number) => number;
136
+ eFactorAt: (tYr: number) => number;
137
+ e0: number;
138
+ g0: number;
139
+ };
140
+ eCompModulation: (tMa: number, s: number) => number;
141
+ moonChain: {
142
+ distanceMetresAtAge: (tMa: number) => number | null;
143
+ distanceKmAtAge: (tMa: number) => number | null;
144
+ solarDeltaAKmAtAge: (tMa: number, aApparentKm: number) => number | null;
145
+ distanceCorrectedKmAtAge: (tMa: number) => number | null;
146
+ siderealMonthSecondsAtAge: (tMa: number) => number | null;
147
+ synodicMonthSecondsAtAge: (tMa: number) => number | null;
148
+ tropicalMonthSecondsAtAge: (tMa: number) => number | null;
149
+ perigeePrecessionSecondsAtAge: (tMa: number) => number | null;
150
+ nodePrecessionSecondsAtAge: (tMa: number) => number | null;
151
+ anomalisticMonthSecondsAtAge: (tMa: number) => number | null;
152
+ nodalMonthSecondsAtAge: (tMa: number) => number | null;
153
+ apsidalMeetsNodalSecondsAtAge: (tMa: number) => number | null;
154
+ lunarLevelingSecondsAtAge: (tMa: number) => number | null;
155
+ };
156
+ meanMoonDistanceMetresAtAge: (tMa: number) => number | null;
157
+ meanMoonDistanceAtAge: (tMa: number) => number | null;
158
+ meanLodSecondsAtAge: (tMa: number) => number | null;
159
+ meanLodHoursAtAge: (t_Ma: number) => number | null;
160
+ meanLunisolarPrecessionRateArcsecPerYrAtAge: (t_Ma: number) => number | null;
161
+ meanLunisolarPrecessionPeriodYearsAtAge: (tMa: number) => number | null;
162
+ meanLunisolarTorqueRateArcsecPerYrAtAge: (t_Ma: number) => number | null;
163
+ meanLunisolarTorquePeriodYearsAtAge: (t_Ma: number) => number | null;
164
+ precessionObliquityFactorAtAge: (t_Ma: number) => number | null;
165
+ meanObliquityCitedDegAtAge: (tMa: number) => number | null;
166
+ meanAuAtAge: (tMa: number) => number;
167
+ meanSiderealYearSecondsAtAge: (tMa: number) => number;
168
+ meanTropicalYearSecondsAtAge: (t_Ma: number) => number;
169
+ meanTropicalYearDaysAtAge: (t_Ma: number) => number | null;
170
+ meanYearInDaysAtAge: (t_Ma: number) => number | null;
171
+ meanDeltaTSecondsAtAge: (tMa: number) => number;
172
+ bondCycleDeltaTCorrection: (year: number) => number;
173
+ hallstattCycleDeltaTCorrection: (year: number) => number;
174
+ jose5CycleDeltaTCorrection: (year: number) => number;
175
+ jose4CycleDeltaTCorrection: (year: number) => number;
176
+ bondCycleLodCorrection: (year: number) => number;
177
+ hallstattCycleLodCorrection: (year: number) => number;
178
+ jose5CycleLodCorrection: (year: number) => number;
179
+ jose4CycleLodCorrection: (year: number) => number;
180
+ dtCycleLodCorrectionSum: (year: number) => number;
181
+ resonatorSwingDeltaTCorrection: (year: number) => number;
182
+ resonatorSwingLodCorrection: (year: number) => number;
183
+ resonatorSwingLodRate: (year: number) => number;
184
+ meanLodSecondsWithCorrectionsAtAge: (t_Ma: number) => number | null;
185
+ dLodDtDecompositionAtAge: (t_Ma: number) => {
186
+ tidal: number | null;
187
+ gia: number | null;
188
+ stack: number | null;
189
+ resonator: number | null;
190
+ net_L2: number | null;
191
+ net_L3: number | null;
192
+ net_L4: number | null;
193
+ };
194
+ h5Correction: (year: number) => number;
195
+ computeLodKinematicSecondsAtEpoch: (year: number) => number;
196
+ computeLodRealSecondsAtEpoch: (year: number) => number;
197
+ meanSolarDeltaAAtAge: (tMa: number, aApparentKm: number) => number | null;
198
+ meanMoonDistanceCorrectedAtAge: (tMa: number) => number | null;
199
+ meanMoonSiderealMonthAtAge: (tMa: number) => number | null;
200
+ meanSynodicMonthAtAge: (tMa: number) => number | null;
201
+ meanTropicalMonthAtAge: (tMa: number) => number | null;
202
+ meanLunarPerigeePrecessionAtAge: (tMa: number) => number | null;
203
+ meanLunarNodePrecessionAtAge: (tMa: number) => number | null;
204
+ meanAnomalisticMonthAtAge: (tMa: number) => number | null;
205
+ meanNodalMonthAtAge: (tMa: number) => number | null;
206
+ meanApsidalMeetsNodalAtAge: (tMa: number) => number | null;
207
+ meanLunarLevelingCycleAtAge: (tMa: number) => number | null;
208
+ meanStellarDayAtAge: (tMa: number) => number | null;
209
+ meanStellarDayProjectedAtAge: (tMa: number) => number | null;
210
+ meanSiderealDayAtAge: (tMa: number) => number | null;
211
+ meanPlanetSemiMajorAxisAtAge: (planetName: string, tMa: number) => number | null;
212
+ meanPlanetOrbitalPeriodAtAge: (tMa: number, periodJ2000Seconds: number) => number;
213
+ meanEarthPlanetSynodicPeriodAtAge: (tMa: number, periodJ2000Seconds: number) => number;
214
+ }>;
215
+ deepEcc: {
216
+ eccAt: (tYr: number) => number;
217
+ eccRateAt: (tYr: number) => number;
218
+ modulation: (tMa: number, s: number) => number;
219
+ channelIntegral: (T: number, s: number) => number;
220
+ eFactorAt: (tYr: number) => number;
221
+ e0: number;
222
+ g0: number;
223
+ };
224
+ deepLod: {
225
+ lodSecondsAtAge: (t_Ma: number) => number | null;
226
+ lodSecondsAtAgeWithAlpha: (t_Ma: number, alpha: number) => number | null;
227
+ lodHoursAtAge: (t_Ma: number) => number | null;
228
+ lunisolarPrecessionRateArcsecPerYrAtAge: (t_Ma: number) => number | null;
229
+ lunisolarPrecessionPeriodYearsAtAge: (t_Ma: number) => number | null;
230
+ lunisolarTorqueRateArcsecPerYrAtAge: (t_Ma: number) => number | null;
231
+ lunisolarTorquePeriodYearsAtAge: (t_Ma: number) => number | null;
232
+ precessionObliquityFactorAtAge: (t_Ma: number) => number | null;
233
+ lunarTorqueFactorAtAge: (tMa: number) => (number | null);
234
+ precessionTorqueTermAtAge: (tMa: number) => (number | null);
235
+ siderealYearSecondsAtAge: (t_Ma: number) => number;
236
+ tropicalYearSecondsAtAge: (t_Ma: number) => number;
237
+ tropicalYearDaysAtAge: (t_Ma: number) => number | null;
238
+ tropicalYearSecondsFromLod: (t_Ma: number, LOD_s: number | null) => number;
239
+ eclipticLodCorrectionSecondsAtAge: (t_Ma: number) => number | null;
240
+ yearInDaysAtAge: (t_Ma: number) => number | null;
241
+ deltaTRawSecondsAtAge: (t_Ma: number) => number;
242
+ lodSecondsWithCorrectionsAtAge: (t_Ma: number) => number | null;
243
+ dLodDtDecompositionAtAge: (t_Ma: number) => {
244
+ tidal: number | null;
245
+ gia: number | null;
246
+ stack: number | null;
247
+ resonator: number | null;
248
+ net_L2: number | null;
249
+ net_L3: number | null;
250
+ net_L4: number | null;
251
+ };
252
+ };
253
+ dtCycleLodCorrectionSum: (year: number) => number;
254
+ dtCycles: {
255
+ taperAt: (year: number) => number;
256
+ taperDerivativeAt: (year: number) => number;
257
+ cycleDeltaTSecondsAt: (cycleKey: string, year: number) => number;
258
+ cycleLodSecondsAt: (cycleKey: string, year: number) => number;
259
+ swingDeltaTSecondsAt: (year: number) => number;
260
+ swingLodSecondsAt: (year: number) => number;
261
+ swingLodRateAt: (year: number) => number;
262
+ };
263
+ earthMoiFactorAtAge: (tMa: number) => number;
264
+ evalClimateL1: (year: number) => number;
265
+ moonChain: {
266
+ distanceMetresAtAge: (tMa: number) => number | null;
267
+ distanceKmAtAge: (tMa: number) => number | null;
268
+ solarDeltaAKmAtAge: (tMa: number, aApparentKm: number) => number | null;
269
+ distanceCorrectedKmAtAge: (tMa: number) => number | null;
270
+ siderealMonthSecondsAtAge: (tMa: number) => number | null;
271
+ synodicMonthSecondsAtAge: (tMa: number) => number | null;
272
+ tropicalMonthSecondsAtAge: (tMa: number) => number | null;
273
+ perigeePrecessionSecondsAtAge: (tMa: number) => number | null;
274
+ nodePrecessionSecondsAtAge: (tMa: number) => number | null;
275
+ anomalisticMonthSecondsAtAge: (tMa: number) => number | null;
276
+ nodalMonthSecondsAtAge: (tMa: number) => number | null;
277
+ apsidalMeetsNodalSecondsAtAge: (tMa: number) => number | null;
278
+ lunarLevelingSecondsAtAge: (tMa: number) => number | null;
279
+ };
280
+ moonDistanceKmAtYearOrNaN: (year: number) => number;
281
+ moonDistanceMetresAtAge: (tMa: number) => number | null;
282
+ s3ArcsecPerYr: number;
283
+ spinAxisInertialRateMeanArcsecPerYr: (yearFrom: number, yearTo: number, stepYears?: number, opts?: {
284
+ ellipticity?: boolean;
285
+ }) => number;
286
+ yearToTMa: (year: number) => number;
287
+ };
288
+ export type Ctx = import("./derived-constants.js").Ctx & ReturnType<typeof assembleDeepTimeChain>;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * ΔT (TT − UT1) — the raw integral plus the cycle stack, memoized on the exact argument.
3
+ *
4
+ * One slice of `assembleModel` (../model.js): receives the context the earlier slices built, returns the bindings the later ones read.
5
+ */
6
+ /** @param {import('./moon-epoch.js').Ctx} ctx @returns the bindings the later slices read */
7
+ export function assembleDeltaT(ctx: import("./moon-epoch.js").Ctx): {
8
+ deltaTSeconds: (year: number) => number;
9
+ meanDeltaTSecondsAtAge: (tMa: number) => number;
10
+ };
11
+ export type Ctx = import("./moon-epoch.js").Ctx & ReturnType<typeof assembleDeltaT>;
@@ -0,0 +1,25 @@
1
+ /** @param {import('./context.js').ModelInputs} ctx @returns the bindings the later slices read */
2
+ export function assembleDerivedConstants(ctx: import("./context.js").ModelInputs): {
3
+ GM_EARTH_ALONE: number;
4
+ GM_EARTH_MOON_SYSTEM: number;
5
+ GM_MOON_ALONE: number;
6
+ GM_SUN: number;
7
+ GM_SUN_PLUS_EARTH: number;
8
+ G_CONSTANT: any;
9
+ MASS_RATIO_EARTH_MOON: any;
10
+ M_SUN: number;
11
+ axialPrecessionJ2000Days: number;
12
+ currentAUDistance: any;
13
+ meanLengthOfDay: any;
14
+ meanSiderealYearDays: any;
15
+ meanSolarYearDays: number;
16
+ meanTropicalYearJ2000Seconds: number;
17
+ moonDistanceCorrected: number;
18
+ moonDistanceKm: any;
19
+ moonOrbitalShift: number;
20
+ moonSiderealMonth: any;
21
+ moonSiderealMonthInput: any;
22
+ startmodelJD: any;
23
+ startmodelYear: any;
24
+ };
25
+ export type Ctx = import("./context.js").ModelInputs & ReturnType<typeof assembleDerivedConstants>;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Earth scalars of date — e, ϖ, ε read from the one-source movement; the eclipse Sun's mean elements (the research `laws` hook).
3
+ *
4
+ * One slice of `assembleModel` (../model.js): receives the context the earlier slices built, returns the bindings the later ones read.
5
+ */
6
+ /** @param {import('./deep-time-chain.js').Ctx} ctx @returns the bindings the later slices read */
7
+ export function assembleEarthScalars(ctx: import("./deep-time-chain.js").Ctx): {
8
+ earthPerihelionDeg: (year: number) => number;
9
+ eccentricityAt: (year: number) => number;
10
+ obliquityDeg: (year: number) => number;
11
+ sunEccentricityAt: (year: number) => any;
12
+ sunPerihelionDegAt: (year: number) => number;
13
+ };
14
+ export type Ctx = import("./deep-time-chain.js").Ctx & ReturnType<typeof assembleEarthScalars>;
@@ -0,0 +1,6 @@
1
+ /** @param {import('./planet-elements-of-date.js').Ctx} ctx @returns the bindings the later slices read */
2
+ export function assembleInvPlaneElements(ctx: import("./planet-elements-of-date.js").Ctx): {
3
+ ascendingNodeDeg: (year: number) => number;
4
+ inclinationDeg: (year: number) => number;
5
+ };
6
+ export type Ctx = import("./planet-elements-of-date.js").Ctx & ReturnType<typeof assembleInvPlaneElements>;
@@ -0,0 +1,72 @@
1
+ /** @param {import('./time-axis.js').Ctx} ctx @returns the bindings the later slices read */
2
+ export function assembleLunarTheory(ctx: import("./time-axis.js").Ctx): {
3
+ frameworkDeltaTSecondsAtJD: (jd: number) => number;
4
+ j2000JD: number;
5
+ jdTTFromUT: (jd: number) => number;
6
+ julianCenturyDays: number;
7
+ moonArgs: {
8
+ argsAt: (jdTT: number) => MoonArgsDeg;
9
+ fwArgs: (jdTT: number) => MoonArgsDeg;
10
+ fwArgsDeep: (jd: number) => MoonArgsDeg | null;
11
+ pureMeeusArgs: (jdTT: number) => MoonArgsDeg;
12
+ planetaryCarrier: (T: number) => number;
13
+ obliquityCarrier: (T: number) => number;
14
+ lpSecularCompletion: (T: number) => number;
15
+ bundle: {
16
+ LP0: number;
17
+ D0: number;
18
+ M0: number;
19
+ MP0: number;
20
+ F0: number;
21
+ LPR: number;
22
+ DR: number;
23
+ MR: number;
24
+ WDOT: number;
25
+ NDOT: number;
26
+ T2_W: number;
27
+ T2_N: number;
28
+ T3_W: number;
29
+ T3_N: number;
30
+ T2_LP: number;
31
+ T2_LP_TIDAL: number;
32
+ S_W: number;
33
+ S_N: number;
34
+ };
35
+ _rateCompletion: () => {
36
+ rc: {
37
+ ok: boolean;
38
+ pFix: (dyYears: number) => number;
39
+ pdSlopeDegPerCy2: number;
40
+ };
41
+ anchors: {
42
+ ok: boolean;
43
+ Lp: number;
44
+ w: number;
45
+ om: number;
46
+ Lsun: number;
47
+ ws: number;
48
+ Tq: number;
49
+ };
50
+ };
51
+ };
52
+ moonSeries: {
53
+ sceneEvalAt: (dDaysTT: number) => {
54
+ thetaAddRad: number;
55
+ lonDeg: number;
56
+ latRad: number;
57
+ latDeg: number;
58
+ distKm: number;
59
+ T: number;
60
+ };
61
+ truncatedLonDeg: (jdUT: number) => number;
62
+ truncatedBetaDeg: (jdUT: number) => number;
63
+ truncatedDistanceKm: (jdUT: number) => number;
64
+ additionalArgs: (T: number, dDaysTT: number) => {
65
+ A1: number;
66
+ A2: number;
67
+ A3: number;
68
+ };
69
+ };
70
+ moonSynodicMonthDays: number;
71
+ };
72
+ export type Ctx = import("./time-axis.js").Ctx & ReturnType<typeof assembleLunarTheory>;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The Moon at epoch — the solar-Δa-corrected Kepler month.
3
+ *
4
+ * One slice of `assembleModel` (../model.js): receives the context the earlier slices built, returns the bindings the later ones read.
5
+ */
6
+ /** @param {import('./one-source-movement.js').Ctx} ctx @returns the bindings the later slices read */
7
+ export function assembleMoonEpoch(ctx: import("./one-source-movement.js").Ctx): {
8
+ moonSiderealMonthDaysAt: (year: number) => number;
9
+ };
10
+ export type Ctx = import("./one-source-movement.js").Ctx & ReturnType<typeof assembleMoonEpoch>;