DSPLIB User Guide
DSPLIB_qrd_inverse_ci.cpp File Reference

Go to the source code of this file.

Functions

template<typename dataType >
void DSPLIB_qrd_inverse_factor_init_ci (DSPLIB_kernelHandle handle)
 
template void DSPLIB_qrd_inverse_factor_init_ci< float > (DSPLIB_kernelHandle handle)
 
template void DSPLIB_qrd_inverse_factor_init_ci< double > (DSPLIB_kernelHandle handle)
 
template<typename dataType >
void DSPLIB_qrd_inverse_R_invA_init_ci (DSPLIB_kernelHandle handle)
 
template void DSPLIB_qrd_inverse_R_invA_init_ci< float > (DSPLIB_kernelHandle handle)
 
template void DSPLIB_qrd_inverse_R_invA_init_ci< double > (DSPLIB_kernelHandle handle)
 
template<typename dataType >
DSPLIB_STATUS DSPLIB_qrd_inverse_init_ci (DSPLIB_kernelHandle handle, DSPLIB_bufParams2D_t *bufParamsQ, DSPLIB_bufParams2D_t *bufParamsR, DSPLIB_bufParams2D_t *bufParamsInvA, DSPLIB_bufParams2D_t *bufParamsInvAFinal, const DSPLIB_qrdInvInitArgs *pKerInitArgs)
 This function is the initialization function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_qrd_inverse_init. More...
 
template DSPLIB_STATUS DSPLIB_qrd_inverse_init_ci< float > (DSPLIB_kernelHandle handle, DSPLIB_bufParams2D_t *bufParamsQ, DSPLIB_bufParams2D_t *bufParamsR, DSPLIB_bufParams2D_t *bufParamsInvA, DSPLIB_bufParams2D_t *bufParamsInvAFinal, const DSPLIB_qrdInvInitArgs *pKerInitArgs)
 
template DSPLIB_STATUS DSPLIB_qrd_inverse_init_ci< double > (DSPLIB_kernelHandle handle, DSPLIB_bufParams2D_t *bufParamsQ, DSPLIB_bufParams2D_t *bufParamsR, DSPLIB_bufParams2D_t *bufParamsInvA, DSPLIB_bufParams2D_t *bufParamsInvAFinal, const DSPLIB_qrdInvInitArgs *pKerInitArgs)
 
template<typename dataType , typename vec = typename c7x::make_full_vector<dataType>::type>
static dataType DSPLIB_qrd_inverse_factor_exec_ci (dataType *pR, int32_t colStrideR, int32_t nRows, dataType *pFactor, vec scaleVec, uint8_t *pBlock, __SE_TEMPLATE_v1 se0Params, __SE_TEMPLATE_v1 se1Params, __SA_TEMPLATE_v1 sa0Params, __SA_TEMPLATE_v1 sa1Params)
 
template<typename dataType >
void DSPLIB_qrd_inverse_R_invA_exec_ci (dataType *pLocalR, dataType *pLocalInvA, int32_t nCols, int32_t colStrideR, int32_t colInvAStride, dataType *factArray, uint8_t *pBlock)
 
template void DSPLIB_qrd_inverse_R_invA_exec_ci< float > (float *pLocalR, float *pLocalInvA, int32_t nCols, int32_t colStrideR, int32_t colInvAStride, float *factArray, uint8_t *pBlock)
 
template void DSPLIB_qrd_inverse_R_invA_exec_ci< double > (double *pLocalR, double *pLocalInvA, int32_t nCols, int32_t colStrideR, int32_t colInvAStride, double *factArray, uint8_t *pBlock)
 
template<typename dataType >
DSPLIB_STATUS DSPLIB_qrd_inverse_exec_ci (DSPLIB_kernelHandle handle, void *restrict pQ, void *restrict pR, void *restrict pInvA, void *restrict pInvAScratch, void *restrict pScratch)
 This function is the main execution function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_qrd_inverse_exec. More...
 
template DSPLIB_STATUS DSPLIB_qrd_inverse_exec_ci< float > (DSPLIB_kernelHandle handle, void *restrict pQ, void *restrict pR, void *restrict pInvA, void *restrict pInvScratch, void *restrict pScratch)
 
template DSPLIB_STATUS DSPLIB_qrd_inverse_exec_ci< double > (DSPLIB_kernelHandle handle, void *restrict pQ, void *restrict pR, void *restrict pInvA, void *restrict pInvScratch, void *restrict pScratch)
 

Function Documentation

◆ DSPLIB_qrd_inverse_factor_init_ci()

template<typename dataType >
void DSPLIB_qrd_inverse_factor_init_ci ( DSPLIB_kernelHandle  handle)

Definition at line 41 of file DSPLIB_qrd_inverse_ci.cpp.

◆ DSPLIB_qrd_inverse_factor_init_ci< float >()

template void DSPLIB_qrd_inverse_factor_init_ci< float > ( DSPLIB_kernelHandle  handle)

◆ DSPLIB_qrd_inverse_factor_init_ci< double >()

template void DSPLIB_qrd_inverse_factor_init_ci< double > ( DSPLIB_kernelHandle  handle)

◆ DSPLIB_qrd_inverse_R_invA_init_ci()

template<typename dataType >
void DSPLIB_qrd_inverse_R_invA_init_ci ( DSPLIB_kernelHandle  handle)

Definition at line 87 of file DSPLIB_qrd_inverse_ci.cpp.

◆ DSPLIB_qrd_inverse_R_invA_init_ci< float >()

template void DSPLIB_qrd_inverse_R_invA_init_ci< float > ( DSPLIB_kernelHandle  handle)

◆ DSPLIB_qrd_inverse_R_invA_init_ci< double >()

template void DSPLIB_qrd_inverse_R_invA_init_ci< double > ( DSPLIB_kernelHandle  handle)

◆ DSPLIB_qrd_inverse_init_ci()

template<typename dataType >
DSPLIB_STATUS DSPLIB_qrd_inverse_init_ci ( DSPLIB_kernelHandle  handle,
DSPLIB_bufParams2D_t bufParamsQ,
DSPLIB_bufParams2D_t bufParamsR,
DSPLIB_bufParams2D_t bufParamsInvA,
DSPLIB_bufParams2D_t bufParamsInvAFinal,
const DSPLIB_qrdInvInitArgs pKerInitArgs 
)

This function is the initialization function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_qrd_inverse_init.

This function determines the configuration for the streaming engine resources based on the function call parameters, and the configuration is saved in bufPBlock array. In the kernel call sequence, DSPLIB_qrd_inverse_exec_ci would be called later independently by the application. When DSPLIB_qrd_inverse_exec_ci runs, it merely retrieves the configuration from the bufPBlock and uses it to set up the hardware resources. This arrangement is so that DSPLIB_qrd_inverse_exec_ci does not lose cycles to determine the hardware configuration.

Parameters
[in]handle: Active handle to the kernel
[in]bufParamsQ: Pointer to the structure containing dimensional information of Q matrix
[in]bufParamsR: Pointer to the structure containing dimensional information of R matrix
[in]bufParamsInvA: Pointer to the structure containing dimensional information of A inverse buffer matrix
[out]bufParamsInvAFinal: Pointer to the structure containing dimensional information of final A inverse matrix.
[in]pKerInitArgs: Pointer to the structure holding init parameters
Returns
Status value indicating success or failure. Refer to DSPLIB_STATUS.

Definition at line 147 of file DSPLIB_qrd_inverse_ci.cpp.

◆ DSPLIB_qrd_inverse_init_ci< float >()

template DSPLIB_STATUS DSPLIB_qrd_inverse_init_ci< float > ( DSPLIB_kernelHandle  handle,
DSPLIB_bufParams2D_t bufParamsQ,
DSPLIB_bufParams2D_t bufParamsR,
DSPLIB_bufParams2D_t bufParamsInvA,
DSPLIB_bufParams2D_t bufParamsInvAFinal,
const DSPLIB_qrdInvInitArgs pKerInitArgs 
)

◆ DSPLIB_qrd_inverse_init_ci< double >()

template DSPLIB_STATUS DSPLIB_qrd_inverse_init_ci< double > ( DSPLIB_kernelHandle  handle,
DSPLIB_bufParams2D_t bufParamsQ,
DSPLIB_bufParams2D_t bufParamsR,
DSPLIB_bufParams2D_t bufParamsInvA,
DSPLIB_bufParams2D_t bufParamsInvAFinal,
const DSPLIB_qrdInvInitArgs pKerInitArgs 
)

◆ DSPLIB_qrd_inverse_factor_exec_ci()

template<typename dataType , typename vec = typename c7x::make_full_vector<dataType>::type>
static dataType DSPLIB_qrd_inverse_factor_exec_ci ( dataType *  pR,
int32_t  colStrideR,
int32_t  nRows,
dataType *  pFactor,
vec  scaleVec,
uint8_t *  pBlock,
__SE_TEMPLATE_v1  se0Params,
__SE_TEMPLATE_v1  se1Params,
__SA_TEMPLATE_v1  sa0Params,
__SA_TEMPLATE_v1  sa1Params 
)
inlinestatic

Definition at line 216 of file DSPLIB_qrd_inverse_ci.cpp.

◆ DSPLIB_qrd_inverse_R_invA_exec_ci()

template<typename dataType >
void DSPLIB_qrd_inverse_R_invA_exec_ci ( dataType *  pLocalR,
dataType *  pLocalInvA,
int32_t  nCols,
int32_t  colStrideR,
int32_t  colInvAStride,
dataType *  factArray,
uint8_t *  pBlock 
)

Definition at line 344 of file DSPLIB_qrd_inverse_ci.cpp.

◆ DSPLIB_qrd_inverse_R_invA_exec_ci< float >()

template void DSPLIB_qrd_inverse_R_invA_exec_ci< float > ( float *  pLocalR,
float *  pLocalInvA,
int32_t  nCols,
int32_t  colStrideR,
int32_t  colInvAStride,
float *  factArray,
uint8_t *  pBlock 
)

◆ DSPLIB_qrd_inverse_R_invA_exec_ci< double >()

template void DSPLIB_qrd_inverse_R_invA_exec_ci< double > ( double *  pLocalR,
double *  pLocalInvA,
int32_t  nCols,
int32_t  colStrideR,
int32_t  colInvAStride,
double *  factArray,
uint8_t *  pBlock 
)

◆ DSPLIB_qrd_inverse_exec_ci()

template<typename dataType >
DSPLIB_STATUS DSPLIB_qrd_inverse_exec_ci ( DSPLIB_kernelHandle  handle,
void *restrict  pQ,
void *restrict  pR,
void *restrict  pInvA,
void *restrict  pInvAScratch,
void *restrict  pScratch 
)

This function is the main execution function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_qrd_inverse_exec.

The function implements the optimized code for computing inverse of input matrix A.

Parameters
[in]handle: Active handle to the kernel
[in]pQ: Pointer to matrix Q[NRows*NRows]
[in]pR: Pointer to upper triangular matrix R[NRows*NCols]
[in]pInvA: Pointer to A inverse buffer matrix
[out]pInvAScratch: Pointer to the Scratch Buffer
[in]pScratch: Pointer to Scratch buffer
Returns
Status value indicating success or failure. Refer to DSPLIB_STATUS.
Performance Considerations:
For best performance,
  • the input and output data buffers are expected to be in L2 memory
  • the buffer pointers are assumed to be 64-byte aligned

Definition at line 1131 of file DSPLIB_qrd_inverse_ci.cpp.

◆ DSPLIB_qrd_inverse_exec_ci< float >()

template DSPLIB_STATUS DSPLIB_qrd_inverse_exec_ci< float > ( DSPLIB_kernelHandle  handle,
void *restrict  pQ,
void *restrict  pR,
void *restrict  pInvA,
void *restrict  pInvScratch,
void *restrict  pScratch 
)

◆ DSPLIB_qrd_inverse_exec_ci< double >()

template DSPLIB_STATUS DSPLIB_qrd_inverse_exec_ci< double > ( DSPLIB_kernelHandle  handle,
void *restrict  pQ,
void *restrict  pR,
void *restrict  pInvA,
void *restrict  pInvScratch,
void *restrict  pScratch 
)