21 #ifndef DSPLIB_SVD_SMALL_IXX_IXX_OXX_PRIV_H_
22 #define DSPLIB_SVD_SMALL_IXX_IXX_OXX_PRIV_H_
25 #include "../common/DSPLIB_inlines.h"
26 #include "../common/DSPLIB_utility.h"
40 #define DSPLIB_SVD_SMALL_IXX_IXX_OXX_PBLOCK_SIZE (0 * SE_PARAM_SIZE)
52 void *restrict pSuperDiag,
88 template <
typename dataType>
123 template <
typename dataType>
128 void *restrict pDiag,
129 void *restrict pSuperDiag,
181 template <
typename dataType>
186 void *restrict pDiag,
187 void *restrict pSuperDiag,
230 template <
typename dataType>
inline dataType
getRecip(dataType value)
232 dataType TwoP0 = 2.0;
234 dataType yy1 = __recip(value);
236 yy1 = yy1 * (TwoP0 - value * yy1);
237 yy1 = yy1 * (TwoP0 - value * yy1);
238 #if defined(ENABLE_LDRA_COVERAGE)
242 yy1 = yy1 * (TwoP0 - value * yy1);
243 yy1 = yy1 * (TwoP0 - value * yy1);
251 template <
typename dataType>
inline dataType
getSqrt(dataType a)
253 const dataType Half = 0.5f;
254 const dataType OneP5 = 1.5f;
263 x = x * (OneP5 - (a * x * x * Half));
264 x = x * (OneP5 - (a * x * x * Half));
274 template c7x::double_vec getSqrt<c7x::double_vec>(c7x::double_vec a);
278 const dataType Half = 0.5f;
279 const dataType OneP5 = 1.5f;
289 x = x * (OneP5 - (a * x * x * Half));
290 x = x * (OneP5 - (a * x * x * Half));
DSPLIB_STATUS DSPLIB_svd_small_exec_cn(DSPLIB_kernelHandle handle, void *restrict pA, void *restrict pU, void *restrict pV, void *restrict pDiag, void *restrict pSuperDiag, void *restrict pU1)
This function is the main execution function for the natural C implementation of the kernel....
DSPLIB_STATUS DSPLIB_svd_small_init_cn(DSPLIB_kernelHandle handle, const DSPLIB_bufParams2D_t *bufParamsIn, const DSPLIB_bufParams2D_t *bufParamsU, const DSPLIB_bufParams2D_t *bufParamsV, const DSPLIB_bufParams1D_t *bufParamsDiag, const DSPLIB_bufParams1D_t *bufParamsSuperDiag, const DSPLIB_svd_small_InitArgs *pKerInitArgs)
This function is the initialization function for the natural C implementation of the kernel....
template float getSqrt< float >(float a)
#define DSPLIB_SVD_SMALL_IXX_IXX_OXX_PBLOCK_SIZE
Macro to define the size of bufPblock array of DSPLIB_svd_PrivArgs structure.
DSPLIB_STATUS DSPLIB_svd_small_init_ci(DSPLIB_kernelHandle handle, const DSPLIB_bufParams2D_t *bufParamsIn, const DSPLIB_bufParams2D_t *bufParamsU, const DSPLIB_bufParams2D_t *bufParamsV, const DSPLIB_bufParams1D_t *bufParamsDiag, const DSPLIB_bufParams1D_t *bufParamsSuperDiag, const DSPLIB_svd_small_InitArgs *pKerInitArgs)
This function is the initialization function for the C7x implementation of the kernel....
DSPLIB_STATUS(* pFxnDSPLIB_svd_small_exec)(DSPLIB_kernelHandle handle, void *restrict pA, void *restrict pU, void *restrict pV, void *restrict pDiag, void *restrict pSuperDiag, void *restrict pU1)
This is a function pointer type that conforms to the declaration of DSPLIB_svd_exec_ci and DSPLIB_svd...
dataType getSqrt(dataType a)
template double getRecipSqrt< double >(double a)
DSPLIB_STATUS DSPLIB_svd_small_exec_ci(DSPLIB_kernelHandle handle, void *restrict pA, void *restrict pU, void *restrict pV, void *restrict pDiag, void *restrict pSuperDiag, void *restrict pU1)
This function is the main execution function for the C7x implementation of the kernel....
dataType getRecip(dataType value)
dataType getRecipSqrt(dataType a)
template float getRecipSqrt< float >(float a)
template double getSqrt< double >(double a)
DSPLIB_STATUS_NAME DSPLIB_STATUS
Return value for DSPLIB functions.
DSPLIB_STATUS_NAME
The enumeration of all status codes.
void * DSPLIB_kernelHandle
Handle type for DSPLIB operations.
A structure for a 1 dimensional buffer descriptor.
A structure for a 2 dimensional buffer descriptor.
Structure containing the parameters to initialize the kernel.
Structure that is reserved for internal use by the kernel.
uint32_t enableReducedForm
Flag for enabling the calculation of reduced form enableReducedForm = 1 for reduced form SVD calc ena...
uint32_t strideU
Stride between rows of U matrix
uint32_t strideV
Stride between rows of V matrix
pFxnDSPLIB_svd_small_exec execute
Function pointer to point to the right execution variant between DSPLIB_svd_small_exec_cn and DSPLIB_...
uint32_t data_type
Data Type.
int32_t strideIn
Stride between rows of input data matrix
uint32_t widthIn
Size of input buffer for different batches DSPLIB_svd_small_init that will be retrieved and used by D...
uint32_t heightIn
Height of input data matrix