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*𝜋
; bₙ ← c*sum ((*)dxss sinDiffs)
; dₙ ← c*sum ((*)dyss sinDiffs)
}
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.