Almost 6 months ago, I came across an interesting update through the UT CS theory seminar group on the classic problem on the computation of the Discrete Fourier Transform(DFT) of finite groups. Chris Umans, from Caltech, made some pretty nice improvements to the complexity of the general DFT through some slick combinatorics , which I’ll shortly explain. The paper is here.
Well, before I even start, perhaps, I should make some kind of a comment to motivate the problem at hand. A sequence of complex numbers can be represented by a function .
A Discrete Fourier Transform of sends it to the sequence where .
This motivates the definition of the Fourier transform of a function from a finite group which takes as input a representation , i.e
where one must note that here, more generally, can be matrix-valued.From Maschke’s theorem, the DFT of a finite group reduces to a map which takes as input an element (group ring consisting of all functions from to under convolution)and sends it to . Throughout, one assumes that we have already have the and chosen a basis for each .
Quite simply, one trivially gets that this requires operations. Exponent-one algorithms exist for abelian groups(as one would expect using the decomposition into cyclic groups), supersolvable and certain classes of symmetric and alternating groups.
Throughout the post, let be the exponent of matrix multiplication(currently it is around 2.38 I guess).
The main result is that Chris Umans achieves an operation complexity of . Some basic facts from representation theory will be used throughout though I guess most readers would already be familiar with that. For example, it is easy to prove that through the Schur orthogonality relations is that where the is the set of all irreducible representations of . This gives us the useful lemma.
For every real number , (Proof omitted)
Some facts about the induced representation and Clifford theory are used but it shouldn’t be too much of a hassle to discuss it on-the-fly.
The Support Trick
Let be a group and , a subset. Let’s assume that we can caluclate the generalized DFT with respect to for all inputs supported on (i.e components for ) in operations. Surely, with some extra computational cost(involving the index of ), one can extend this to all inputs because if we can compute DFT supported on then we can compute DFT supported on by multiplying by which has an additional operation cost of . We can apply Lemma 1,take appropriate number of ‘shifts/translates’ by elements of to get the following result(see Section 2.3):