Function

vDSP_fft2d_zop(_:_:_:_:_:_:_:_:_:_:)

Computes an out-of-place single-precision complex 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_zop(_ __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 vDSP_create_fftsetup. The value supplied as parameter Log2n of the setup function must equal or exceed the values supplied as parameters Log2N0 and Log2N1 of this transform function.

__A

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

__IA0

Stride between elements in a row of A.

__IA1

Stride between elements in a column ofA; should generally be allowed to default unless the matrix is a submatrix. To default both IA1 and IC1, pass 0 for either or both parameters.

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 of C.

__IC1

Stride between elements in a column ofC; should generally be allowed to default unless the matrix is a submatrix. To default both IA1 and IC1, pass 0 for either or both parameters.

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 IC1 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

This performs the following operation:

mathematical formula

where F is Direction, N is two raised to Log2N1, M is is two raised to Log2N0, and j is the square root of -1.

See also functions vDSP_create_fftsetup and vDSP_destroy_fftsetup.

See Also

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

func vDSP_fft2d_zopD(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 complex 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_zopt(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 complex 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_zoptD(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 complex 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.