Chris@82: Chris@82: Chris@82: Chris@82: Chris@82: Chris@82: FFTW 3.3.8: Planner Flags Chris@82: Chris@82: Chris@82: Chris@82: Chris@82: Chris@82: Chris@82: Chris@82: Chris@82: Chris@82: Chris@82: Chris@82: Chris@82: Chris@82: Chris@82: Chris@82: Chris@82: Chris@82: Chris@82: Chris@82: Chris@82:
Chris@82:

Chris@82: Next: , Previous: , Up: Basic Interface   [Contents][Index]

Chris@82:
Chris@82:
Chris@82: Chris@82:

4.3.2 Planner Flags

Chris@82: Chris@82:

All of the planner routines in FFTW accept an integer flags Chris@82: argument, which is a bitwise OR (‘|’) of zero or more of the flag Chris@82: constants defined below. These flags control the rigor (and time) of Chris@82: the planning process, and can also impose (or lift) restrictions on the Chris@82: type of transform algorithm that is employed. Chris@82:

Chris@82:

Important: the planner overwrites the input array during Chris@82: planning unless a saved plan (see Wisdom) is available for that Chris@82: problem, so you should initialize your input data after creating the Chris@82: plan. The only exceptions to this are the FFTW_ESTIMATE and Chris@82: FFTW_WISDOM_ONLY flags, as mentioned below. Chris@82:

Chris@82:

In all cases, if wisdom is available for the given problem that was Chris@82: created with equal-or-greater planning rigor, then the more rigorous Chris@82: wisdom is used. For example, in FFTW_ESTIMATE mode any available Chris@82: wisdom is used, whereas in FFTW_PATIENT mode only wisdom created Chris@82: in patient or exhaustive mode can be used. See Words of Wisdom-Saving Plans. Chris@82:

Chris@82: Chris@82:

Planning-rigor flags

Chris@82: Chris@82: Chris@82: Chris@82:

Algorithm-restriction flags

Chris@82: Chris@82: Chris@82: Chris@82:

Limiting planning time

Chris@82: Chris@82:
Chris@82:
extern void fftw_set_timelimit(double seconds);
Chris@82: 
Chris@82: Chris@82: Chris@82:

This function instructs FFTW to spend at most seconds seconds Chris@82: (approximately) in the planner. If seconds == Chris@82: FFTW_NO_TIMELIMIT (the default value, which is negative), then Chris@82: planning time is unbounded. Otherwise, FFTW plans with a Chris@82: progressively wider range of algorithms until the the given time limit Chris@82: is reached or the given range of algorithms is explored, returning the Chris@82: best available plan. Chris@82: Chris@82:

Chris@82: Chris@82:

For example, specifying FFTW_PATIENT first plans in Chris@82: FFTW_ESTIMATE mode, then in FFTW_MEASURE mode, then Chris@82: finally (time permitting) in FFTW_PATIENT. If Chris@82: FFTW_EXHAUSTIVE is specified instead, the planner will further Chris@82: progress to FFTW_EXHAUSTIVE mode. Chris@82:

Chris@82:

Note that the seconds argument specifies only a rough limit; in Chris@82: practice, the planner may use somewhat more time if the time limit is Chris@82: reached when the planner is in the middle of an operation that cannot Chris@82: be interrupted. At the very least, the planner will complete planning Chris@82: in FFTW_ESTIMATE mode (which is thus equivalent to a time limit Chris@82: of 0). Chris@82:

Chris@82: Chris@82:
Chris@82:
Chris@82:

Chris@82: Next: , Previous: , Up: Basic Interface   [Contents][Index]

Chris@82:
Chris@82: Chris@82: Chris@82: Chris@82: Chris@82: