cannam@127: cannam@127: cannam@127: cannam@127: FFTW FAQ - Section 5 cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127:

cannam@127: FFTW FAQ - Section 5
cannam@127: Known bugs cannam@127:

cannam@127: cannam@127:
cannam@127: cannam@127:

cannam@127: Question 5.1. FFTW 1.1 crashes in rfftwnd on cannam@127: Linux. cannam@127:

cannam@127: cannam@127: This bug was fixed in FFTW 1.2. There was a bug in cannam@127: rfftwnd causing an incorrect amount of memory to be allocated. The bug showed cannam@127: up in Linux with libc-5.3.12 (and nowhere else that we know of). cannam@127: cannam@127:

cannam@127: Question 5.2. The MPI transforms in FFTW 1.2 give incorrect cannam@127: results/leak memory. cannam@127:

cannam@127: cannam@127: These bugs were corrected in FFTW 1.2.1. The MPI transforms (really, cannam@127: just the transpose routines) in FFTW 1.2 had bugs that could cause cannam@127: errors in some situations. cannam@127:

cannam@127: Question 5.3. The test programs in FFTW 1.2.1 fail when I change FFTW cannam@127: to use single precision. cannam@127:

cannam@127: cannam@127: This bug was fixed in FFTW 1.3. (Older versions of FFTW did cannam@127: work in single precision, but the test programs didn't--the error cannam@127: tolerances in the tests were set for double precision.) cannam@127: cannam@127:

cannam@127: Question 5.4. The test program in FFTW 1.2.1 fails for n > cannam@127: 46340. cannam@127:

cannam@127: cannam@127: This bug was fixed in FFTW 1.3. FFTW 1.2.1 produced the right answer, cannam@127: but the test program was wrong. For large n, n*n in the naive cannam@127: transform that we used for comparison overflows 32 bit integer cannam@127: precision, breaking the test. cannam@127:

cannam@127: Question 5.5. The threaded code fails on Linux Redhat cannam@127: 5.0 cannam@127:

cannam@127: cannam@127: We had problems with glibc-2.0.5. The code should work with cannam@127: glibc-2.0.7. cannam@127:

cannam@127: Question 5.6. FFTW 2.0's rfftwnd fails for rank > 1 transforms cannam@127: with a final dimension >= 65536. cannam@127:

cannam@127: cannam@127: This bug was fixed in FFTW 2.0.1. (There was a 32-bit integer cannam@127: overflow due to a poorly-parenthesized expression.) cannam@127:

cannam@127: Question 5.7. FFTW 2.0's complex transforms give the wrong results cannam@127: with prime factors 17 to 97. cannam@127:

cannam@127: cannam@127: There was a bug in the complex transforms that could cause incorrect cannam@127: results under (hopefully rare) circumstances for lengths with cannam@127: intermediate-size prime factors (17-97). This bug was fixed in FFTW cannam@127: 2.1.1. cannam@127:

cannam@127: Question 5.8. FFTW 2.1.1's MPI test programs crash with cannam@127: MPICH. cannam@127:

cannam@127: cannam@127: This bug was fixed in FFTW 2.1.2. The 2.1/2.1.1 MPI test programs cannam@127: crashed when using the MPICH implementation of MPI with the cannam@127: ch_p4 device (TCP/IP); the transforms themselves worked fine. cannam@127: cannam@127:

cannam@127: Question 5.9. FFTW 2.1.2's multi-threaded transforms don't work on cannam@127: AIX. cannam@127:

cannam@127: cannam@127: This bug was fixed in FFTW 2.1.3. The multi-threaded transforms in cannam@127: previous versions didn't work with AIX's cannam@127: pthreads implementation, which idiosyncratically creates threads in detached cannam@127: (non-joinable) mode by default. cannam@127:

cannam@127: Question 5.10. FFTW 2.1.2's complex transforms give incorrect results cannam@127: for large prime sizes. cannam@127:

cannam@127: cannam@127: This bug was fixed in FFTW 2.1.3. FFTW's complex-transform algorithm cannam@127: for prime sizes (in versions 2.0 to 2.1.2) had an integer overflow cannam@127: problem that caused incorrect results for many primes greater than cannam@127: 32768 (on 32-bit machines). (Sizes without large prime factors are cannam@127: not affected.) cannam@127:

cannam@127: Question 5.11. FFTW 2.1.3's multi-threaded transforms don't give any cannam@127: speedup on Solaris. cannam@127:

cannam@127: cannam@127: This bug was fixed in FFTW 2.1.4. (By default, Solaris creates cannam@127: threads that do not parallelize over multiple processors, so one has cannam@127: to request the proper behavior specifically.) cannam@127: cannam@127:

cannam@127: Question 5.12. FFTW 2.1.3 crashes on AIX. cannam@127:

cannam@127: cannam@127: The FFTW 2.1.3 configure script picked incorrect compiler flags for the xlc compiler on newer IBM processors. This cannam@127: is fixed in FFTW 2.1.4.
cannam@127: Back: Internals of FFTW.
cannam@127: Return to contents.

cannam@127:

cannam@127: Matteo Frigo and Steven G. Johnson / fftw@fftw.org cannam@127: - 30 July 2016 cannam@127:

cannam@127: Extracted from FFTW Frequently Asked Questions with Answers, cannam@127: Copyright © 2016 Matteo Frigo and Massachusetts Institute of Technology. cannam@127: