Helmholtz fast multipole method with Fourier basis representation and FFT acceleration.