Addendum: Optimized variant of Barrett reduction + proof re: ultimate NTT article

Revision en3, by Spheniscine, 2020-03-31 07:35:05

On the Project Nayuki article on Barrett reduction, one important lemma is the inequality

$$$\displaystyle\frac{x}{n} - 1 < \frac{xr}{4^k} ≤ \frac{x}{n} \implies \frac{x}{n} - 2 < \left\lfloor \frac{x}{n} - 1 \right\rfloor ≤ \left\lfloor \frac{xr}{4^k} \right\rfloor ≤ \frac{x}{n}$$$

We shall show that this inequality holds even if $$$\dfrac{xr}{4^k}$$$ is replaced by $$$\dfrac{(x-\delta) r}{4^k}$$$, with $$$0 ≤ \delta < 2^{62}$$$.

First we need to obtain a tighter bound on $$$r$$$. Given that $$$r$$$, $$$k$$$, and $$$n$$$ are fixed in our algorithm, we can verify that $$$\dfrac {4^k} n - r < 2^{-9}$$$. Let this value be $$$\varepsilon$$$. We thus obtain $$$\displaystyle \frac{4^k}{n} - \varepsilon < r < \frac{4^k}{n}$$$

Tags fft, ntt, proof

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en18 English Spheniscine 2020-05-20 04:26:03 2 remove redundant parentheses
en17 English Spheniscine 2020-03-31 12:38:10 495 Tiny change: 'her small as these primes are so close ' -> 'her small for moduli so close '
en16 English Spheniscine 2020-03-31 11:49:36 184
en15 English Spheniscine 2020-03-31 10:26:25 167
en14 English Spheniscine 2020-03-31 10:21:20 20
en13 English Spheniscine 2020-03-31 09:12:27 4 Tiny change: 'laced by $g = \dfrac{(x-' -> 'laced by $\dfrac{(x-'
en12 English Spheniscine 2020-03-31 08:54:58 105 Tiny change: '$t$ to $[-n, 2n)$. This i' -> '$t$ to $[-m, 2m)$. This i'
en11 English Spheniscine 2020-03-31 08:47:39 17 Tiny change: 'relax the final bounds of $t$ to' -> 'relax the pre-normalization bound of $t$ to'
en10 English Spheniscine 2020-03-31 08:46:44 74
en9 English Spheniscine 2020-03-31 08:44:52 97
en8 English Spheniscine 2020-03-31 08:43:59 1442 Tiny change: ' < 2^{62}$.\n\nFirst' -> ' < 2^{62}$, the bits that have been omitted.\n\nFirst' (published)
en7 English Spheniscine 2020-03-31 08:26:01 226
en6 English Spheniscine 2020-03-31 08:22:50 105
en5 English Spheniscine 2020-03-31 08:12:26 956 Tiny change: 'c{4^k}{n}$ and forget about it thereafter.' -> 'c{4^k}{n}$.\n\nDivide by $4^k$: '
en4 English Spheniscine 2020-03-31 07:39:29 250
en3 English Spheniscine 2020-03-31 07:35:05 79
en2 English Spheniscine 2020-03-31 07:33:12 211 Tiny change: 'alue be $\epsilon$' -> 'alue be $\varepsilon$.'
en1 English Spheniscine 2020-03-31 07:25:50 565 Initial revision (saved to drafts)