1FFTW-WISDOM(1) fftw FFTW-WISDOM(1)
2
3
4
6 fftw-wisdom - create wisdom (pre-optimized FFTs)
7
9 fftw-wisdom [OPTION]... [SIZE]...
10
12 fftw-wisdom is a utility to generate FFTW wisdom files, which contain
13 saved information about how to optimally compute (Fourier) transforms
14 of various sizes. FFTW is a free library to compute discrete Fourier
15 transforms in one or more dimensions, for arbitrary sizes, and of both
16 real and complex data, among other related operations. More informa‐
17 tion on FFTW can be found at the FFTW home page: http://www.fftw.org
18
19 Programs using FFTW can be written to load wisdom from an arbitrary
20 file, string, or other source. Moreover, it is likely that many FFTW-
21 using programs will load the system wisdom file, which is stored in
22 /etc/fftw/wisdom by default. fftw-wisdom can be used to create or add
23 to such wisdom files. In its most typical usage, the wisdom file can
24 be created to pre-plan a canonical set of sizes (see below) via:
25
26 fftw-wisdom -v -c -o wisdom
27
28 (this will take many hours, which can be limited by the -t option) and
29 the output wisdom file can then be copied (as root) to /etc/fftw/ or
30 whatever.
31
32 The fftw-wisdom program normally writes the wisdom directly to standard
33 output, but this can be changed via the -o option, as in the example
34 above.
35
36 If the system wisdom file /etc/fftw/wisdom already exists, then
37 fftw-wisdom reads this existing wisdom (unless the -n option is speci‐
38 fied) and outputs both the old wisdom and any newly created wisdom. In
39 this way, it can be used to add new transform sizes to the existing
40 system wisdom (or other wisdom file, with the -w option).
41
43 Although a canonical set of sizes to optimize is specified by the -c
44 option, the user can also specify zero or more non-canonical transform
45 sizes and types to optimize, via the SIZE arguments following the
46 option flags. Alternatively, the sizes to optimize can be read from
47 standard input (whitespace-separated), if a SIZE argument of "-" is
48 supplied.
49
50 Sizes are specified by the syntax:
51
52 <type><inplace><direction><geometry>
53
54 <type> is either ´c´ (complex), ´r´ (real, r2c/c2r), or ´k´ (r2r, per-
55 dimension kinds, specified in the geometry, below).
56
57 <inplace> is either ´i´ (in place) or ´o´ (out of place).
58
59 <direction> is either ´f´ (forward) or ´b´ (backward). The <direction>
60 should be omitted for ´k´ transforms, where it is specified via the
61 geometry instead.
62
63 <geometry> is the size and dimensionality of the transform, where dif‐
64 ferent dimensions are separated by ´x´ (e.g. ´16x32´ for a two-dimen‐
65 sional 16 by 32 transform). In the case of ´k´ transforms, the size of
66 each dimension is followed by a "type" string, which can be one of
67 f/b/h/e00/e01/e10/e11/o00/o01/o10/o11 for
68 R2HC/HC2R/DHT/REDFT00/.../RODFT11, respectively, as defined in the FFTW
69 manual.
70
71 For example, ´cif12x13x14´ is a three-dimensional 12 by 13 x 14 complex
72 DFT operating in-place. ´rob65536´ is a one-dimensional size-65536
73 out-of-place complex-to-real (backwards) transform operating on Hermit‐
74 ian-symmetry input. ´ki10hx20e01´ is a two-dimensional 10 by 20 r2r
75 transform where the first dimension is a DHT and the second dimension
76 is an REDFT01 (DCT-III).
77
78
80 -h, --help
81 Display help on the command-line options and usage.
82
83 -V, --version
84 Print the version number and copyright information.
85
86 -v, --verbose
87 Verbose output. (You can specify this multiple times, or supply
88 a numeric argument greater than 1, to increase the verbosity
89 level.) Note that the verbose output will be mixed with the
90 wisdom output (making it impossible to import), unless you write
91 the wisdom to a file via the -o option.
92
93 -c, --canonical
94 Optimize/pre-plan a canonical set of sizes: all powers of two
95 and ten up to 2^20 (1048576), including both real and complex,
96 forward and backwards, in-place and out-of-place transforms.
97 Also includes two- and three-dimensional transforms of equal-
98 size dimensions (e.g. 16x16x16).
99
100 -t hours, --time-limit=hours
101 Stop after a time of hours (hours) has elapsed, outputting accu‐
102 mulated wisdom. (The problems are planned in increasing order
103 of size.) Defaults to 0, indicating no time limit.
104
105 -o file, --output-file=file
106 Send wisdom output to file rather than to standard output (the
107 default).
108
109 -m, --measure; -e, --estimate; -x, --exhaustive
110 Normally, fftw-wisdom creates plans in FFTW_PATIENT mode, but
111 with these options you can instead use FFTW_MEASURE, FFTW_ESTI‐
112 MATE, or FFTW_EXHAUSTIVE modes, respectively, as described in
113 more detail by the FFTW manual.
114
115 Note that wisdom is tagged with the planning patience level, and
116 a single file can mix different levels of wisdom (e.g. you can
117 mostly use the patient default, but plan a few sizes that you
118 especially care about in --exhaustive mode).
119
120 -n, --no-system-wisdom
121 Do not import the system wisdom from /etc/fftw/wisdom (which is
122 normally read by default).
123
124 -w file, --wisdom-file=file
125 Import wisdom from file (in addition to the system wisdom,
126 unless -n is specified). Multiple wisdom files can be read via
127 multiple -w options. If file is "-", then read wisdom from
128 standard input.
129
130 -T N, --threads=N
131 Plan with N threads. This option is only present if FFTW was
132 configured with thread support.
133
135 Send bug reports to fftw@fftw.org.
136
138 Written by Steven G. Johnson and Matteo Frigo.
139
140 Copyright (c) 2003, 2007-14 Matteo Frigo
141 Copyright (c) 2003, 2007-14 Massachusetts Institute of Technology
142
144 fftw-wisdom-to-conf(1)
145
146
147
148fftw February, 2003 FFTW-WISDOM(1)