|
Mac OS 9
|
AltiVec DSP Interfaces. More...
Go to the source code of this file.
Data Structures | |
| struct | DSPComplex |
| struct | DSPSplitComplex |
Macros | |
| #define | USE_NONE_APPLE_STANDARD_DATATYPES 1 |
Typedefs | |
| typedef struct DSPComplex | DSPComplex |
| typedef struct DSPSplitComplex | DSPSplitComplex |
| typedef struct OpaqueFFTSetup * | FFTSetup |
| typedef SInt32 | FFTDirection |
| typedef SInt32 | FFTRadix |
| typedef DSPComplex | COMPLEX |
| typedef DSPSplitComplex | COMPLEX_SPLIT |
Functions | |
| FFTSetup | create_fftsetup (UInt32 log2n, FFTRadix radix) |
| void | destroy_fftsetup (FFTSetup setup) |
| void | ctoz (const DSPComplex C[], SInt32 strideC, DSPSplitComplex *Z, SInt32 strideZ, UInt32 size) |
| void | ztoc (const DSPSplitComplex *Z, SInt32 strideZ, DSPComplex C[], SInt32 strideC, UInt32 size) |
| void | fft_zip (FFTSetup setup, DSPSplitComplex *ioData, SInt32 stride, UInt32 log2n, FFTDirection direction) |
| void | fft_zipt (FFTSetup setup, DSPSplitComplex *ioData, SInt32 stride, DSPSplitComplex *bufferTemp, UInt32 log2n, FFTDirection direction) |
| void | fft_zop (FFTSetup setup, DSPSplitComplex *signal, SInt32 signalStride, DSPSplitComplex *result, SInt32 strideResult, UInt32 log2n, FFTDirection direction) |
| void | fft_zopt (FFTSetup setup, DSPSplitComplex *signal, SInt32 signalStride, DSPSplitComplex *result, SInt32 strideResult, DSPSplitComplex *bufferTemp, UInt32 log2n, FFTDirection direction) |
| void | fft_zrip (FFTSetup setup, DSPSplitComplex *ioData, SInt32 stride, UInt32 log2n, FFTDirection direction) |
| void | fft_zript (FFTSetup setup, DSPSplitComplex *ioData, SInt32 stride, DSPSplitComplex *bufferTemp, UInt32 log2n, FFTDirection direction) |
| void | fft_zrop (FFTSetup setup, DSPSplitComplex *signal, SInt32 signalStride, DSPSplitComplex *result, SInt32 strideResult, UInt32 log2n, FFTDirection direction) |
| void | fft_zropt (FFTSetup setup, DSPSplitComplex *signal, SInt32 signalStride, DSPSplitComplex *result, SInt32 strideResult, DSPSplitComplex *bufferTemp, UInt32 log2n, FFTDirection direction) |
| void | fft2d_zip (FFTSetup setup, DSPSplitComplex *ioData, SInt32 strideInRow, SInt32 strideInCol, UInt32 log2nInCol, UInt32 log2nInRow, FFTDirection direction) |
| void | fft2d_zipt (FFTSetup setup, DSPSplitComplex *ioData, SInt32 strideInRow, SInt32 strideInCol, DSPSplitComplex *bufferTemp, UInt32 log2nInCol, UInt32 log2nInRow, FFTDirection direction) |
| void | fft2d_zop (FFTSetup setup, DSPSplitComplex *signal, SInt32 signalStrideInRow, SInt32 signalStrideInCol, DSPSplitComplex *result, SInt32 strideResultInRow, SInt32 strideResultInCol, UInt32 log2nInCol, UInt32 log2nInRow, SInt32 flag) |
| void | fft2d_zopt (FFTSetup setup, DSPSplitComplex *signal, SInt32 signalStrideInRow, SInt32 signalStrideInCol, DSPSplitComplex *result, SInt32 strideResultInRow, SInt32 strideResultInCol, DSPSplitComplex *bufferTemp, UInt32 log2nInCol, UInt32 log2nInRow, SInt32 flag) |
| void | fft2d_zrip (FFTSetup setup, DSPSplitComplex *ioData, SInt32 strideInRow, SInt32 strideInCol, UInt32 log2nInCol, UInt32 log2nInRow, FFTDirection direction) |
| void | fft2d_zript (FFTSetup setup, DSPSplitComplex *ioData, SInt32 strideInRow, SInt32 strideInCol, DSPSplitComplex *bufferTemp, UInt32 log2nInCol, UInt32 log2nInRow, FFTDirection direction) |
| void | fft2d_zrop (FFTSetup setup, DSPSplitComplex *signal, SInt32 signalStrideInRow, SInt32 signalStrideInCol, DSPSplitComplex *result, SInt32 strideResultInRow, SInt32 strideResultInCol, UInt32 log2nInCol, UInt32 log2nInRow, SInt32 flag) |
| void | fft2d_zropt (FFTSetup setup, DSPSplitComplex *signal, SInt32 signalStrideInRow, SInt32 signalStrideInCol, DSPSplitComplex *result, SInt32 strideResultInRow, SInt32 strideResultInCol, DSPSplitComplex *bufferTemp, UInt32 log2nInCol, UInt32 log2nInRow, SInt32 flag) |
| void | conv (const float signal[], SInt32 signalStride, const float filter[], SInt32 strideFilter, float result[], SInt32 strideResult, SInt32 lenResult, SInt32 lenFilter) |
| void | vadd (const float input1[], SInt32 stride1, const float input2[], SInt32 stride2, float result[], SInt32 strideResult, UInt32 size) |
| void | vsub (const float input1[], SInt32 stride1, const float input2[], SInt32 stride2, float result[], SInt32 strideResult, UInt32 size) |
| void | vmul (const float input1[], SInt32 stride1, const float input2[], SInt32 stride2, float result[], SInt32 strideResult, UInt32 size) |
| void | vsmul (const float input1[], SInt32 stride1, const float *input2, float result[], SInt32 strideResult, UInt32 size) |
| void | vsq (const float input[], SInt32 strideInput, float result[], SInt32 strideResult, UInt32 size) |
| void | vssq (const float input[], SInt32 strideInput, float result[], SInt32 strideResult, UInt32 size) |
| void | dotpr (const float input1[], SInt32 stride1, const float input2[], SInt32 stride2, float *result, UInt32 size) |
| void | vam (const float input1[], SInt32 stride1, const float input2[], SInt32 stride2, const float input3[], SInt32 stride3, float result[], SInt32 strideResult, UInt32 size) |
| void | zconv (DSPSplitComplex *signal, SInt32 signalStride, DSPSplitComplex *filter, SInt32 strideFilter, DSPSplitComplex *result, SInt32 strideResult, SInt32 lenResult, SInt32 lenFilter) |
| void | zvadd (DSPSplitComplex *input1, SInt32 stride1, DSPSplitComplex *input2, SInt32 stride2, DSPSplitComplex *result, SInt32 strideResult, UInt32 size) |
| void | zvsub (DSPSplitComplex *input1, SInt32 stride1, DSPSplitComplex *input2, SInt32 stride2, DSPSplitComplex *result, SInt32 strideResult, UInt32 size) |
| void | zvmul (DSPSplitComplex *input1, SInt32 stride1, DSPSplitComplex *input2, SInt32 stride2, DSPSplitComplex *result, SInt32 strideResult, UInt32 size, SInt32 conjugate) |
| void | zdotpr (DSPSplitComplex *input1, SInt32 stride1, DSPSplitComplex *input2, SInt32 stride2, DSPSplitComplex *result, UInt32 size) |
| void | zidotpr (DSPSplitComplex *input1, SInt32 stride1, DSPSplitComplex *input2, SInt32 stride2, DSPSplitComplex *result, UInt32 size) |
| void | zrdotpr (DSPSplitComplex *input1, SInt32 stride1, const float input2[], SInt32 stride2, DSPSplitComplex *result, UInt32 size) |
| void | zvcma (DSPSplitComplex *input1, SInt32 stride1, DSPSplitComplex *input2, SInt32 stride2, DSPSplitComplex *input3, SInt32 stride3, DSPSplitComplex *result, SInt32 strideResult, UInt32 size) |
| void | zrvadd (DSPSplitComplex *input1, SInt32 stride1, const float input2[], SInt32 stride2, DSPSplitComplex *result, SInt32 strideResult, UInt32 size) |
| void | zrvsub (DSPSplitComplex *input1, SInt32 stride1, const float input2[], SInt32 stride2, DSPSplitComplex *result, SInt32 strideResult, UInt32 size) |
| void | zrvmul (DSPSplitComplex *input1, SInt32 stride1, const float input2[], SInt32 stride2, DSPSplitComplex *result, SInt32 strideResult, UInt32 size) |
AltiVec DSP Interfaces.
For bug reports, consult the following page on the World Wide Web:
http://developer.apple.com/bugreporter/
| anonymous enum |
!defined(USE_NONE_APPLE_STANDARD_DATATYPES)
| void conv | ( | const float | signal[], |
| SInt32 | signalStride, | ||
| const float | filter[], | ||
| SInt32 | strideFilter, | ||
| float | result[], | ||
| SInt32 | strideResult, | ||
| SInt32 | lenResult, | ||
| SInt32 | lenFilter | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Function conv
Floating Point Convolution and Correlation
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. strideFilter can be positive for correlation or negative for convolution. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© conv()
| FFTSetup create_fftsetup | ( | UInt32 | log2n, |
| FFTRadix | radix | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© The criteria to invoke the PowerPC vector implementation is subject to change and become less restrictive in the future. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Functions create_fftsetup and destroy_fftsetup.
create_fftsetup will allocate memory and setup a weight array used by the FFT. The call destroy_fftsetup will free the array. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© create_fftsetup()
| void ctoz | ( | const DSPComplex | C[], |
| SInt32 | strideC, | ||
| DSPSplitComplex * | Z, | ||
| SInt32 | strideZ, | ||
| UInt32 | size | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Functions ctoz and ztoc.
ctoz converts a complex array to a complex-split array ztoc converts a complex-split array to a complex array
Criteria to invoke PowerPC vector code:
| void destroy_fftsetup | ( | FFTSetup | setup | ) |
| void dotpr | ( | const float | input1[], |
| SInt32 | stride1, | ||
| const float | input2[], | ||
| SInt32 | stride2, | ||
| float * | result, | ||
| UInt32 | size | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Function dotpr
Floating Point Dot product
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© dotpr()
| void fft2d_zip | ( | FFTSetup | setup, |
| DSPSplitComplex * | ioData, | ||
| SInt32 | strideInRow, | ||
| SInt32 | strideInCol, | ||
| UInt32 | log2nInCol, | ||
| UInt32 | log2nInRow, | ||
| FFTDirection | direction | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Functions fft2d_zip and fft2d_zipt
In-place two dimensional Split Complex Fourier Transform with or without temporary memory
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. The size of temporary memory for each part is the lower value of 4*n and 16k. ( log2n = log2nInRow + log2nInCol ) Direction can be either kFFTDirection_Forward or kFFTDirection_Inverse. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© fft2d_zip()
| void fft2d_zipt | ( | FFTSetup | setup, |
| DSPSplitComplex * | ioData, | ||
| SInt32 | strideInRow, | ||
| SInt32 | strideInCol, | ||
| DSPSplitComplex * | bufferTemp, | ||
| UInt32 | log2nInCol, | ||
| UInt32 | log2nInRow, | ||
| FFTDirection | direction | ||
| ) |
| void fft2d_zop | ( | FFTSetup | setup, |
| DSPSplitComplex * | signal, | ||
| SInt32 | signalStrideInRow, | ||
| SInt32 | signalStrideInCol, | ||
| DSPSplitComplex * | result, | ||
| SInt32 | strideResultInRow, | ||
| SInt32 | strideResultInCol, | ||
| UInt32 | log2nInCol, | ||
| UInt32 | log2nInRow, | ||
| SInt32 | flag | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Functions fft2d_zop and fft2d_zopt
Out-of-Place two dimemsional Split Complex Fourier Transform with or without temporary memory
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. The size of temporary memory for each part is the lower value of 4*n and 16k. ( log2n = log2nInRow + log2nInCol ) Direction can be either kFFTDirection_Forward or kFFTDirection_Inverse. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© fft2d_zop()
| void fft2d_zopt | ( | FFTSetup | setup, |
| DSPSplitComplex * | signal, | ||
| SInt32 | signalStrideInRow, | ||
| SInt32 | signalStrideInCol, | ||
| DSPSplitComplex * | result, | ||
| SInt32 | strideResultInRow, | ||
| SInt32 | strideResultInCol, | ||
| DSPSplitComplex * | bufferTemp, | ||
| UInt32 | log2nInCol, | ||
| UInt32 | log2nInRow, | ||
| SInt32 | flag | ||
| ) |
| void fft2d_zrip | ( | FFTSetup | setup, |
| DSPSplitComplex * | ioData, | ||
| SInt32 | strideInRow, | ||
| SInt32 | strideInCol, | ||
| UInt32 | log2nInCol, | ||
| UInt32 | log2nInRow, | ||
| FFTDirection | direction | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Functions fft2d_zrip and fft2d_zript
In-place two dimensional Real Fourier Transform with or without temporary memory, Split Complex Format
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. The size of temporary memory for each part is the lower value of 4*n and 16k. ( log2n = log2nInRow + log2nInCol ) Direction can be either kFFTDirection_Forward or kFFTDirection_Inverse. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© fft2d_zrip()
| void fft2d_zript | ( | FFTSetup | setup, |
| DSPSplitComplex * | ioData, | ||
| SInt32 | strideInRow, | ||
| SInt32 | strideInCol, | ||
| DSPSplitComplex * | bufferTemp, | ||
| UInt32 | log2nInCol, | ||
| UInt32 | log2nInRow, | ||
| FFTDirection | direction | ||
| ) |
| void fft2d_zrop | ( | FFTSetup | setup, |
| DSPSplitComplex * | signal, | ||
| SInt32 | signalStrideInRow, | ||
| SInt32 | signalStrideInCol, | ||
| DSPSplitComplex * | result, | ||
| SInt32 | strideResultInRow, | ||
| SInt32 | strideResultInCol, | ||
| UInt32 | log2nInCol, | ||
| UInt32 | log2nInRow, | ||
| SInt32 | flag | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Functions fft2d_zrop and fft2d_zropt
Out-of-Place Two-Dimemsional Real Fourier Transform with or without temporary memory, Split Complex Format
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. The size of temporary memory for each part is the lower value of 4*n and 16k. ( log2n = log2nInRow + log2nInCol ) Direction can be either kFFTDirection_Forward or kFFTDirection_Inverse. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© fft2d_zrop()
| void fft2d_zropt | ( | FFTSetup | setup, |
| DSPSplitComplex * | signal, | ||
| SInt32 | signalStrideInRow, | ||
| SInt32 | signalStrideInCol, | ||
| DSPSplitComplex * | result, | ||
| SInt32 | strideResultInRow, | ||
| SInt32 | strideResultInCol, | ||
| DSPSplitComplex * | bufferTemp, | ||
| UInt32 | log2nInCol, | ||
| UInt32 | log2nInRow, | ||
| SInt32 | flag | ||
| ) |
| void fft_zip | ( | FFTSetup | setup, |
| DSPSplitComplex * | ioData, | ||
| SInt32 | stride, | ||
| UInt32 | log2n, | ||
| FFTDirection | direction | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Functions fft_zip and fft_zipt
In-place Split Complex Fourier Transform with or without temporary memory.
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. The size of temporary memory for each part is the lower value of 4*n and 16k. Direction can be either kFFTDirection_Forward or kFFTDirection_Inverse. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© fft_zip()
| void fft_zipt | ( | FFTSetup | setup, |
| DSPSplitComplex * | ioData, | ||
| SInt32 | stride, | ||
| DSPSplitComplex * | bufferTemp, | ||
| UInt32 | log2n, | ||
| FFTDirection | direction | ||
| ) |
| void fft_zop | ( | FFTSetup | setup, |
| DSPSplitComplex * | signal, | ||
| SInt32 | signalStride, | ||
| DSPSplitComplex * | result, | ||
| SInt32 | strideResult, | ||
| UInt32 | log2n, | ||
| FFTDirection | direction | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Functions fft_zop and fft_zopt
Out-of-place Split Complex Fourier Transform with or without temporary memory
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. The size of temporary memory for each part is the lower value of 4*n and 16k. Direction can be either kFFTDirection_Forward or kFFTDirection_Inverse. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© fft_zop()
| void fft_zopt | ( | FFTSetup | setup, |
| DSPSplitComplex * | signal, | ||
| SInt32 | signalStride, | ||
| DSPSplitComplex * | result, | ||
| SInt32 | strideResult, | ||
| DSPSplitComplex * | bufferTemp, | ||
| UInt32 | log2n, | ||
| FFTDirection | direction | ||
| ) |
| void fft_zrip | ( | FFTSetup | setup, |
| DSPSplitComplex * | ioData, | ||
| SInt32 | stride, | ||
| UInt32 | log2n, | ||
| FFTDirection | direction | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Functions fft_zrip and fft_zript
In-Place Real Fourier Transform with or without temporary memory, split Complex Format
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. The size of temporary memory for each part is the lower value of 4*n and 16k. Direction can be either kFFTDirection_Forward or kFFTDirection_Inverse. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© fft_zrip()
| void fft_zript | ( | FFTSetup | setup, |
| DSPSplitComplex * | ioData, | ||
| SInt32 | stride, | ||
| DSPSplitComplex * | bufferTemp, | ||
| UInt32 | log2n, | ||
| FFTDirection | direction | ||
| ) |
| void fft_zrop | ( | FFTSetup | setup, |
| DSPSplitComplex * | signal, | ||
| SInt32 | signalStride, | ||
| DSPSplitComplex * | result, | ||
| SInt32 | strideResult, | ||
| UInt32 | log2n, | ||
| FFTDirection | direction | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Functions fft_zrop and fft_zropt
Out-of-Place Real Fourier Transform with or without temporary memory, split Complex Format
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. The size of temporary memory for each part is the lower value of 4*n and 16k. Direction can be either kFFTDirection_Forward or kFFTDirection_Inverse. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© fft_zrop()
| void fft_zropt | ( | FFTSetup | setup, |
| DSPSplitComplex * | signal, | ||
| SInt32 | signalStride, | ||
| DSPSplitComplex * | result, | ||
| SInt32 | strideResult, | ||
| DSPSplitComplex * | bufferTemp, | ||
| UInt32 | log2n, | ||
| FFTDirection | direction | ||
| ) |
| void vadd | ( | const float | input1[], |
| SInt32 | stride1, | ||
| const float | input2[], | ||
| SInt32 | stride2, | ||
| float | result[], | ||
| SInt32 | strideResult, | ||
| UInt32 | size | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Function vadd
Floating Point Add
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© vadd()
| void vam | ( | const float | input1[], |
| SInt32 | stride1, | ||
| const float | input2[], | ||
| SInt32 | stride2, | ||
| const float | input3[], | ||
| SInt32 | stride3, | ||
| float | result[], | ||
| SInt32 | strideResult, | ||
| UInt32 | size | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Function vam
Floating Point vadd and Multiply
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© vam()
| void vmul | ( | const float | input1[], |
| SInt32 | stride1, | ||
| const float | input2[], | ||
| SInt32 | stride2, | ||
| float | result[], | ||
| SInt32 | strideResult, | ||
| UInt32 | size | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Function vmul
Floating Point Multiply
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© vmul()
| void vsmul | ( | const float | input1[], |
| SInt32 | stride1, | ||
| const float * | input2, | ||
| float | result[], | ||
| SInt32 | strideResult, | ||
| UInt32 | size | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Function vsmul
Floating Point - Scalar Multiply
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© vsmul()
| void vsq | ( | const float | input[], |
| SInt32 | strideInput, | ||
| float | result[], | ||
| SInt32 | strideResult, | ||
| UInt32 | size | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Function vsq
Floating Point Square
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© vsq()
| void vssq | ( | const float | input[], |
| SInt32 | strideInput, | ||
| float | result[], | ||
| SInt32 | strideResult, | ||
| UInt32 | size | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Function vssq
Floating Point Signed Square
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© vssq()
| void vsub | ( | const float | input1[], |
| SInt32 | stride1, | ||
| const float | input2[], | ||
| SInt32 | stride2, | ||
| float | result[], | ||
| SInt32 | strideResult, | ||
| UInt32 | size | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Function vsub
Floating Point Substract
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© vsub()
| void zconv | ( | DSPSplitComplex * | signal, |
| SInt32 | signalStride, | ||
| DSPSplitComplex * | filter, | ||
| SInt32 | strideFilter, | ||
| DSPSplitComplex * | result, | ||
| SInt32 | strideResult, | ||
| SInt32 | lenResult, | ||
| SInt32 | lenFilter | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Function zconv
Split Complex Convolution and Correlation
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. strideFilter can be positive for correlation or negative for convolution ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© zconv()
| void zdotpr | ( | DSPSplitComplex * | input1, |
| SInt32 | stride1, | ||
| DSPSplitComplex * | input2, | ||
| SInt32 | stride2, | ||
| DSPSplitComplex * | result, | ||
| UInt32 | size | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Function zdotpr
Split Complex Dot product
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© zdotpr()
| void zidotpr | ( | DSPSplitComplex * | input1, |
| SInt32 | stride1, | ||
| DSPSplitComplex * | input2, | ||
| SInt32 | stride2, | ||
| DSPSplitComplex * | result, | ||
| UInt32 | size | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Function zidotpr
Split Complex Inner Dot product
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© zidotpr()
| void zrdotpr | ( | DSPSplitComplex * | input1, |
| SInt32 | stride1, | ||
| const float | input2[], | ||
| SInt32 | stride2, | ||
| DSPSplitComplex * | result, | ||
| UInt32 | size | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Function zrdotpr
Split Complex - Real Dot product
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© zrdotpr()
| void zrvadd | ( | DSPSplitComplex * | input1, |
| SInt32 | stride1, | ||
| const float | input2[], | ||
| SInt32 | stride2, | ||
| DSPSplitComplex * | result, | ||
| SInt32 | strideResult, | ||
| UInt32 | size | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Function zrvadd
Split Complex - Real Add
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© zrvadd()
| void zrvmul | ( | DSPSplitComplex * | input1, |
| SInt32 | stride1, | ||
| const float | input2[], | ||
| SInt32 | stride2, | ||
| DSPSplitComplex * | result, | ||
| SInt32 | strideResult, | ||
| UInt32 | size | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Function zrvmul
Split Complex - Real Multiply
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© zrvmul()
| void zrvsub | ( | DSPSplitComplex * | input1, |
| SInt32 | stride1, | ||
| const float | input2[], | ||
| SInt32 | stride2, | ||
| DSPSplitComplex * | result, | ||
| SInt32 | strideResult, | ||
| UInt32 | size | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Function zrvsub
Split Complex - Real Substract
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© zrvsub()
| void ztoc | ( | const DSPSplitComplex * | Z, |
| SInt32 | strideZ, | ||
| DSPComplex | C[], | ||
| SInt32 | strideC, | ||
| UInt32 | size | ||
| ) |
| void zvadd | ( | DSPSplitComplex * | input1, |
| SInt32 | stride1, | ||
| DSPSplitComplex * | input2, | ||
| SInt32 | stride2, | ||
| DSPSplitComplex * | result, | ||
| SInt32 | strideResult, | ||
| UInt32 | size | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Function zvadd
Split Complex vadd
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© zvadd()
| void zvcma | ( | DSPSplitComplex * | input1, |
| SInt32 | stride1, | ||
| DSPSplitComplex * | input2, | ||
| SInt32 | stride2, | ||
| DSPSplitComplex * | input3, | ||
| SInt32 | stride3, | ||
| DSPSplitComplex * | result, | ||
| SInt32 | strideResult, | ||
| UInt32 | size | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Function zvcma
Split Complex Conjugate Multiply And vadd
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© zvcma()
| void zvmul | ( | DSPSplitComplex * | input1, |
| SInt32 | stride1, | ||
| DSPSplitComplex * | input2, | ||
| SInt32 | stride2, | ||
| DSPSplitComplex * | result, | ||
| SInt32 | strideResult, | ||
| UInt32 | size, | ||
| SInt32 | conjugate | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Function zvmul
Split Complex Multiply
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. The conjugate value can be 1 or -1. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© zvmul()
| void zvsub | ( | DSPSplitComplex * | input1, |
| SInt32 | stride1, | ||
| DSPSplitComplex * | input2, | ||
| SInt32 | stride2, | ||
| DSPSplitComplex * | result, | ||
| SInt32 | strideResult, | ||
| UInt32 | size | ||
| ) |
©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© Function zvsub
Split Complex Substract
Criteria to invoke PowerPC vector code:
If any of the above criteria are not satisfied, the PowerPC scalor code implementation will be used. ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© zvsub()