Skip to main content
. 2020 Apr 5;20(7):2039. doi: 10.3390/s20072039
Algorithm 1 Iterative Number Theoretic Transform
Require: A polynomial a(x)Zq[x] of degree n1 and n-th primitive ωZq of unity
Ensure: Polynomial a(x)=NTT(a)Zq[x]
1: a=BitReverse(a)
2: for i from 2 by i=2i to n do
3:  ωi=ωnn/i, ω=1
4:  for j from 0 by 1 to i/21 do
5:   for k from 0 by i to n1 do
6:    U=a[k+j]
7:    V=ω·a[k+j+i/2]
8:    a[k+j]=U+V
9:    a[k+j+i/2]=UV
10:   ω=ω·ωi
11: return a