# Ordering

It is well known that a number of FFT algorithms apply an explicit permutation stage that is time consuming [4]. The exclusion of this step is similar to applying FFT to input data whose order is scrambled, or allowing a scrambled order of the FFT results. In applications such as convolution and power spectrum calculation, the order of result or data is unimportant and thus permission of scrambled order is attractive if it leads to higher performance. The following options are available in Intel MKL:

- `DFTI_ORDERED`: Forward transform data ordered, backward transform data ordered (default option).

- `DFTI_BACKWARD_SCRAMBLED`: Forward transform data ordered, backward transform data scrambled.

Table “Scrambled Order Transform” tabulates the effect on this configuration setting.

Scrambled Order Transform
| DftiComputeForward | DftiComputeBackward
--- | --- | ---
DFTI_ORDERING | Input → Output | Input → Output
`DFTI_ORDERED` | ordered → ordered | ordered → ordered
`DFTI_BACKWARD_SCRAMBLED` | ordered → scrambled | scrambled → ordered

Note that meaning of the latter two options are "allow scrambled order if practical." There are situations where in fact allowing out of order data gives no performance advantage, and thus an implementation may choose to ignore the suggestion. Strictly speaking, the normal order is also a scrambled order, the trivial one.

Parent topic: Configuration Settings