Function

vDSP_fft2d_zrop(_:_:_:_:_:_:_:_:_:_:)

Computes an out-of-place single-precision real discrete FFT, either from the spatial domain to the frequency domain (forward) or from the frequency domain to the spatial domain (inverse).

Declaration

func vDSP_fft2d_zrop(_ __Setup: FFTSetup, _ __A: UnsafePointer<DSPSplitComplex>, _ __IA0: vDSP_Stride, _ __IA1: vDSP_Stride, _ __C: UnsafePointer<DSPSplitComplex>, _ __IC0: vDSP_Stride, _ __IC1: vDSP_Stride, _ __Log2N0: vDSP_Length, _ __Log2N1: vDSP_Length, _ __Direction: FFTDirection)

Parameters

__Setup

Points to a structure initialized by a prior call to the FFT weights array function, vDSP_create_fftsetup. The value supplied as parameter Log2n of the setup function must equal or exceed the value supplied as parameter Log2N0 or Log2N1, whichever is larger, of this transform function.

__A

Complex 2-dimensional input vector, i.e. a matrix.

__IA0

Stride between elements in a row ofA.

__IA1

Stride between elements in a column ofA; should generally be allowed to default (by passing 0) unless the matrix is a submatrix. The default column stride equals the row stride multiplied by the column count. Thus, if IA0 is 1 and IA1 is 0, every element of the input /output matrix is processed. If IA0 is 2 and IA1 is 0, every other element of each row is processed.

If not 0, parameter IA1 represents the distance between adjacent rows of the matrix.

__C

Complex 2-dimensional output vector, i.e. a matrix.

__IC0

Stride between elements in a row ofC.

__IC1

Stride between elements in a column ofC; should generally be allowed to default (by passing 0) unless the matrix is a submatrix. The default column stride equals the row stride multiplied by the column count. Thus, if IC0 is 1 and IC1 is 0, every element of the input /output matrix is processed. If IC0 is 2 and strideInCol is 0, every other element of each row is processed.

If not 0, parameter IC1 represents the distance between adjacent rows of the matrix.

__Log2N0

The base 2 exponent of the number of columns to process for each row.

__Log2N1

The base 2 exponent of the number of rows to process. For example, to process 64 rows of 128 columns, specify 7 for Log2N0 and 6 for Log2N1.

__Direction

A forward/inverse directional flag; must specify kFFTDirection_Forward (+1) or kFFTDirection_Inverse (-1).

Discussion

Forward transforms read real input and write packed complex output. Inverse transforms read packed complex input and write real output. As a result of packing the frequency-domain data, spatial-domain data and its equivalent frequency-domain data have the same storage requirements.

Real data is stored in split complex form, with odd reals stored on the imaginary side of the split complex form and even reals stored on the real side.

See also functions vDSP_create_fftsetup and vDSP_destroy_fftsetup.

See Also

2D Fast Fourier Transforms (Out-of-Place Real)

func vDSP_fft2d_zropD(FFTSetupD, UnsafePointer<DSPDoubleSplitComplex>, vDSP_Stride, vDSP_Stride, UnsafePointer<DSPDoubleSplitComplex>, vDSP_Stride, vDSP_Stride, vDSP_Length, vDSP_Length, FFTDirection)

Computes an out-of-place double-precision real discrete FFT, either from the spatial domain to the frequency domain (forward) or from the frequency domain to the spatial domain (inverse).

func vDSP_fft2d_zropt(FFTSetup, UnsafePointer<DSPSplitComplex>, vDSP_Stride, vDSP_Stride, UnsafePointer<DSPSplitComplex>, vDSP_Stride, vDSP_Stride, UnsafePointer<DSPSplitComplex>, vDSP_Length, vDSP_Length, FFTDirection)

Computes an out-of-place single-precision real discrete FFT, either from the spatial domain to the frequency domain (forward) or from the frequency domain to the spatial domain (inverse). A buffer is used for intermediate results.

func vDSP_fft2d_zroptD(FFTSetupD, UnsafePointer<DSPDoubleSplitComplex>, vDSP_Stride, vDSP_Stride, UnsafePointer<DSPDoubleSplitComplex>, vDSP_Stride, vDSP_Stride, UnsafePointer<DSPDoubleSplitComplex>, vDSP_Length, vDSP_Length, FFTDirection)

Computes an out-of-place double-precision real discrete FFT, either from the spatial domain to the frequency domain (forward) or from the frequency domain to the spatial domain (inverse). A buffer is used for intermediate results.