Function

vDSP_fft2d_zipt(_:_:_:_:_:_:_:_:)

Computes an in-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.

Declaration

func vDSP_fft2d_zipt(_ __Setup: FFTSetup, _ __C: UnsafePointer<DSPSplitComplex>, _ __IC1: vDSP_Stride, _ __IC0: vDSP_Stride, _ __Buffer: UnsafePointer<DSPSplitComplex>, _ __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 log2nInCol and log2nInRow of this transform function.

__C

A 2-dimensional complex input/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.

__Buffer

A temporary matrix used for storing interim results. The minimum size of temporary memory for each part (real and imaginary) is the lower value of 16,384 bytes or the size of NR * NC elements, where NC is the number of columns (2 raised to log2N1) and NR is the number of rows (2 raised to log2N0). For best performance, the buffer addresses should be 16-byte aligned or better.

__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 __log2nInRow, M is is two raised to __log2nInCol, and j is the square root of -1.

See also functions vDSP_create_fftsetup and vDSP_destroy_fftsetup.

See Also

2D Fast Fourier Transforms (In-Place Complex)

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

Computes an in-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).

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

Computes an in-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_ziptD(FFTSetupD, UnsafePointer<DSPDoubleSplitComplex>, vDSP_Stride, vDSP_Stride, UnsafePointer<DSPDoubleSplitComplex>, vDSP_Length, vDSP_Length, FFTDirection)

Computes an in-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.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software