Algorytmy transformacji wielomianowych i ich zastosowania
Algorytmy transformacji wielomianowych i ich zastosowania
Algorytmy transformacji wielomianowych i ich zastosowania
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Preliminariagdzie Ψ = (1, ψ, . . . , ψ n−1 ), F = F ω : K n → K n , ω = ψ 2 oraz operacje wektorowe· i / są zwykłym mnożeniem i dzieleniem odpowiedn<strong>ich</strong> współrzędnych. Złożonośćobliczeniowa tego algorytmu wynosic(n) = 9n log n + O(n).Wzór (3.4) w sposób uwikłany został zasugerowany w [Aho i inni, 2003].W praktycznych <strong>zastosowania</strong>ch zwinięty splot ⊗: K n × K n → K n jest bardziejefektywny, ze względu na mniejsze wymagania pamięciowe, niż splot ×: K 2n ×K 2n →K 2n , co zostało wykorzystane w algorytmie [Schönhage i Strassen, 1971; Aho i inni,2003]. Dla kompletności rozważań, poniżej przedstawiono krótki dowód wzoru (3.4)podany w pracy [Kapusta i Smarzewski, 2006b].orazZe wzorów (3.1) i (3.2) wynika, żec(x) = a(x)b(x) =n−1 ∑i=0n−1c i x i + x n ∑i=0c n+i x i , c 2n−1 = 0i∑n−1 ∑c i = a k b i−k i c n+i = a k b n+i−k .k=0k=i+1Wykorzystując dodatkowe wektory d, h ∈ K n o współrzędnychd i = c i + c n+i i h i = c i − c n+i , i = 0, 1, . . . , n − 1otrzymuje sięc i = (d i + h i )/2, i = 0, 1, . . . , n − 1.Obliczając wartości wielomianud(x) =gdzie ω = ψ 2 , uzyskuje sięd(ω l ) ==n−1 ∑i=02n−1 ∑i=0n−1 ∑i=0d i ω il =d i x i dla x = ω l , l = 0, 1, . . . , n − 1,n−1 ∑ i∑ω ili=0 k=0( i∑k=0a k b i−k)n−1a k b i−k + ω nl ∑ω il = a(ω l )b(ω l )dla l = 0, 1, ..., n − 1. Jest to równoważne temu, żed = F −1 [F (a) · F (b)] , F = F ω .16n−1ω il ∑i=0 k=i+1a k b n+i−k