One rounding after an exact convolution
ProvedIntMul.HvdH.convC_roundinteger-multiplication
Let for , and . Let be Gaussian-integer arrays on the box with on the box. Let be the exact unnormalised cyclic convolution at an index , i.e. with indices taken cyclically. Dividing both parts of by with rounding towards zero gives , which satisfies
where , and is convC. So any exact integer convolution routine followed by one rounding meets the oracle hypothesis of bluestein_fp with .
Preamble
import Definitions.Def_IntMul_HvdH_ConvC
Formal statement
namespace IntMul.HvdH
theorem convC_round {d : ℕ} (p r : ℕ) (e : Fin d → ℕ) (hr : 0 < r)
(U V W : (Fin (d + 1) → ℕ) → ℤ × ℤ)
(hU : ∀ x : Fin (d + 1) → ℕ, (∀ i : Fin d, x i.castSucc < 2 ^ e i) → x (Fin.last d) < r →
‖gC (U x)‖ ≤ 2 ^ p)
(hV : ∀ 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) → ℕ)
(hW : gC (W j) = ∑ k ∈ Fintype.piFinset (fun i : Fin d => Finset.range (2 ^ e i)),
∑ c ∈ Finset.range r, gC (U (Fin.snoc (fun i => k i) c)) *
gC (V (Fin.snoc (fun i => (j i.castSucc + 2 ^ e i - k i) % 2 ^ e i)
((j (Fin.last d) + r - c) % r)))) :
‖gC ((W j).1.tdiv ((2 ^ p * (r * 2 ^ (∑ i, e i)) : ℕ) : ℤ),
(W j).2.tdiv ((2 ^ p * (r * 2 ^ (∑ i, e i)) : ℕ) : ℤ))‖ ≤ 2 ^ p ∧
‖gC ((W j).1.tdiv ((2 ^ p * (r * 2 ^ (∑ i, e i)) : ℕ) : ℤ),
(W j).2.tdiv ((2 ^ p * (r * 2 ^ (∑ i, e i)) : ℕ) : ℤ)) -
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)