The Fermat-ring convolution oracle has error at most √2
ProvedIntMul.HvdH.fermConvRound_specinteger-multiplication
Let , and with , and put . Assume
For Gaussian-integer arrays on the box with , define through four integer convolutions over the Fermat ring . Then divides the real and imaginary parts of by , rounding towards zero. At every in-box index the result satisfies and
This is exactly the convolution-oracle hypothesis of the fixed-point Bluestein reduction bluestein_fp with . With it, the DFT of Theorem 3.1 of Harvey–van der Hoeven can be computed using integer arithmetic modulo a Fermat number.
Preamble
import Definitions.Def_IntMul_HvdH_FermConv
Formal statement
namespace IntMul.HvdH
theorem fermConvRound_spec {d : ℕ} (p P r : ℕ) (e : Fin d → ℕ) (hr : 1 ≤ r) (hP : 1 ≤ P)
(he1 : ∀ i, 1 ≤ e i) (he : ∀ i, 2 ^ e i ∣ 2 * r)
(hPM : 2 * (2 ^ (∑ i, e i)) ^ 2 * r * ((2 : ℤ) ^ p) ^ 2 < (2 : ℤ) ^ P) :
∀ U V : (Fin (d + 1) → ℕ) → ℤ × ℤ,
(∀ x : Fin (d + 1) → ℕ, (∀ i : Fin d, x i.castSucc < 2 ^ e i) → x (Fin.last d) < r →
‖gC (U x)‖ ≤ 2 ^ p) →
(∀ x : Fin (d + 1) → ℕ, (∀ i : Fin d, x i.castSucc < 2 ^ e i) → x (Fin.last d) < r →
‖gC (V x)‖ ≤ 2 ^ p) →
∀ j : Fin (d + 1) → ℕ, (∀ i : Fin d, j i.castSucc < 2 ^ e i) → j (Fin.last d) < r →
‖gC (fermConvRound p P r e U V j)‖ ≤ 2 ^ p ∧
‖gC (fermConvRound p P r e U V j) - 2 ^ p *
convC r e (fun x => gC (U x) / 2 ^ p) (fun x => gC (V x) / 2 ^ p) j‖ ≤ Real.sqrt 2 := 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, §3 (variant with exact convolution over a Fermat ring)