The radix-2 recursion computes the synthetic DFT over C[y]/(y^r+1)
ProvedIntMul.HvdH.synG_eqinteger-multiplication
Let with , and let divide , so that is a principal -th root of unity in . Let be stored as coefficient arrays . Then the radix-2 Cooley–Tukey recursion synG r e (IntMul_HvdH_SynFFT) computes the normalised synthetic DFT
In coefficients: for the coefficient of in entry equals the corresponding coefficient on the right, where yShift r m multiplies by . This is the correctness half of Lemma 3.2 of Harvey–van der Hoeven.
Preamble
import Definitions.Def_IntMul_HvdH_SynFFT
Formal statement
namespace IntMul.HvdH
theorem synG_eq (r e : ℕ) (hr : 0 < r) (he : 2 ^ e ∣ 2 * r) (u : ℕ × ℕ → ℂ) (j c : ℕ)
(hj : j < 2 ^ e) (hc : c < r) :
synG r e u (j, c) = (1 / 2 ^ e : ℂ) * ∑ k ∈ Finset.range (2 ^ e),
yShift r (-((2 * r / 2 ^ e * j * k : ℕ) : ℤ)) (fun c' => u (k, c')) c := 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, Lemma 3.2