cannam@95: .\" cannam@95: .\" Copyright (c) 2003, 2007-11 Matteo Frigo cannam@95: .\" Copyright (c) 2003, 2007-11 Massachusetts Institute of Technology cannam@95: .\" cannam@95: .\" This program is free software; you can redistribute it and/or modify cannam@95: .\" it under the terms of the GNU General Public License as published by cannam@95: .\" the Free Software Foundation; either version 2 of the License, or cannam@95: .\" (at your option) any later version. cannam@95: .\" cannam@95: .\" This program is distributed in the hope that it will be useful, cannam@95: .\" but WITHOUT ANY WARRANTY; without even the implied warranty of cannam@95: .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the cannam@95: .\" GNU General Public License for more details. cannam@95: .\" cannam@95: .\" You should have received a copy of the GNU General Public License cannam@95: .\" along with this program; if not, write to the Free Software cannam@95: .\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA cannam@95: .\" cannam@95: .TH FFTW-WISDOM 1 "February, 2003" "fftw" "fftw" cannam@95: .SH NAME cannam@95: fftw@PREC_SUFFIX@-wisdom \- create wisdom (pre-optimized FFTs) cannam@95: .SH SYNOPSIS cannam@95: .B fftw@PREC_SUFFIX@-wisdom cannam@95: [\fIOPTION\fR]... [\fISIZE\fR]... cannam@95: .SH DESCRIPTION cannam@95: .PP cannam@95: ." Add any additional description here cannam@95: .I fftw@PREC_SUFFIX@-wisdom cannam@95: is a utility to generate FFTW cannam@95: .B wisdom cannam@95: files, which contain saved information about how to optimally compute cannam@95: (Fourier) transforms of various sizes. FFTW is a free library to cannam@95: compute discrete Fourier transforms in one or more dimensions, for cannam@95: arbitrary sizes, and of both real and complex data, among other cannam@95: related operations. More information on FFTW can be found at the FFTW cannam@95: home page: cannam@95: .I http://www.fftw.org cannam@95: cannam@95: Programs using FFTW can be written to load wisdom from an arbitrary file, cannam@95: string, or other source. Moreover, it is likely that many FFTW-using cannam@95: programs will load the \fBsystem wisdom\fR file, which is stored in cannam@95: .I /etc/fftw/wisdom@PREC_SUFFIX@ cannam@95: by default. cannam@95: .I fftw@PREC_SUFFIX@-wisdom cannam@95: can be used to create or add to such wisdom files. In its most cannam@95: typical usage, the wisdom file can be created to pre-plan a canonical cannam@95: set of sizes (see below) via: cannam@95: cannam@95: .ce cannam@95: fftw@PREC_SUFFIX@-wisdom -v -c -o wisdom@PREC_SUFFIX@ cannam@95: cannam@95: (this will take many hours, which can be limited by the cannam@95: .B -t cannam@95: option) and the output cannam@95: .I wisdom@PREC_SUFFIX@ cannam@95: file can then be copied (as root) to cannam@95: .I /etc/fftw/ cannam@95: or whatever. cannam@95: cannam@95: The cannam@95: .I fftw@PREC_SUFFIX@-wisdom cannam@95: program normally writes the wisdom directly to standard output, but this cannam@95: can be changed via the cannam@95: .B -o cannam@95: option, as in the example above. cannam@95: cannam@95: If the system wisdom file cannam@95: .I /etc/fftw/wisdom@PREC_SUFFIX@ cannam@95: already exists, then cannam@95: .I fftw@PREC_SUFFIX@-wisdom cannam@95: reads this existing wisdom (unless the cannam@95: .B -n cannam@95: option is specified) and outputs both the old wisdom and any cannam@95: newly created wisdom. In this way, it can be used to add new transform cannam@95: sizes to the existing system wisdom (or other wisdom file, with the cannam@95: .B -w cannam@95: option). cannam@95: .SH SPECIFYING SIZES cannam@95: Although a canonical set of sizes to optimize is specified by the cannam@95: .B -c cannam@95: option, the user can also specify zero or more non-canonical transform cannam@95: sizes and types to optimize, via the cannam@95: .I SIZE cannam@95: arguments following the option flags. Alternatively, the sizes to cannam@95: optimize can be read from standard input (whitespace-separated), if a cannam@95: .I SIZE cannam@95: argument of "-" is supplied. cannam@95: cannam@95: Sizes are specified by the syntax: cannam@95: cannam@95: .ce cannam@95: <\fItype\fR><\fIinplace\fR><\fIdirection\fR><\fIgeometry\fR> cannam@95: cannam@95: <\fItype\fR> is either \'c\' (complex), \'r\' (real, r2c/c2r), or cannam@95: \'k\' (r2r, per-dimension kinds, specified in the geometry, below). cannam@95: cannam@95: <\fIinplace\fR> is either \'i\' (in place) or \'o\' (out of place). cannam@95: cannam@95: <\fIdirection\fR> is either \'f\' (forward) or \'b\' (backward). The cannam@95: <\fIdirection\fR> should be omitted for \'k\' transforms, where it is cannam@95: specified via the geometry instead. cannam@95: cannam@95: <\fIgeometry\fR> is the size and dimensionality of the transform, cannam@95: where different dimensions are separated by \'x\' (e.g. \'16x32\' for cannam@95: a two-dimensional 16 by 32 transform). In the case of \'k\' cannam@95: transforms, the size of each dimension is followed by a "type" string, cannam@95: which can be one of f/b/h/e00/e01/e10/e11/o00/o01/o10/o11 for cannam@95: R2HC/HC2R/DHT/REDFT00/.../RODFT11, respectively, as defined in the cannam@95: FFTW manual. cannam@95: cannam@95: For example, \'cif12x13x14\' is a three-dimensional 12 by 13 x 14 cannam@95: complex DFT operating in-place. \'rob65536\' is a one-dimensional cannam@95: size-65536 out-of-place complex-to-real (backwards) transform cannam@95: operating on Hermitian-symmetry input. \'ki10hx20e01\' is a cannam@95: two-dimensional 10 by 20 r2r transform where the first dimension is a cannam@95: DHT and the second dimension is an REDFT01 (DCT-III). cannam@95: cannam@95: .SH OPTIONS cannam@95: .TP cannam@95: \fB\-h\fR, \fB\--help\fR cannam@95: Display help on the command-line options and usage. cannam@95: .TP cannam@95: \fB\-V\fR, \fB\--version\fR cannam@95: Print the version number and copyright information. cannam@95: .TP cannam@95: \fB\-v\fR, \fB\--verbose\fR cannam@95: Verbose output. (You can specify this multiple times, or supply a numeric cannam@95: argument greater than 1, to increase the verbosity level.) Note that the cannam@95: verbose output will be mixed with the wisdom output (making it impossible cannam@95: to import), unless you write the wisdom to a file via the cannam@95: .B -o cannam@95: option. cannam@95: .TP cannam@95: \fB\-c\fR, \fB\--canonical\fR cannam@95: Optimize/pre-plan a canonical set of sizes: all powers of two and ten cannam@95: up to 2^20 (1048576), including both real and complex, forward and cannam@95: backwards, in-place and out-of-place transforms. Also includes two- cannam@95: and three-dimensional transforms of equal-size dimensions cannam@95: (e.g. 16x16x16). cannam@95: .TP cannam@95: \fB\-t\fR \fIhours\fR, \fB\--time-limit\fR=\fIhours\fR cannam@95: Stop after a time of cannam@95: .I hours cannam@95: (hours) has elapsed, outputting accumulated wisdom. (The problems are planned cannam@95: in increasing order of size.) Defaults to 0, indicating no time limit. cannam@95: .TP cannam@95: \fB\-o\fR \fIfile\fR, \fB\--output-file\fR=\fIfile\fR cannam@95: Send wisdom output to cannam@95: .I file cannam@95: rather than to standard output (the default). cannam@95: .TP cannam@95: \fB\-m\fR, \fB\--measure\fR; \fB\-e\fR, \fB\--estimate\fR; \fB\-x\fR, \fB\--exhaustive\fR cannam@95: Normally, cannam@95: .I fftw@PREC_SUFFIX@-wisdom cannam@95: creates plans in FFTW_PATIENT mode, but with these options you can instead cannam@95: use FFTW_MEASURE, FFTW_ESTIMATE, or FFTW_EXHAUSTIVE modes, respectively, cannam@95: as described in more detail by the FFTW manual. cannam@95: cannam@95: Note that wisdom is tagged with the planning patience level, and a cannam@95: single file can mix different levels of wisdom (e.g. you can mostly cannam@95: use the patient default, but plan a few sizes that you especially care cannam@95: about in cannam@95: .B --exhaustive cannam@95: mode). cannam@95: .TP cannam@95: \fB\-n\fR, \fB\--no-system-wisdom\fR cannam@95: Do not import the system wisdom from cannam@95: .I /etc/fftw/wisdom@PREC_SUFFIX@ cannam@95: (which is normally read by default). cannam@95: .TP cannam@95: \fB\-w\fR \fIfile\fR, \fB\--wisdom-file\fR=\fIfile\fR cannam@95: Import wisdom from cannam@95: .I file cannam@95: (in addition to the system wisdom, unless cannam@95: .B -n cannam@95: is specified). Multiple wisdom files can be read via multiple cannam@95: .B -w cannam@95: options. If cannam@95: .I file cannam@95: is "-", then read wisdom from standard input. cannam@95: .SH BUGS cannam@95: Send bug reports to fftw@fftw.org. cannam@95: .SH AUTHORS cannam@95: Written by Steven G. Johnson and Matteo Frigo. cannam@95: cannam@95: Copyright (c) 2003, 2007-11 Matteo Frigo cannam@95: .br cannam@95: Copyright (c) 2003, 2007-11 Massachusetts Institute of Technology cannam@95: .SH "SEE ALSO" cannam@95: fftw-wisdom-to-conf(1)