* Sine and Cosine Transforms from FFTPACK. 

* A simple multidimensional fft.

* Workspace should be split into separate static table and scratch
space to avoid unnecessary recalculation of twiddle factors.

* Convolutions. This will need different interfaces corresponding to
the type of underlying FFT (radix-2, mixed-radix, radix-2 real,
mixed-radix real). The convolution function should be fft'ed before
being passed, so that the function can be used in a loop.  The main
point of the function being to do the index manipulation for the
multiplication F*G.  Theoretically someone might want to convolve real
and complex data together which could be done but would double the
number of interfaces. It would be reasonable to restrict the
convolutions to real-real and complex-complex.

