added more concise ifft implementation