46 #if (__C7X_VEC_SIZE_BITS__ == 512)
75 bool condWidth = (bufParamsA->
dim_y == 6);
76 bool condHeight = (bufParamsA->
dim_x == 6) || (bufParamsA->
dim_x == 7);
78 if (!(
bool)((uint32_t)condWidth & (uint32_t)condHeight)) {
85 DSPLIB_DEBUGPRINTFN(0,
"%s\n",
"The Kernel is NOT IMPLEMENTED for __C7X_VEC_SIZE_BITS__ != 512 ");
93 const void *restrict pA,
94 const void *restrict pU,
95 const void *restrict pV,
96 const void *restrict pDiag,
97 const void *restrict pSuperDiag,
98 const void *restrict pU1)
102 #if (__C7X_VEC_SIZE_BITS__ == 512)
104 if ((pA == NULL) || (pU == NULL) || (pV == NULL) || (pDiag == NULL) || (pSuperDiag == NULL) || (pU1 == NULL)) {
113 DSPLIB_DEBUGPRINTFN(0,
"%s\n",
"The Kernel is NOT IMPLEMENTED for __C7X_VEC_SIZE_BITS__ != 512 ");
134 #if (__C7X_VEC_SIZE_BITS__ == 512)
160 bufParamsSuperDiag, pKerInitArgs);
175 bufParamsSuperDiag, pKerInitArgs);
183 DSPLIB_DEBUGPRINTFN(0,
"%s\n",
"The Kernel is NOT IMPLEMENTED for __C7X_VEC_SIZE_BITS__ != 512 ");
195 void *restrict pDiag,
196 void *restrict pSuperDiag,
203 #if (__C7X_VEC_SIZE_BITS__ == 512)
210 status = pKerPrivArgs->
execute(handle, pA, pU, pV, pDiag, pSuperDiag, pU1);
214 DSPLIB_DEBUGPRINTFN(0,
"%s\n",
"The Kernel is NOT IMPLEMENTED for __C7X_VEC_SIZE_BITS__ != 512 ");
template DSPLIB_STATUS DSPLIB_svd_small_init_ci< double >(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)
template DSPLIB_STATUS DSPLIB_svd_small_exec_ci< double >(DSPLIB_kernelHandle handle, void *restrict pA, void *restrict pU, void *restrict pV, void *restrict pDiag, void *restrict pSuperDiag, void *restrict pU1)
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 DSPLIB_STATUS DSPLIB_svd_small_exec_cn< double >(DSPLIB_kernelHandle handle, void *restrict pA, void *restrict pU, void *restrict pV, void *restrict pDiag, void *restrict pSuperDiag, void *restrict pU1)
Header file for kernel's internal use. For the kernel's interface, please see DSPLIB_svd.
#define DSPLIB_DEBUGPRINTFN(N, fmt,...)
DSPLIB_STATUS_NAME
The enumeration of all status codes.
void * DSPLIB_kernelHandle
Handle type for DSPLIB operations.
@ DSPLIB_ERR_NULL_POINTER
@ DSPLIB_ERR_NOT_IMPLEMENTED
@ DSPLIB_ERR_INVALID_TYPE
DSPLIB_STATUS DSPLIB_svd_small_init_checkParams(DSPLIB_kernelHandle handle, const DSPLIB_bufParams2D_t *bufParamsA, 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 checks the validity of the parameters passed to DSPLIB_svd_small_init function....
DSPLIB_STATUS DSPLIB_svd_small_exec_checkParams(DSPLIB_kernelHandle handle, const void *restrict pA, const void *restrict pU, const void *restrict pV, const void *restrict pDiag, const void *restrict pSuperDiag, const void *restrict pU1)
This function checks the validity of the parameters passed to DSPLIB_svd_small_exec function....
DSPLIB_STATUS DSPLIB_svd_small_init(DSPLIB_kernelHandle handle, const DSPLIB_bufParams2D_t *bufParamsA, 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 should be called before the DSPLIB_svd_small_exec function is called....
DSPLIB_STATUS DSPLIB_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 function is the main kernel compute function.
int32_t DSPLIB_svd_small_getHandleSize(DSPLIB_svd_small_InitArgs *pKerInitArgs)
This is a query function to calculate the size of internal handle.
A structure for a 1 dimensional buffer descriptor.
uint32_t data_type
Values are of type DSPLIB_data_type_e.
A structure for a 2 dimensional buffer descriptor.
uint32_t data_type
Values are of type DSPLIB_data_type_e.
int32_t stride_y
Stride in Y dimension in bytes.
uint32_t dim_x
Width of buffer in X dimension in elements.
uint32_t dim_y
Height of buffer in Y dimension in elements.
Structure containing the parameters to initialize the kernel.
uint32_t strideVRows
Stride value for V matrix in the transposed form.
int8_t funcStyle
Variant of the function refer to DSPLIB_FUNCTION_STYLE
uint32_t strideURows
Stride value for U matrix in the transposed form.
uint32_t enableReducedForm
Flag to activate reduced form calculation | 1 => REDUCED FORM | 0 => NON-REDUCED FORM.
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