"With age comes wisdom, but sometimes age comes alone." — Oscar Wilde
FFTW-Age
is a lightweight C++ utility for generating FFTW wisdom files
for OpenMP-multithreaded 3‑d FFT transforms as a replacement for
fftw-wisdom
.
For background information, please refer to FFTW Wisdom.
The C++ program can built with make
, provided that dependency
requirements (FFTW3 and OpenMP libraries) are satisfied.
Important
Ensure the C++ compiler used supports OpenMP and the FFTW3 library is
installed/configured accordingly. The default Makefile
(located at the repository directory root) assumes the GCC compiler and
OpenMP library.
First git clone
the desired branch/release from the GitHub repository
and change into the repository directory path:
git clone git@github.com:MikeSWang/FFTW-Age.git --branch <branch-or-release>
cd FFTW-Age
Then, execute in shell:
make clean
make install
Once installed, the FFTW-Age utility can be called from the command line:
fftw-age [--rigour=<tplan>] [--outdir=<wisdom-dir>] <tdir>-<dimx>x<dimy>x<dimz>
where
fftw-age
is assumed to be executable (include the path if it is not in the current working directory);<tdir>
is the transform direction, either"f"
forFFTW_FORWARD
and"b"
forFFTW_BACKWARD
;<dimx>
,<dimy>
and<dimz>
are the dimensions of the 3-d transform;<tplan>
corresponds to the FFTW planner flag/rigour level, with"m"
(measured; default) forFFTW_MEASURE
and"p"
(patient) forFFTW_PATIENT
;<wisdom-dir>
is the output wisdom file directory (absolute or relative to the current working directory).
The output wisdom file will have the filename
fftw_omp_<ttype><ttarr><tdir>_<dimx>x<dimy>x<dimz>_<tplan>.wisdom
.
Note
Only complex-to-complex, in-place transforms are currently supported. Hence
<ttype>
is fixed to "c"
(complex-to-complex) and
<ttarr>
is fixed to "i"
(in-place) for now.
See also the help message generated by fftw-age --help
.
For more information about FFTW planner flags, please refer to FFTW Planner Flags.
To acknowledge the use of FFTW-Age
in your published research, please
cite this repository; you can refer to the file CITATION.cff
for the relevant information.
This C++ utility makes use of the argparse
library.
User feedback and contributions are very welcome. Please refer to the contribution guidelines.
A community forum for users and developers exists, where you can receive announcements, post questions, share ideas and get updates.
A wiki site collects wisdoms for specific use cases and user environments.
Release notes are included in the change log.
FFTW-Age
is made freely available under the GPL-3.0 licence (or any later version).
Please see LICENCE
(located at the repository directory root)
for full terms and conditions.
© 2024 Mike S Wang