Complex-to-complex, in-place, forward or backward |
Interleaved complex numbers |
Interleaved complex numbers |
/* Configure a Descriptor */
status = DftiCreateDescriptor(&hand, <precision>, DFTI_COMPLEX,
<dimension>, <sizes>);
status = DftiCommitDescriptor(hand);
/* Compute an FFT */
/* forward FFT */
status = DftiComputeForward(hand, X_inout);
/* or backward FFT */
status = DftiComputeBackward(hand, X_inout);
|
Complex-to-complex, out-of-place, forward or backward |
Interleaved complex numbers |
Interleaved complex numbers |
/* Configure a Descriptor */
status = DftiCreateDescriptor(&hand, <precision>, DFTI_COMPLEX,
<dimension>, <sizes>);
status = DftiSetValue(hand, DFTI_PLACEMENT, DFTI_NOT_INPLACE);
status = DftiCommitDescriptor(hand);
/* Compute an FFT */
/* forward FFT */
status = DftiComputeForward(hand, X_in, Y_out);
/* or backward FFT */
status = DftiComputeBackward(hand, X_in, Y_out);
|
Complex-to-complex, in-place, forward or backward |
Split-complex numbers |
Split-complex numbers |
/* Configure a Descriptor */
status = DftiCreateDescriptor(&hand, <precision>, DFTI_COMPLEX,
<dimension>, <sizes>);
status = DftiSetValue(hand, DFTI_COMPLEX_STORAGE, DFTI_REAL_REAL);
status = DftiCommitDescriptor(hand);
/* Compute an FFT */
/* forward FFT */
status = DftiComputeForward(hand, Xre_inout, Xim_inout);
/* or backward FFT */
status = DftiComputeBackward(hand, Xre_inout, Xim_inout);
|
Complex-to-complex, out-of-place, forward or backward |
Split-complex numbers |
Split-complex numbers |
/* Configure a Descriptor */
status = DftiCreateDescriptor(&hand, <precision>, DFTI_COMPLEX,
<dimension>, <sizes>);
status = DftiSetValue(hand, DFTI_COMPLEX_STORAGE, DFTI_REAL_REAL);
status = DftiSetValue(hand, DFTI_PLACEMENT, DFTI_NOT_INPLACE);
status = DftiCommitDescriptor(hand);
/* Compute an FFT */
/* forward FFT */
status = DftiComputeForward(hand, Xre_in, Xim_in, Yre_out, Yim_out);
/* or backward FFT */
status = DftiComputeBackward(hand, Xre_in, Xim_in, Yre_out, Yim_out);
|
Real-to-complex, in-place, forward |
Real numbers |
Numbers in the CCE format |
/* Configure a Descriptor */
status = DftiCreateDescriptor(&hand, <precision>, DFTI_REAL,
<dimension>, <sizes>);
status = DftiSetValue(hand, DFTI_CONJUGATE_EVEN_STORAGE,
DFTI_COMPLEX_COMPLEX);
status = DftiSetValue(hand, DFTI_PACKED_FORMAT, DFTI_CCE_FORMAT);
status = DftiSetValue(hand, DFTI_INPUT_STRIDES, <real_strides>);
status = DftiSetValue(hand, DFTI_OUTPUT_STRIDES, <complex_strides>);
status = DftiCommitDescriptor(hand);
/* Compute an FFT */
status = DftiComputeForward(hand, X_inout);
|
Real-to-complex, out-of-place, forward |
Real numbers |
Numbers in the CCE format |
/* Configure a Descriptor */
status = DftiCreateDescriptor(&hand, <precision>, DFTI_REAL,
<dimension>, <sizes>);
status = DftiSetValue(hand, DFTI_CONJUGATE_EVEN_STORAGE,
DFTI_COMPLEX_COMPLEX);
status = DftiSetValue(hand, DFTI_PACKED_FORMAT, DFTI_CCE_FORMAT);
status = DftiSetValue(hand, DFTI_PLACEMENT, DFTI_NOT_INPLACE);
status = DftiSetValue(hand, DFTI_INPUT_STRIDES, <real_strides>);
status = DftiSetValue(hand, DFTI_OUTPUT_STRIDES, <complex_strides>);
status = DftiCommitDescriptor(hand);
/* Compute an FFT */
status = DftiComputeForward(hand, X_in, Y_out);
|
Complex-to-real, in-place, backward |
Numbers in the CCE format |
Real numbers |
/* Configure a Descriptor */
status = DftiCreateDescriptor(&hand, <precision>, DFTI_REAL,
<dimension>, <sizes>);
status = DftiSetValue(hand, DFTI_CONJUGATE_EVEN_STORAGE,
DFTI_COMPLEX_COMPLEX);
status = DftiSetValue(hand, DFTI_PACKED_FORMAT, DFTI_CCE_FORMAT);
status = DftiSetValue(hand, DFTI_INPUT_STRIDES, <complex_strides>);
status = DftiSetValue(hand, DFTI_OUTPUT_STRIDES, <real_strides>);
status = DftiCommitDescriptor(hand);
/* Compute an FFT */
status = DftiComputeBackward(hand, X_inout);
|
Complex-to-real, out-of-place, backward |
Numbers in the CCE format |
Real numbers |
/* Configure a Descriptor */
status = DftiCreateDescriptor(&hand, <precision>, DFTI_REAL,
<dimension>, <sizes>);
status = DftiSetValue(hand, DFTI_CONJUGATE_EVEN_STORAGE,
DFTI_COMPLEX_COMPLEX);
status = DftiSetValue(hand, DFTI_PLACEMENT, DFTI_NOT_INPLACE);
status = DftiSetValue(hand, DFTI_PACKED_FORMAT, DFTI_CCE_FORMAT);
status = DftiSetValue(hand, DFTI_INPUT_STRIDES, <complex_strides>);
status = DftiSetValue(hand, DFTI_OUTPUT_STRIDES, <real_strides>);
status = DftiCommitDescriptor(hand);
/* Compute an FFT */
status = DftiComputeBackward(hand, X_in, Y_out);
|