SSM-Clock—Limits, Helpers & Takeaway (1.10–1.11)

1.10 Limits and edge cases

  • Two-channel aliasing. With 2 near-commensurate cycles and a single snapshot, wrong valleys can persist; use stack S >= 3.
  • High noise (>= 12 deg). Increase S, diversify periods (e.g., include a 5-day), or add more channels.
  • Non-integer periods only. The formal LCM is huge; use max(periods) and rely on stacking.
  • Dropouts. If some channels are missing at a snapshot, keep stacking; alpha_i and S will carry the solution.
  • Confidence near flat bowls. Very small curvature implies conf ~ 0; report it, do not mask it.

1.11 Reference pseudocode (helpers, ASCII)

LCM of integer-day periods.

lcm(a,b):       return a*b // gcd(a,b)
lcm_days(P):    L = P[0]
                for x in P[1:]:
                    L = lcm(L, x)
                return L

Curvature-based confidence.

curvature_to_confidence(E, t, h=1e-4, c_conf=1.0, eps_E=1e-12):
    c = (E(t+h) - 2*E(t) + E(t-h)) / (h*h)
    curv_norm = c / max(E(t), eps_E)
    return tanh( c_conf * curv_norm )   # bounded to [0,1)

Cusp proximity (example).

cusp_proximity_deg(phi, half_width=15.0):
    k      = round(phi / 30.0)
    target = 30.0 * k
    d      = abs( angdiff(phi, target) )    # in [0,180]
    return max( 0.0 , 1.0 - d / half_width )


Section 1 takeaway

  • Kernel stays one line: tau_hat = argmin_t SUM_i alpha_i * angdiff( phi_i_obs , b0_i + w_i*t )^2
  • Identifiability is won numerically: stacking snapshots (no ephemeris) + multistart + Brent refine collapse wrong valleys.
  • Confidence is principled: local curvature normalized and squashed via tanh, yielding [0,1).
  • Safety is explicit: optional harmonics obey a speed–amplitude cap.
  • Everything is ASCII: deterministic, portable, and easy to audit.

Navigation

Back: SSM-Clock—Extensions & Defaults (1.8–1.9)
Next: SSM-Clock—Reference Implementation & CLI (2.1–2.2)