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.

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