DSPLIB User Guide
DSPLIB_qrd_solver_ci.cpp File Reference

Go to the source code of this file.

Functions

template<typename dataType >
void DSPLIB_qrd_solver_y_init_ci (DSPLIB_kernelHandle handle)
 
template void DSPLIB_qrd_solver_y_init_ci< float > (DSPLIB_kernelHandle handle)
 
template void DSPLIB_qrd_solver_y_init_ci< double > (DSPLIB_kernelHandle handle)
 
template<typename dataType >
void DSPLIB_qrd_solver_y_exec_ci (dataType *pLocalQ, int32_t nCols, int32_t nRows, dataType *pLocalB, dataType *pLocalY, uint8_t *pBlock)
 
template void DSPLIB_qrd_solver_y_exec_ci< float > (float *pLocalQ, int32_t nCols, int32_t nRows, float *pLocalB, float *pLocalY, uint8_t *pBlock)
 
template void DSPLIB_qrd_solver_y_exec_ci< double > (double *pLocalQ, int32_t nCols, int32_t nRows, double *pLocalB, double *pLocalY, uint8_t *pBlock)
 
template<typename dataType >
void DSPLIB_qrd_solver_backSubstitution_init_ci (DSPLIB_kernelHandle handle)
 
template void DSPLIB_qrd_solver_backSubstitution_init_ci< float > (DSPLIB_kernelHandle handle)
 
template void DSPLIB_qrd_solver_backSubstitution_init_ci< double > (DSPLIB_kernelHandle handle)
 
template<typename dataType , typename V = typename c7x::make_full_vector<dataType>::type>
void getElement (V inVec, uint32_t index, dataType *element)
 
template<typename V >
void getElement (V inVec, uint32_t index, float *element)
 
template<typename V >
void getElement (V inVec, uint32_t index, double *element)
 
template<typename dataType >
void DSPLIB_qrd_solver_backSubstitution_ci (dataType *pR, dataType *pX, dataType *pY, dataType *pDiv, int32_t nRows, int32_t nCols, int32_t colRstride, uint8_t *pBlock)
 
template void DSPLIB_qrd_solver_backSubstitution_ci< float > (float *pR, float *pX, float *pY, float *pDiv, int32_t nRows, int32_t nCols, int32_t colRstride, uint8_t *pBlock)
 
template void DSPLIB_qrd_solver_backSubstitution_ci< double > (double *pR, double *pX, double *pY, double *pDiv, int32_t nRows, int32_t nCols, int32_t colRstride, uint8_t *pBlock)
 
template<typename dataType >
DSPLIB_STATUS DSPLIB_qrd_solver_init_ci (DSPLIB_kernelHandle handle, DSPLIB_bufParams2D_t *bufParamsQ, DSPLIB_bufParams2D_t *bufParamsR, DSPLIB_bufParams1D_t *bufParamsB, DSPLIB_bufParams1D_t *bufParamsY, DSPLIB_bufParams1D_t *bufParamsX, const DSPLIB_qrdSolverInitArgs *pKerInitArgs)
 This function is the initialization function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_qrd_solver_init. More...
 
template DSPLIB_STATUS DSPLIB_qrd_solver_init_ci< float > (DSPLIB_kernelHandle handle, DSPLIB_bufParams2D_t *bufParamsQ, DSPLIB_bufParams2D_t *bufParamsR, DSPLIB_bufParams1D_t *bufParamsB, DSPLIB_bufParams1D_t *bufParamsY, DSPLIB_bufParams1D_t *bufParamsX, const DSPLIB_qrdSolverInitArgs *pKerInitArgs)
 
template DSPLIB_STATUS DSPLIB_qrd_solver_init_ci< double > (DSPLIB_kernelHandle handle, DSPLIB_bufParams2D_t *bufParamsQ, DSPLIB_bufParams2D_t *bufParamsR, DSPLIB_bufParams1D_t *bufParamsB, DSPLIB_bufParams1D_t *bufParamsY, DSPLIB_bufParams1D_t *bufParamsX, const DSPLIB_qrdSolverInitArgs *pKerInitArgs)
 
template<typename dataType >
DSPLIB_STATUS DSPLIB_qrd_solver_exec_ci (DSPLIB_kernelHandle handle, void *restrict pQ, void *restrict pR, void *restrict pB, void *restrict pY, void *restrict pX, void *restrict pD, void *restrict pR1)
 This function is the main execution function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_qrd_solver_exec. More...
 
template DSPLIB_STATUS DSPLIB_qrd_solver_exec_ci< float > (DSPLIB_kernelHandle handle, void *restrict pQ, void *restrict pR, void *restrict pB, void *restrict pY, void *restrict pX, void *restrict pD, void *restrict pR1)
 
template DSPLIB_STATUS DSPLIB_qrd_solver_exec_ci< double > (DSPLIB_kernelHandle handle, void *restrict pQ, void *restrict pR, void *restrict pB, void *restrict pY, void *restrict pX, void *restrict pD, void *restrict pR1)
 

Function Documentation

◆ DSPLIB_qrd_solver_y_init_ci()

template<typename dataType >
void DSPLIB_qrd_solver_y_init_ci ( DSPLIB_kernelHandle  handle)

Definition at line 33 of file DSPLIB_qrd_solver_ci.cpp.

◆ DSPLIB_qrd_solver_y_init_ci< float >()

template void DSPLIB_qrd_solver_y_init_ci< float > ( DSPLIB_kernelHandle  handle)

◆ DSPLIB_qrd_solver_y_init_ci< double >()

template void DSPLIB_qrd_solver_y_init_ci< double > ( DSPLIB_kernelHandle  handle)

◆ DSPLIB_qrd_solver_y_exec_ci()

template<typename dataType >
void DSPLIB_qrd_solver_y_exec_ci ( dataType *  pLocalQ,
int32_t  nCols,
int32_t  nRows,
dataType *  pLocalB,
dataType *  pLocalY,
uint8_t *  pBlock 
)

Definition at line 104 of file DSPLIB_qrd_solver_ci.cpp.

◆ DSPLIB_qrd_solver_y_exec_ci< float >()

template void DSPLIB_qrd_solver_y_exec_ci< float > ( float *  pLocalQ,
int32_t  nCols,
int32_t  nRows,
float *  pLocalB,
float *  pLocalY,
uint8_t *  pBlock 
)

◆ DSPLIB_qrd_solver_y_exec_ci< double >()

template void DSPLIB_qrd_solver_y_exec_ci< double > ( double *  pLocalQ,
int32_t  nCols,
int32_t  nRows,
double *  pLocalB,
double *  pLocalY,
uint8_t *  pBlock 
)

◆ DSPLIB_qrd_solver_backSubstitution_init_ci()

template<typename dataType >
void DSPLIB_qrd_solver_backSubstitution_init_ci ( DSPLIB_kernelHandle  handle)

Definition at line 214 of file DSPLIB_qrd_solver_ci.cpp.

◆ DSPLIB_qrd_solver_backSubstitution_init_ci< float >()

◆ DSPLIB_qrd_solver_backSubstitution_init_ci< double >()

◆ getElement() [1/3]

template<typename dataType , typename V = typename c7x::make_full_vector<dataType>::type>
void getElement ( inVec,
uint32_t  index,
dataType *  element 
)
inline

◆ getElement() [2/3]

template<typename V >
void getElement ( inVec,
uint32_t  index,
float *  element 
)
inline

Definition at line 278 of file DSPLIB_qrd_solver_ci.cpp.

◆ getElement() [3/3]

template<typename V >
void getElement ( inVec,
uint32_t  index,
double *  element 
)
inline

Definition at line 283 of file DSPLIB_qrd_solver_ci.cpp.

◆ DSPLIB_qrd_solver_backSubstitution_ci()

template<typename dataType >
void DSPLIB_qrd_solver_backSubstitution_ci ( dataType *  pR,
dataType *  pX,
dataType *  pY,
dataType *  pDiv,
int32_t  nRows,
int32_t  nCols,
int32_t  colRstride,
uint8_t *  pBlock 
)

Definition at line 289 of file DSPLIB_qrd_solver_ci.cpp.

◆ DSPLIB_qrd_solver_backSubstitution_ci< float >()

template void DSPLIB_qrd_solver_backSubstitution_ci< float > ( float *  pR,
float *  pX,
float *  pY,
float *  pDiv,
int32_t  nRows,
int32_t  nCols,
int32_t  colRstride,
uint8_t *  pBlock 
)

◆ DSPLIB_qrd_solver_backSubstitution_ci< double >()

template void DSPLIB_qrd_solver_backSubstitution_ci< double > ( double *  pR,
double *  pX,
double *  pY,
double *  pDiv,
int32_t  nRows,
int32_t  nCols,
int32_t  colRstride,
uint8_t *  pBlock 
)

◆ DSPLIB_qrd_solver_init_ci()

template<typename dataType >
DSPLIB_STATUS DSPLIB_qrd_solver_init_ci ( DSPLIB_kernelHandle  handle,
DSPLIB_bufParams2D_t bufParamsQ,
DSPLIB_bufParams2D_t bufParamsR,
DSPLIB_bufParams1D_t bufParamsB,
DSPLIB_bufParams1D_t bufParamsY,
DSPLIB_bufParams1D_t bufParamsX,
const DSPLIB_qrdSolverInitArgs pKerInitArgs 
)

This function is the initialization function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_qrd_solver_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_solver_exec_ci would be called later independently by the application. When DSPLIB_qrd_solver_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_solver_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]bufParamsB: Pointer to the structure containing dimensional information of input vector B
[in]bufParamsY: Pointer to the structure containing dimensional information of temporary vector Y
[out]bufParamsX: Pointer to the structure containing dimensional information of ouput vector X
[in]pKerInitArgs: Pointer to the structure holding init parameters
Returns
Status value indicating success or failure. Refer to DSPLIB_STATUS.

Definition at line 604 of file DSPLIB_qrd_solver_ci.cpp.

◆ DSPLIB_qrd_solver_init_ci< float >()

template DSPLIB_STATUS DSPLIB_qrd_solver_init_ci< float > ( DSPLIB_kernelHandle  handle,
DSPLIB_bufParams2D_t bufParamsQ,
DSPLIB_bufParams2D_t bufParamsR,
DSPLIB_bufParams1D_t bufParamsB,
DSPLIB_bufParams1D_t bufParamsY,
DSPLIB_bufParams1D_t bufParamsX,
const DSPLIB_qrdSolverInitArgs pKerInitArgs 
)

◆ DSPLIB_qrd_solver_init_ci< double >()

template DSPLIB_STATUS DSPLIB_qrd_solver_init_ci< double > ( DSPLIB_kernelHandle  handle,
DSPLIB_bufParams2D_t bufParamsQ,
DSPLIB_bufParams2D_t bufParamsR,
DSPLIB_bufParams1D_t bufParamsB,
DSPLIB_bufParams1D_t bufParamsY,
DSPLIB_bufParams1D_t bufParamsX,
const DSPLIB_qrdSolverInitArgs pKerInitArgs 
)

◆ DSPLIB_qrd_solver_exec_ci()

template<typename dataType >
DSPLIB_STATUS DSPLIB_qrd_solver_exec_ci ( DSPLIB_kernelHandle  handle,
void *restrict  pQ,
void *restrict  pR,
void *restrict  pB,
void *restrict  pY,
void *restrict  pX,
void *restrict  pD,
void *restrict  pR1 
)

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

The function implements optimized version for DSPLIB_qrd_solver_exec.

Parameters
[in]handle: Active handle to the kernel.
[in]pQ: Pointer to the input matrix Q.
[in]pR: Pointer to the input matrix R.
[in]pB: Pointer to the input vector B.
[in]pY: Pointer to the temporary vector Y.
[out]pX: Pointer to the output vector X.
[in]pD: Pointer to the Scratch buffer D.
[in]pR1: Pointer to the Scratch buffer for transposed matrix of R.
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 652 of file DSPLIB_qrd_solver_ci.cpp.

◆ DSPLIB_qrd_solver_exec_ci< float >()

template DSPLIB_STATUS DSPLIB_qrd_solver_exec_ci< float > ( DSPLIB_kernelHandle  handle,
void *restrict  pQ,
void *restrict  pR,
void *restrict  pB,
void *restrict  pY,
void *restrict  pX,
void *restrict  pD,
void *restrict  pR1 
)

◆ DSPLIB_qrd_solver_exec_ci< double >()

template DSPLIB_STATUS DSPLIB_qrd_solver_exec_ci< double > ( DSPLIB_kernelHandle  handle,
void *restrict  pQ,
void *restrict  pR,
void *restrict  pB,
void *restrict  pY,
void *restrict  pX,
void *restrict  pD,
void *restrict  pR1 
)