Navigation

Operators and Keywords

Function List:

C++ API

fftw.cc File Reference

#include <algorithm>
#include "oct-fftw.h"
#include "defun-dld.h"
#include "error.h"
#include "ov.h"

Include dependency graph for fftw.cc:


Functions

 DEFUN_DLD (fftw, args,,"-*- texinfo -*-\n\ @deftypefn {Loadable Function} {@var{method} =} fftw ('planner')\n\ @deftypefnx {Loadable Function} {} fftw ('planner', @var{method})\n\ @deftypefnx {Loadable Function} {@var{wisdom} =} fftw ('dwisdom')\n\ @deftypefnx {Loadable Function} {@var{wisdom} =} fftw ('dwisdom', @var{wisdom})\n\ \n\ Manage @sc{fftw} wisdom data. Wisdom data can be used to significantly\n\ accelerate the calculation of the FFTs but implies an initial cost\n\ in its calculation. When the @sc{fftw} libraries are initialized, they read\n\ a system wide wisdom file (typically in @file{/etc/fftw/wisdom}), allowing wisdom\n\ to be shared between applications other than Octave. Alternatively, the\n\ @code{fftw} function can be used to import wisdom. For example\n\ \n\ @example\n\ @var{wisdom} = fftw ('dwisdom')\n\ @end example\n\ \n\ will save the existing wisdom used by Octave to the string @var{wisdom}.\n\ This string can then be saved to a file and restored using the @code{save}\n\ and @code{load} commands respectively. This existing wisdom can be reimported\n\ as follows\n\ \n\ @example\n\ fftw ('dwisdom', @var{wisdom})\n\ @end example \n\ \n\ If @var{wisdom} is an empty matrix, then the wisdom used is cleared.\n\ \n\ During the calculation of Fourier transforms further wisdom is generated.\n\ The fashion in which this wisdom is generated is equally controlled by\n\ the @code{fftw} function. There are five different manners in which the\n\ wisdom can be treated, these being\n\ \n\ @table @asis\n\ @item 'estimate'\n\ This specifies that no run-time measurement of the optimal means of\n\ calculating a particular is performed, and a simple heuristic is used\n\ to pick a (probably sub-optimal) plan. The advantage of this method is\n\ that there is little or no overhead in the generation of the plan, which\n\ is appropriate for a Fourier transform that will be calculated once.\n\ \n\ @item 'measure'\n\ In this case a range of algorithms to perform the transform is considered\n\ and the best is selected based on their execution time.\n\ \n\ @item 'patient'\n\ This is like 'measure', but a wider range of algorithms is considered.\n\ \n\ @item 'exhaustive'\n\ This is like 'measure', but all possible algorithms that may be used to\n\ treat the transform are considered.\n\ \n\ @item 'hybrid'\n\ As run-time measurement of the algorithm can be expensive, this is a\n\ compromise where 'measure' is used for transforms up to the size of 8192\n\ and beyond that the 'estimate' method is used.\n\ @end table\n\ \n\ The default method is 'estimate', and the method currently being used can\n\ be probed with\n\ \n\ @example\n\ @var{method} = fftw ('planner')\n\ @end example\n\ \n\ and the method used can be set using\n\ \n\ @example\n\ fftw ('planner', @var{method})\n\ @end example\n\ \n\ Note that calculated wisdom will be lost when restarting Octave. However,\n\ the wisdom data can be reloaded if it is saved to a file as described\n\ above. Saved wisdom files should not be used on different platforms since\n\ they will not be efficient and the point of calculating the wisdom is lost.\n\ @seealso{fft, ifft, fft2, ifft2, fftn, ifftn}\n\ @end deftypefn")

Function Documentation

DEFUN_DLD ( fftw  ,
args   
)