FFTLIB User Guide
FFTLIB_FFT_fft_ixX_cxX_oxX_priv.h
Go to the documentation of this file.
1 /******************************************************************************
2 * *
3 * module name :FFTLIB *
4 * *
5 * module descripton :Matrix Multiply Accelerator Library module for C7x+MMA *
6 * *
7 * Copyright (C) 2017-2018 Texas Instruments Incorporated - https://www.ti.com/ *
8 * ALL RIGHTS RESERVED *
9 * *
10 ******************************************************************************/
11 
12 /********************************************************************************
13  * @file FFTLIB_FFTLIB__fft_ixX_cxX_oxX_priv.h
14  *
15  * @brief File to hold private parameter of function FFTLIB_FFT_fft
16  *
17  * @version 0.1 - Jan 2018 : Initial Version
18  *
19  ********************************************************************************/
20 
21 #ifndef FFTLIB_FFT_FFT_IXX_CXX_OXX_PRIV_H_
22 #define FFTLIB_FFT_FFT_IXX_CXX_OXX_PRIV_H_
23 
24 
26 #include "../../common/FFTLIB_utility.h"
27 #include "../FFTLIB_FFT_dftSmall_ixX_cxX_oxX/FFTLIB_FFT_dftSmall_ixX_cxX_oxX_priv.h"
28 #include "../FFTLIB_FFT_dftLarge_ixX_cxX_oxX/FFTLIB_FFT_dftLarge_ixX_cxX_oxX_priv.h"
29 #include "../FFTLIB_FFT_highRadixDecompositions_ixX_cxX_oxX/FFTLIB_FFT_highRadixDecompositions_ixX_cxX_oxX_priv.h"
30 
57  const FFTLIB_FFT_fft_ixX_cxX_oxX_InitArgs *pKerInitArgs,
58  int32_t MMA_SIZE,
59  int32_t *dftSmall,
60  int32_t *dftLarge,
61  int32_t *highRadixDecompositions);
62 
76 template <typename dataType>
78  const FFTLIB_FFT_fft_ixX_cxX_oxX_InitArgs * pKerInitArgs,
79  void *restrict pW,
80  const FFTLIB_bufParams1D_t * bufParamsW);
81 
100 template <uint32_t dataType>
102  const FFTLIB_FFT_fft_ixX_cxX_oxX_InitArgs * pKerInitArgs,
103  FFTLIB_bufParams1D_t * bufParamsX,
104  FFTLIB_bufParams1D_t * bufParamsW,
105  FFTLIB_bufParams1D_t * bufParamsY);
106 
110 typedef struct
111 {
115  int32_t mmaSize;
116  /* ---------------------------------------------------------------- */
117  /* MISRAC Rule 19.2(UNION) Deviation: Only one of the members */
118  /* of the following union is used in a given use case. */
119  /* ---------------------------------------------------------------- */
120  union {
130  } privArgs;
132 
133 #endif /* FFTLIB_FFT_FFT_IXX_CXX_OXX_PRIV_H_ */
134 
135 /* ======================================================================== */
136 /* End of file: FFTLIB_FFT_fft_ixX_cxX_oxX.h */
137 /* ======================================================================== */
void FFTLIB_FFT_fft_ixX_cxX_oxX_determineKernelVariant(const FFTLIB_FFT_fft_ixX_cxX_oxX_InitArgs *pKerInitArgs, int32_t MMA_SIZE, int32_t *dftSmall, int32_t *dftLarge, int32_t *highRadixDecompositions)
This is an internal function that is used to determine which FFT kernel variant to call for optimal D...
FFTLIB_STATUS FFTLIB_FFT_fft_ixX_cxX_oxX_twGen(const FFTLIB_FFT_fft_ixX_cxX_oxX_InitArgs *pKerInitArgs, void *restrict pW, const FFTLIB_bufParams1D_t *bufParamsW)
This is a utility function that generates the computational matrices into the provided buffer.
FFTLIB_STATUS_NAME
The enumeration of all status codes.
Definition: FFTLIB_types.h:172
FFTLIB_STATUS FFTLIB_FFT_fft_ixX_cxX_oxX_getSizes(const FFTLIB_FFT_fft_ixX_cxX_oxX_InitArgs *pKerInitArgs, FFTLIB_bufParams1D_t *bufParamsX, FFTLIB_bufParams1D_t *bufParamsW, FFTLIB_bufParams1D_t *bufParamsY)
This function is a utility function that the application calls to obtain the sizes of data buffers.
Structure that is reserved for internal use by the kernel.
Structure that is reserved for internal use by the kernel.
Structure containing the parameters for DFT computation.
Structure that is reserved for internal use by the kernel.
FFTLIB_FFT_dftSmall_ixX_cxX_oxX_PrivArgs dftSmall
Structure to maintain the internal use parameters of FFTLIB_FFT_dftSmall_ixX_cxX_oxX kernel
FFTLIB_FFT_highRadixDecompositions_ixX_cxX_oxX_PrivArgs highRadixDecompositions
Structure to maintain the internal use parameters of FFTLIB_FFT_highRadixDecompositions_ixX_cxX_oxX k...
int32_t mmaSize
Field to maintain the MMA vector width value
FFTLIB_FFT_fft_ixX_cxX_oxX_InitArgs initArgs
Structure holding initialization parameters
FFTLIB_FFT_dftLarge_ixX_cxX_oxX_PrivArgs dftLarge
Structure to maintain the internal use parameters of FFTLIB_FFT_dftLarge_ixX_cxX_oxX kernel
A structure for a 1 dimensional buffer descriptor.