more credits to D. J. Bernstein for fft