| Framework | Accelerate/vecLib |
| Declared in | vDSP.h |
Describes the C API for the functionality for one-dimensional Fast Fourier Transforms in vecLib.
vDSP_fft_zip
vDSP_fftm_zip
vDSP_fft_zipD
vDSP_fftm_zipD
vDSP_fft_zipt
vDSP_fftm_zipt
vDSP_fft_ziptD
vDSP_fftm_ziptD
vDSP_fft_zop
vDSP_fftm_zop
vDSP_fft_zopD
vDSP_fftm_zopD
vDSP_fft_zopt
vDSP_fftm_zopt
vDSP_fft_zoptD
vDSP_fftm_zoptD
vDSP_fft3_zop
vDSP_fft3_zopD
vDSP_fft5_zop
vDSP_fft5_zopD
vDSP_fft_zrip
vDSP_fftm_zrip
vDSP_fft_zripD
vDSP_fftm_zripD
vDSP_fft_zript
vDSP_fftm_zript
vDSP_fft_zriptD
vDSP_fftm_zriptD
vDSP_fft_zrop
vDSP_fftm_zrop
vDSP_fft_zropD
vDSP_fftm_zropD
vDSP_fft_zropt
vDSP_fftm_zropt
vDSP_fft_zroptD
vDSP_fftm_zroptD
Builds a data structure that contains precalculated data for use by single-precision FFT functions.
FFTSetup vDSP_create_fftsetup (vDSP_Length log2n, FFTRadix radix);
A base 2 exponent that represents the number of divisions of the complex unit circle and thus specifies the largest power of two that can be processed by a subsequent frequency-domain function. Parameter log2n must equal or exceed the largest power of 2 that any subsequent function processes using the weights array.
Specifies radix options. Radix 2, radix 3, and radix 5 functions are supported.
Returns an FFTSetup structure for use with FFT functions, or returns 0 if there was an error.
This function allocates memory for an FFTSetup data structure needed by FFT functions, initializes that memory, and then returns it. Once prepared, the setup structure can be used repeatedly by FFT functions (which read the data in the structure and do not alter it) for any (power of two) length up to that specified when you created the structure.
If an application performs FFTs with diverse lengths, the calls with different lengths can share a single setup structure (created for the longest length), and this saves space over having multiple structures. However, in some cases, notably single-precision FFTs on 32-bit PowerPC, an FFT routine may perform faster if it is passed a setup structure that was created specifically for the length of the transform.
Parameter log2n is a base-two exponent and specifies that the largest transform length that can processed using the resulting setup structure is 2**log2n (or 3*2**log2n or 5*2**log2n if the appropriate flags are passed, as discussed below). That is, the log2n parameter must equal or exceed the value passed to any subsequent FFT routine using the setup structure returned by this routine.
Parameter radix specifies radix options. Its value may be the bitwise OR of any combination of FFT_RADIX2, FFT_RADIX3, or FFT_RADIX5. The resulting setup structure may be used with any of the routines for which the respective flag was used. (The radix-3 and radix-5 FFT routines have "fft3" and "fft5" in their names. The radix-2 FFT routines have plain "fft" in their names.)
If zero is returned, the routine failed to allocate storage.
The setup structure is deallocated by calling vDSP_destroy_fftsetup.
Use vDSP_create_fftsetup during initialization. It is relatively slow compared to the routines that actually perform FFTs. Never use it in a part of an application that needs to be high performance.
vDSP.h Builds a data structure that contains precalculated data for use by double-precision FFT functions.
FFTSetupD vDSP_create_fftsetupD (vDSP_Length log2n, FFTRadix radix);
A base 2 exponent that represents the number of divisions of the complex unit circle and thus specifies the largest power of two that can be processed by a subsequent frequency-domain function. Parameter log2n must equal or exceed the largest power of 2 that any subsequent function processes using the weights array.
Specifies radix options. Radix 2, radix 3, and radix 5 functions are supported.
Returns an FFTSetupD structure for use with FFT functions, or 0 if there was an error.
This function allocates memory for an FFTSetup data structure needed by FFT functions, initializes that memory, and then returns it. Once prepared, the setup structure can be used repeatedly by FFT functions (which read the data in the structure and do not alter it) for any (power of two) length up to that specified when you created the structure.
If an application performs FFTs with diverse lengths, the calls with different lengths can share a single setup structure (created for the longest length), and this saves space over having multiple structures. However, in some cases, notably single-precision FFTs on 32-bit PowerPC, an FFT routine may perform faster if it is passed a setup structure that was created specifically for the length of the transform.
Parameter log2n is a base-two exponent and specifies that the largest transform length that can processed using the resulting setup structure is 2**log2n (or 3*2**log2n or 5*2**log2n if the appropriate flags are passed, as discussed below). That is, the log2n parameter must equal or exceed the value passed to any subsequent FFT routine using the setup structure returned by this routine.
Parameter radix specifies radix options. Its value may be the bitwise OR of any combination of FFT_RADIX2, FFT_RADIX3, or FFT_RADIX5. The resulting setup structure may be used with any of the routines for which the respective flag was used. (The radix-3 and radix-5 FFT routines have "fft3" and "fft5" in their names. The radix-2 FFT routines have plain "fft" in their names.)
If zero is returned, the routine failed to allocate storage.
The setup structure is deallocated by calling vDSP_destroy_fftsetupD.
Use vDSP_create_fftsetup during initialization. It is relatively slow compared to the routines that actually perform FFTs. Never use it in a part of an application that needs to be high performance.
vDSP.h Frees an existing single-precision FFT data structure.
void vDSP_destroy_fftsetup (FFTSetup setup);
Identifies the weights array, and must point to a data structure previously created by vDSP_create_fftsetup
vDSP_destroy_fftsetup frees an existing weights array. Any memory allocated for the array is released. After the vDSP_destroy_fftsetup function returns, the structure is no longer valid and cannot be passed to any subsequent frequency-domain functions.
When forecasting memory requirements for building a weights array, keep in mind that this function generate complex numbers.
vDSP.h Frees an existing double-precision FFT data structure.
void vDSP_destroy_fftsetupD (FFTSetupD setup);
Identifies the weights array, and must point to a data structure previously created by vDSP_create_fftsetupD.
vDSP_destroy_fftsetupD frees an existing weights array. Any memory allocated for the array is released. After the vDSP_destroy_fftsetupD function returns, the structure is no longer valid and cannot be passed to any subsequent frequency-domain functions.
When forecasting memory requirements for building a weights array, keep in mind that this function generate complex numbers.
vDSP.hComputes an out-of-place radix-3 complex Fourier transform, either forward or inverse. The number of input and output values processed equals 3 times the power of 2 specified by parameter log2n; single precision.
void vDSP_fft3_zop (FFTSetup setup, DSPSplitComplex * signal, vDSP_Stride signalStride, DSPSplitComplex * result, vDSP_Stride resultStride, vDSP_Length log2n, FFTDirection flag);
Use vDSP_create_fftsetup, to initialize this function. FFT_RADIX3 must be specified in the call to vDSP_create_fftsetup . setup is preserved for reuse.
A complex vector signal input.
Specifies an address stride through the input vector signal. To process every element of the vector, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.
The complex vector signal output.
Specifies an address stride for the result. The value of resultStride should be 1 for best performance.
The base 2 exponent of the number of elements to process in a single input signal. log2n must be between 3 and 15, inclusive.
A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.
Results are undefined for other values of flag.
This performs the operation

See also the FFT Limitations sections in the Target chapters of the Developer's Guide.
See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."
vDSP.hComputes an out-of-place radix-3 complex Fourier transform, either forward or inverse. The number of input and output values processed equals 3 times the power of 2 specified by parameter log2n; double precision.
void vDSP_fft3_zopD (FFTSetupD setup, DSPDoubleSplitComplex * ioData, vDSP_Stride K, DSPDoubleSplitComplex * ioData2, vDSP_Stride L, vDSP_Length log2n, FFTDirection flag);
Use vDSP_create_fftsetup, to initialize this function. FFT_RADIX3 must be specified in the call to vDSP_create_fftsetup . setup is preserved for reuse.
A complex vector input.
Specifies an address stride through the input vector signal. To process every element of the vector, specify 1 for parameter K; to process every other element, specify 2. The value of K should be 1 for best performance.
The complex vector result.
Specifies an address stride for the result. The value of L should be 1 for best performance.
The base 2 exponent of the number of elements to process in a single input signal. log2n must be between 3 and 15, inclusive.
A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.
Results are undefined for other values of flag.
This performs the operation

See also the FFT Limitations sections in the Target chapters of the Developer's Guide.
See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."
vDSP.hComputes an out-of-place radix-5 complex Fourier transform, either forward or inverse. The number of input and output values processed equals 5 times the power of 2 specified by parameter log2n; single precision.
void vDSP_fft5_zop (FFTSetup setup, DSPSplitComplex * signal, vDSP_Stride signalStride, DSPSplitComplex * result, vDSP_Stride resultStride, vDSP_Length log2n, FFTDirection flag);
Use vDSP_create_fftsetup, to initialize this function. FFT_RADIX5 must be specified in the call to vDSP_create_fftsetup. setup is preserved for reuse.
A complex vector signal input.
Specifies an address stride through the input vector signal. To process every element of the vector, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.
The complex vector signal output.
Specifies an address stride for the result. The value of resultStride should be 1 for best performance.
The base 2 exponent of the number of elements to process in a single input signal. log2n must be between 3 and 15, inclusive.
A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.
Results are undefined for other values of flag.
This performs the operation

See also the FFT Limitations sections in the Target chapters of the Developer's Guide.
See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."
vDSP.hComputes an out-of-place radix-5 complex Fourier transform, either forward or inverse. The number of input and output values processed equals 5 times the power of 2 specified by parameter log2n; double precision.
void vDSP_fft5_zopD (FFTSetupD setup, DSPDoubleSplitComplex * ioData, vDSP_Stride K, DSPDoubleSplitComplex * ioData2, vDSP_Stride L, vDSP_Length log2n, FFTDirection flag);
Use vDSP_create_fftsetupD, to initialize this function. FFT_RADIX5 must be specified in the call to vDSP_create_fftsetupD. setup is preserved for reuse.
A complex vector input.
Specifies an address stride through the input vector signal. To process every element of the vector, specify 1 for parameter K; to process every other element, specify 2. The value of K should be 1 for best performance.
The complex vector result.
Specifies an address stride for the result. The value of L should be 1 for best performance.
The base 2 exponent of the number of elements to process in a single input signal. log2n must be between 3 and 15, inclusive.
A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.
Results are undefined for other values of flag.
This performs the operation

See also the FFT Limitations sections in the Target chapters of the Developer's Guide.
See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."
vDSP.hPerforms the same operation as VDSP_fft_zip on multiple signals with a single call.
void vDSP_fftm_zip (FFTSetup setup, DSPSplitComplex * signal, vDSP_Stride signalStride, vDSP_Stride fftStride, vDSP_Length log2n, vDSP_Length numFFT, FFTDirection flag);
Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.
A complex vector signal input.
Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.
The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).
The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 2 and 12, inclusive.
The number of different input signals.
A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.
Results are undefined for other values of flag.
The functions allow you to perform Fourier transforms on a number of different input signals at once, using a single call. They can be used for efficient processing of small input signals (less than 512 points). They will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.
The functions compute in-place complex discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).
See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."
vDSP.hPerforms the same operation as VDSP_fft_zipD on multiple signals with a single call.
void vDSP_fftm_zipD (FFTSetupD setup, DSPDoubleSplitComplex * signal, vDSP_Stride signalStride, vDSP_Stride fftStride, vDSP_Length log2n, vDSP_Length numFFT, FFTDirection flag);
Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.
A complex vector signal input.
Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.
The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).
The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 2 and 12, inclusive.
The number of different input signals.
A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.
Results are undefined for other values of flag.
The function allows you to perform Fourier transforms on a number of different input signals at once, using a single call. It can be used for efficient processing of small input signals (less than 512 points). It will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.
The function computes in-place complex discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).
See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."
vDSP.hPerforms the same operation as VDSP_fft_zipt on multiple signals with a single call.
void vDSP_fftm_zipt (FFTSetup setup, DSPSplitComplex * signal, vDSP_Stride signalStride, vDSP_Stride fftStride, DSPSplitComplex * temp, vDSP_Length log2n, vDSP_Length numFFT, FFTDirection flag);
Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.
A complex vector signal input.
Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.
The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).
A temporary vector used for storing interim results. The size of temporary memory for each part (real and imaginary) is the lower value of 4*n or 16k for best performance. Or you can simply pass the buffer of size 2^(log2n) for each part (real and imaginary). If possible, temp.realp and temp.imagp should be 32-byte aligned for best performance.
The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 2 and 12, inclusive.
The number of different input signals.
A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.
Results are undefined for other values of flag.
The function allows you to perform Fourier transforms on a number of different input signals at once, using a single call. It can be used for efficient processing of small input signals (less than 512 points). It will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.
The function computes in-place complex discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).
See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."
vDSP.hPerforms the same operation as VDSP_fft_ziptD on multiple signals with a single call.
void vDSP_fftm_ziptD (FFTSetupD setup, DSPDoubleSplitComplex * signal, vDSP_Stride signalStride, vDSP_Stride fftStride, DSPDoubleSplitComplex * temp, vDSP_Length log2n, vDSP_Length numFFT, FFTDirection flag);
Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.
A complex vector signal input.
Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.
The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).
A temporary vector used for storing interim results. The size of temporary memory for each part (real and imaginary) is the lower value of 4*n or 16k for best performance. Or you can simply pass the buffer of size 2^(log2n) for each part (real and imaginary). If possible, temp.realp and temp.imagp should be 32-byte aligned for best performance.
The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 2 and 12, inclusive.
The number of different input signals.
A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.
Results are undefined for other values of flag.
The function allows you to perform Fourier transforms on a number of different input signals at once, using a single call. It can be used for efficient processing of small input signals (less than 512 points). It will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.
The function computes in-place complex discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).
See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."
vDSP.hPerforms the same operation as VDSP_fft_zop on multiple signals with a single call.
void vDSP_fftm_zop (FFTSetup setup, DSPSplitComplex * signal, vDSP_Stride signalStride, vDSP_Stride fftStride, DSPSplitComplex * result, vDSP_Stride resultStride, vDSP_Stride rfftStride, vDSP_Length log2n, vDSP_Length numFFT, FFTDirection flag);
Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.
A complex vector signal input.
Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.
The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).
The complex vector signal output.
Specifies an address stride through output vector result. Thus, to process every element, specify a stride of 1; to process every other element, specify 2. The value of resultStride should be 1 for best performance.
The number of elements between the first element of one result vector and the next in the output vector result.
The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 2 and 12, inclusive.
The number of different input signals.
A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.
Results are undefined for other values of flag.
The function allows you to perform Fourier transforms on a number of different input signals at once, using a single call. It can be used for efficient processing of small input signals (less than 512 points). It will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.
The function computes out-of-place complex discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).
See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."
vDSP.hPerforms the same operation as VDSP_fft_zopD on multiple signals with a single call.
void vDSP_fftm_zopD (FFTSetupD setup, DSPDoubleSplitComplex * signal, vDSP_Stride signalStride, vDSP_Stride fftStride, DSPDoubleSplitComplex * result, vDSP_Stride resultStride, vDSP_Stride rfftStride, vDSP_Length log2n, vDSP_Length numFFT, FFTDirection flag);
Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.
A complex vector signal input.
Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.
The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).
The complex vector signal output.
Specifies an address stride through output vector result. Thus, to process every element, specify a stride of 1; to process every other element, specify 2. The value of resultStride should be 1 for best performance.
The number of elements between the first element of one result vector and the next in the output vector result.
The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 2 and 12, inclusive.
The number of different input signals.
A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.
Results are undefined for other values of flag.
The function allows you to perform Fourier transforms on a number of different input signals at once, using a single call. It can be used for efficient processing of small input signals (less than 512 points). It will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.
The function computes out-of-place complex discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).
See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."
vDSP.hPerforms the same operation as VDSP_fft_zopt on multiple signals with a single call.
void vDSP_fftm_zopt (FFTSetup setup, DSPSplitComplex * signal, vDSP_Stride signalStride, vDSP_Stride fftStride, DSPSplitComplex * result, vDSP_Stride resultStride, vDSP_Stride rfftStride, DSPSplitComplex * temp, vDSP_Length log2n, vDSP_Length numFFT, FFTDirection flag);
Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.
A complex vector signal input.
Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.
The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).
The complex vector signal output.
Specifies an address stride through output vector result. Thus, to process every element, specify a stride of 1; to process every other element, specify 2. The value of resultStride should be 1 for best performance.
The number of elements between the first element of one result vector and the next in the output vector result.
A temporary vector used for storing interim results. The size of temporary memory for each part (real and imaginary) is the lower value of 4*n or 16k for best performance. Or you can simply pass the buffer of size 2^(log2n) for each part (real and imaginary). If possible, temp.realp and temp.imagp should be 32-byte aligned for best performance.
The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 2 and 12, inclusive.
The number of different input signals.
A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.
Results are undefined for other values of flag.
The function allows you to perform Fourier transforms on a number of different input signals at once, using a single call. It can be used for efficient processing of small input signals (less than 512 points). It will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.
The function computes out-of-place complex discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).
See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."
vDSP.hPerforms the same operation as VDSP_fft_zoptD on multiple signals with a single call.
void vDSP_fftm_zoptD (FFTSetupD setup, DSPDoubleSplitComplex * signal, vDSP_Stride signalStride, vDSP_Stride fftStride, DSPDoubleSplitComplex * result, vDSP_Stride resultStride, vDSP_Stride rfftStride, DSPDoubleSplitComplex * temp, vDSP_Length log2n, vDSP_Length numFFT, FFTDirection flag);
Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.
A complex vector signal input.
Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.
The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).
The complex vector signal output.
Specifies an address stride through output vector result. Thus, to process every element, specify a stride of 1; to process every other element, specify 2. The value of resultStride should be 1 for best performance.
The number of elements between the first element of one result vector and the next in the output vector result.
A temporary vector used for storing interim results. The size of temporary memory for each part (real and imaginary) is the lower value of 4*n or 16k for best performance. Or you can simply pass the buffer of size 2^(log2n) for each part (real and imaginary). If possible, temp.realp and temp.imagp should be 32-byte aligned for best performance.
The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 2 and 12, inclusive.
The number of different input signals.
A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.
Results are undefined for other values of flag.
The function allows you to perform Fourier transforms on a number of different input signals at once, using a single call. It can be used for efficient processing of small input signals (less than 512 points). It will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.
The function computes out-of-place complex discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).
See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."
vDSP.h Performs the same operation as VDSP_fft_zrip on multiple signals with a single call.
void vDSP_fftm_zrip (FFTSetup setup, DSPSplitComplex * signal, vDSP_Stride signalStride, vDSP_Stride fftStride, vDSP_Length log2n, vDSP_Length numFFT, FFTDirection flag);
Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.
A complex vector signal input.
Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.
The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).
The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 3 and 12, inclusive.
The number of different input signals.
A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.
Results are undefined for other values of flag.
The functions allow you to perform Fourier transforms on a number of different input signals at once, using a single call. They can be used for efficient processing of small input signals (less than 512 points). They will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.
The functions compute in-place real discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).
See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."
vDSP.h Performs the same operation as VDSP_fft_zripD on multiple signals with a single call.
void vDSP_fftm_zripD (FFTSetupD setup, DSPDoubleSplitComplex * signal, vDSP_Stride signalStride, vDSP_Stride fftStride, vDSP_Length log2n, vDSP_Length numFFT, FFTDirection flag);
Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.
A complex vector signal input.
Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.
The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).
The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 3 and 12, inclusive.
The number of different input signals.
A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.
Results are undefined for other values of flag.
The functions allow you to perform Fourier transforms on a number of different input signals at once, using a single call. They can be used for efficient processing of small input signals (less than 512 points). They will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.
The functions compute in-place real discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).
See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."
vDSP.h Performs the same operation as VDSP_fft_zript on multiple signals with a single call.
void vDSP_fftm_zript (FFTSetup setup, DSPSplitComplex * signal, vDSP_Stride signalStride, vDSP_Stride fftStride, DSPSplitComplex * temp, vDSP_Length log2n, vDSP_Length numFFT, FFTDirection flag);
Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.
A complex vector signal input.
Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.
The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).
A temporary vector used for storing interim results. The size of temporary memory for each part (real and imaginary) is the lower value of 4*n or 16k for best performance. Or you can simply pass the buffer of size 2^(log2n) for each part (real and imaginary). If possible, temp.realp and temp.imagp should be 32-byte aligned for best performance.
The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 3 and 12, inclusive.
The number of different input signals.
A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.
Results are undefined for other values of flag.
The functions allow you to perform Fourier transforms on a number of different input signals at once, using a single call. They can be used for efficient processing of small input signals (less than 512 points). They will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.
The functions compute in-place real discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).
See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."
vDSP.h Performs the same operation as VDSP_fft_zriptD on multiple signals with a single call.
void vDSP_fftm_zriptD (FFTSetupD setup, DSPDoubleSplitComplex * signal, vDSP_Stride signalStride, vDSP_Stride fftStride, DSPDoubleSplitComplex * temp, vDSP_Length log2n, vDSP_Length numFFT, FFTDirection flag);
Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.
A complex vector signal input.
Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.
The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).
A temporary vector used for storing interim results. The size of temporary memory for each part (real and imaginary) is the lower value of 4*n or 16k for best performance. Or you can simply pass the buffer of size 2^(log2n) for each part (real and imaginary). If possible, temp.realp and temp.imagp should be 32-byte aligned for best performance.
The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 3 and 12, inclusive.
The number of different input signals.
A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.
Results are undefined for other values of flag.
The functions allow you to perform Fourier transforms on a number of different input signals at once, using a single call. They can be used for efficient processing of small input signals (less than 512 points). They will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.
The functions compute in-place real discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).
See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."
vDSP.hPerforms the same operation as VDSP_fft_zrop on multiple signals with a single call.
void vDSP_fftm_zrop (FFTSetup setup, DSPSplitComplex * signal, vDSP_Stride signalStride, vDSP_Stride fftStride, DSPSplitComplex * result, vDSP_Stride resultStride, vDSP_Stride rfftStride, vDSP_Length log2n, vDSP_Length numFFT, FFTDirection flag);
Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.
A complex vector signal input.
Specifies an address stride through input signals . To process every element of each signal, specify a stride of 1; to process every other element, specify 2. The value of signalStride should be 1 for best performance.
The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).
The complex vector signal output.
Specifies an address stride through output vector result. Thus, to process every element, specify a stride of 1; to process every other element, specify 2. The value of resultStride should be 1 for best performance.
The number of elements between the first element of one result vector and the next in the output vector result.
The base 2 exponent of the number of elements to process. For example, to process 1024 elements, specify 10 for parameter log2n. The value of log2n must be between 3 and 20, inclusive. See also the FFT Limitations sections in the Target chapters of the Developer's Guide.
The number of different input signals.
A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.
Results are undefined for other values of flag.
The functions allow you to perform Fourier transforms on a number of different input signals at once, using a single call. They can be used for efficient processing of small input signals (less than 512 points). They will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input vector, the parameter signal.
The functions compute out-of-place real discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).
See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."
vDSP.hPerforms the same operation as VDSP_fft_zropD on multiple signals with a single call.
void vDSP_fftm_zropD (FFTSetupD setup, DSPDoubleSplitComplex * signal, vDSP_Stride signalStride, vDSP_Stride fftStride, DSPDoubleSplitComplex * result, vDSP_Stride resultStride, vDSP_Stride rfftStride, vDSP_Length log2n, vDSP_Length numFFT, FFTDirection flag);
Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.
A complex vector signal input.
Specifies an address stride through input signals . To process every element of each signal, specify a stride of 1; to process every other element, specify 2. The value of signalStride should be 1 for best performance.
The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).
The complex vector signal output.
Specifies an address stride through output vector result. Thus, to process every element, specify a stride of 1; to process every other element, specify 2. The value of resultStride should be 1 for best performance.
The number of elements between the first element of one result vector and the next in the output vector result.
The base 2 exponent of the number of elements to process. For example, to process 1024 elements, specify 10 for parameter log2n. The value of log2n must be between 3 and 20, inclusive. See also the FFT Limitations sections in the Target chapters of the Developer's Guide.
The number of different input signals.
A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.
Results are undefined for other values of flag.
The functions allow you to perform Fourier transforms on a number of different input signals at once, using a single call. They can be used for efficient processing of small input signals (less than 512 points). They will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input vector, the parameter signal.
The functions compute out-of-place real discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).
See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."
vDSP.hPerforms the same operation as VDSP_fft_zropt on multiple signals with a single call.
void vDSP_fftm_zropt (FFTSetup setup, DSPSplitComplex * signal, vDSP_Stride signalStride, vDSP_Stride fftStride, DSPSplitComplex * result, vDSP_Stride resultStride, vDSP_Stride rfftStride, DSPSplitComplex * temp, vDSP_Length log2n, vDSP_Length numFFT, FFTDirection flag);
Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.
A complex vector signal input.
Specifies an address stride through input signals . To process every element of each signal, specify a stride of 1; to process every other element, specify 2. The value of signalStride should be 1 for best performance.
The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).
The complex vector signal output.
Specifies an address stride through output vector result. Thus, to process every element, specify a stride of 1; to process every other element, specify 2. The value of resultStride should be 1 for best performance.
The number of elements between the first element of one result vector and the next in the output vector result.
A temporary vector used for storing interim results. The size of temporary memory for each part (real and imaginary) is the lower value of 4*n or 16k for best performance. Or you can simply pass the buffer of size 2^(log2n) for each part (real and imaginary). If possible, temp.realp and temp.imagp should be 32-byte aligned for best performance.
The base 2 exponent of the number of elements to process. For example, to process 1024 elements, specify 10 for parameter log2n. The value of log2n must be between 3 and 20, inclusive. See also the FFT Limitations sections in the Target chapters of the Developer's Guide.
The number of different input signals.
A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.
Results are undefined for other values of flag.
The functions allow you to perform Fourier transforms on a number of different input signals at once, using a single call. They can be used for efficient processing of small input signals (less than 512 points). They will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input vector, the parameter signal.
The functions compute out-of-place real discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).
See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."
vDSP.hPerforms the same operation as VDSP_fft_zroptD on multiple signals with a single call.
void vDSP_fftm_zroptD (FFTSetupD setup, DSPDoubleSplitComplex * signal, vDSP_Stride signalStride, vDSP_Stride fftStride, DSPDoubleSplitComplex * result, vDSP_Stride resultStride, vDSP_Stride rfftStride, DSPDoubleSplitComplex * temp, vDSP_Length log2n, vDSP_Length numFFT, FFTDirection flag);
Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.
A complex vector signal input.
Specifies an address stride through input signals . To process every element of each signal, specify a stride of 1; to process every other element, specify 2. The value of signalStride should be 1 for best performance.
The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).
The complex vector signal output.
Specifies an address stride through output vector result. Thus, to process every element, specify a stride of 1; to process every other element, specify 2. The value of resultStride should be 1 for best performance.
The number of elements between the first element of one result vector and the next in the output vector result.
A temporary vector used for storing interim results. The size of temporary memory for each part (real and imaginary) is the lower value of 4*n or 16k for best performance. Or you can simply pass the buffer of size 2^(log2n) for each part (real and imaginary). If possible, temp.realp and temp.imagp should be 32-byte aligned for best performance.
The base 2 exponent of the number of elements to process. For example, to process 1024 elements, specify 10 for parameter log2n. The value of log2n must be between 3 and 20, inclusive. See also the FFT Limitations sections in the Target chapters of the Developer's Guide.
The number of different input signals.
A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.
Results are undefined for other values of flag.
The functions allow you to perform Fourier transforms on a number of different input signals at once, using a single call. They can be used for efficient processing of small input signals (less than 512 points). They will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input vector, the parameter signal.
The functions compute out-of-place real discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).
See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."
vDSP.h Computes an in-place single-precision complex discrete Fourier transform of the input/output vector signal, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).
void vDSP_fft_zip (FFTSetup setup, DSPSplitComplex * ioData, vDSP_Stride stride, vDSP_Length log2n, FFTDirection direction);
Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.
A complex vector input.
Specifies an address stride through the input/output vector signal. To process every element of the vector, specify 1 for parameter stride; to process every other element, specify 2. The value of stride should be 1 for best performance.
The base 2 exponent of the number of elements to process. For example, to process 1024 elements, specify 10 for parameter log2n. The value of log2n must be between 2 and 20, inclusive.
A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.
Results are undefined for other values of direction.
This performs the operation

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD.”
vDSP.h Computes an in-place double-precision complex discrete Fourier transform of the input/output vector signal, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).
void vDSP_fft_zipD (FFTSetupD setup, DSPDoubleSplitComplex * ioData, vDSP_Stride stride, vDSP_Length log2n, FFTDirection direction);
Points