FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data (as well as of even/odd data, i.e. the discrete cosine/sine transforms or DCT/DST). We believe that FFTW, which is free software, should become the FFT library of choice for most applications.
Homepage
Download
Recent Releases
3.3.1005 Aug 2023 12:23
minor feature:
Fix bug that would cause 2-way SIMD (notably SSE2 in double precision) to attempt unaligned accesses in certain obscure cases, causing segfaults.
The following test triggers the bug (SSE2, double precision): ./tests/bench -oexhaustive r4*2:5:3
This test computes a pair of length-4 real- complex transforms where the second input is 5 real numbers away from the first input. That is, there is a gap of one real number between the first and second input array. The -oexhaustive level allow FFTW to attempt to compute this transform by reducing it to a pair of complex transforms of length 2, but now the second input is not aligned to a complex-number boundary. The fact that 5 is odd is the problem.
The bug cannot occur in complex- complex transforms because the complex interface accepts strides in units of complex numbers, so strides are aligned by construction.
This bug has been around at least since fftw-3.1.2 (July 2006), and probably since fftw-3.0 (2003).