DFT on arbitrary rings
摘抄自 Fast multiplication of polynomials over arbitrary rings, David G. Cantor & Erich Kaltofen
Rings with a Fourier Transform
The main feature of our algorithm is that it works over an arbitrary ring . We write for its additive zero element and for its multiplicative unit, . Any ring is module by and . The integers are embeded into by , and we write shortly for the element . Notice that a 'rng' without a unit can be embedded into the ring with unit and addition and multiplication defined as
so all our results hold for such rngs as well. The subring is either isomorphic to or to , the integers modulo for some . We write for the left -module of -dimensional vectors over , and we write , for the -th component of .
In the following, we introduce the theory for the fast Fourier transform, here for the abstract module .
Definition: Let be a ring, . Then is a principal -th root of unity if
(PR1) ; note that then .
(PR2) For all : .
(PR3) For all : ; this condition is needed when computing convolutions in noncommutative rings.
Definition: Let be a ring, , a principal -th root of unity in , . Then is the discrete Fourier transform of with respect to , denoted as , respectively is the discrete Fourier inverse of with respect to , , if
For the purpose of fast computation, one chooses . Following is the now-famous algorithm to compute the forward transform.
Algorithm Fast DFT
Input: , such that , .
Output: .
If Then Return .
Step S (Split-up): Since for we have
We have
; ; .
For Do
; .
For Do
Step R (Recursion}:
For Do
Call the algorithm recursively with ,
and , obtaining
Step I (Insertion):
For Do
For Do
Return