This directory contains a test program, fftw_test, for the one- and multi-dimensional transforms. There is also a corresponding program, rfftw_test, for the real-complex transforms, which takes the same command-line options as fftw_test. (See the FFTW manual for compilation instructions.) They take a number of command-line options that determine what to tests. (On systems lacking a command-line, they will prompt the user interactively for this information.) We use the following conventions. is a size parameter, and it has the form N1xN2xN3... . For example, 3x8 denotes a two-dimensional array with 3 rows and 8 columns. A single number N denotes a 1D transform of size N. For the cases where it matters, the syntax xN denotes a ND-transform of rank 1. For example, x5 denotes a n-dimensional array of rank 1 with 5 elements. (This matters for real->complex transforms) is an integer. Rank 0 denotes 1D transforms. Rank >= 1 denotes n-dimensional transforms. Again, rank 0 uses [R]FFTW, but rank >= 1 uses [R]FFTWND. -r Tests the forward and backward transforms of random dimensions and sizes. Does not terminate (press ^C when you are tired). We use the FFT testing algorithm described in: Funda Ergün, "Testing multivariate linear functions: Overcoming the generator bottleneck." Proceedings of the Twenty-Seventh Annual ACM Symposium on the Theory of Computing, pp. 407-416 (1995). -c Checks the forward and backward transform of size -s Test the speed of the transform of size Times both in-place and out-of-place transforms. -a Like fftw_test -c for all n = 1 ... infinity. Does not terminate (press ^C when you are tired) -p Exercises the planner to make sure there are no memory leaks. -m Uses the FFTW_MEASURE flag (instead of FFTW_ESTIMATE) during correctness tests (this will slow things down considerably). -w Tests the "wisdom" mechanism (wisdom is used in all transforms computed...this option should precede one of the other options above). Also, loads wisdom from and stores accumulated wisdom in (after tests are completed). ( is created if it does not exist.) -t Tests the resolution of the timer you are currently using. This is done by measuring the time per iteration of a simple loop--the time/iter should converge to some value for large numbers of iterations, and the rate of convergence can be used to infer something about the timer resolution. The minimum timing interval required to achieve various levels of consistency/accuracy is outputted. You can compare this to the FFTW_TIME_MIN setting in fftw.h to see how appropriate it is for your machine's clock. -v Verbose output (should precede other options). -h Prints help on these and other command-line flags