Two-family kernel (same evaluator).t0 = midpoint of the calibration stript = days since t0wrap360(x) = x - 360*floor(x/360)
(A) fixed-n kernel (e.g., Moon, outer planets).L(t) = wrap360( a0 + n*t + sum_j [ c_j*sin(w_j*t) + d_j*cos(w_j*t) ] )n = 360 / P_sidw_j = 2*pi / P_j (small set: synodic, annual, slow sidereal)
(B) free-n kernel (e.g., Sun, Mercury, Venus, Mars).L(t) = wrap360( a0 + n*t + sum_j [ c_j*sin(w_j*t) + d_j*cos(w_j*t) ] )n = n_deg_per_day (a learned slope stored in the manifest)
Nodes (identity).Ketu(t) = wrap360( Rahu(t) + 180 )
Event primitives (detectors at evaluation time).dL(t) = wrap360( L(t) - L(t-1) + 180 ) - 180 (shortest-arc step in [-180, 180))cusp@t iff floor(wrap360(L(t-1))/30) != floor(wrap360(L(t))/30)station@t when sign(dL(t)) flips with |dL(t)| near zero
Kernel guarantees.
- Determinism: pure function of
(manifest, t); no hidden state or network. - One-wrap rule: apply
wrap360exactly once at the end of the angle chain. - Prev-day convention: ingress is recorded on the previous day after year-boundary normalization.
- Bounded snap: when aligning event lists, a
+-1day snapper may be used only to resolve a clear neighbor mismatch (never beyond+-1). - Time-reversible: same formula projects past and future.
Navigation
Back: SSM-JTK – Concept & Guarantees (1)
Next: SSM-JTK – Conservative fit & model selection (1.4)