I previously wrote about typing elliptic fourier series; my Apple compiler is now capable of computing the offsets and also the relevant coefficients.

In mathematical notation:

\( a_n = \displaystyle \frac{T}{2n^2\pi^2}\sum_{p=1}^K \frac{\Delta x_p}{\Delta t_p}\left(\cos\frac{2n\pi t_p}{T} - \cos\frac{2n\pi t_{p-1}}{T}\right) \)

\( b_n = \displaystyle \frac{T}{2n^2\pi^2}\sum_{p=1}^K \frac{\Delta x_p}{\Delta t_p}\left(\sin\frac{2n\pi t_p}{T} - \sin\frac{2n\pi t_{p-1}}{T}\right) \)

\( c_n = \displaystyle \frac{T}{2n^2\pi^2}\sum_{p=1}^K \frac{\Delta y_p}{\Delta t_p}\left(\cos\frac{2n\pi t_p}{T} - \cos\frac{2n\pi t_{p-1}}{T}\right) \)

\( d_n = \displaystyle \frac{T}{2n^2\pi^2}\sum_{p=1}^K \frac{\Delta y_p}{\Delta t_p}\left(\sin\frac{2n\pi t_p}{T} - \sin\frac{2n\pi t_{p-1}}{T}\right) \)

See Kuhl and Giardnia for further details and definitions.

In Apple:

λxs.λys.λn.
  { sum ← [(+)/x]
  ; tieSelf ← [({.x)⊳x]; Δ ← [(-)\~(tieSelf x)]
  ; dxs ⟜ Δ xs; dys ⟜ Δ ys; n ⟜ ℝn
  ; dts ⟜ [√(x^2+y^2)]\`dxs dys
  ; dxss ⟜ ((%)\`dxs dts); dyss ⟜ ((%)\`dys dts)
  ; pts ⟜ (+)Λₒ 0 dts
  ; T ⟜}. pts; k ⟜ 2\*n\*𝜋
  ; scaleRad ← [k\*x%T]
  ; cosDiffs ⟜ (-)\~([cos.(scaleRad x)]'1 pts)
  ; sinDiffs ⟜ (-)\~([sin.(scaleRad x)]'1 pts)
  ; c ⟜ T%(2\*n^2\*𝜋^2)
  ; aₙ ← c\*sum ((\*)\`dxss cosDiffs)
  ; bₙ ← c\*sum ((\*)\`dxss sinDiffs)
  ; cₙ ← c\*sum ((\*)\`dyss cosDiffs)
  ; dₙ ← c\*sum ((\*)\`dyss sinDiffs)
  ; (aₙ,bₙ,cₙ,dₙ)
  }

In places this is even clearer than the mathematical notation; (-)\~([sin.(scaleRad x)]'1 pts) uses (-)\~ to compute successive differences of cosines all at once—compare the pointful \(\sin\frac{2n\pi t_p}{T} - \sin\frac{2n\pi t_{p-1}}{T} \). However, the mathematical typesetting is so drastically superior that the Apple code is still harder to read.