Multidimensional Bluestein identity
ProvedIntMul.HvdH.bluestein_eqinteger-multiplication
Let be even, with for , and put . For an index put and . Then the normalised DFT satisfies, at every in-range index,
where is the cyclic convolution in all axes. This is Bluestein's chirp trick in the form used in the proof of Theorem 3.1 of Harvey–van der Hoeven.
Preamble
import Definitions.Def_IntMul_HvdH_ConvC
Formal statement
namespace IntMul.HvdH
theorem bluestein_eq (r : ℕ) (hr : 0 < r) (hr2 : Even r) {d : ℕ} (e : Fin d → ℕ)
(he1 : ∀ i, 1 ≤ e i) (he : ∀ i, 2 ^ e i ∣ r) (u : (Fin (d + 1) → ℕ) → ℂ)
(j : Fin (d + 1) → ℕ) (hj : ∀ i : Fin d, j i.castSucc < 2 ^ e i) (hc : j (Fin.last d) < r) :
dftC r e u j =
(starRingEnd ℂ) (Complex.exp (2 * Real.pi * Complex.I * (chirpIdx r e j : ℂ) / ((2 * r : ℕ) : ℂ))) *
convC r e (fun k => (starRingEnd ℂ)
(Complex.exp (2 * Real.pi * Complex.I * (chirpIdx r e k : ℂ) / ((2 * r : ℕ) : ℂ))) * u k)
(fun k => Complex.exp (2 * Real.pi * Complex.I * (chirpIdx r e k : ℂ) / ((2 * r : ℕ) : ℂ))) j := by sorry
end IntMul.HvdHSource
Harvey, van der Hoeven, Integer multiplication in time O(n log n), Annals of Math. 193 (2021), https://hal.science/hal-02070778, proof of Theorem 3.1