DSPLIB User Guide
DSPLIB_svd_priv.h File Reference

Introduction

Header file for kernel's internal use. For the kernel's interface, please see DSPLIB_svd.

Definition in file DSPLIB_svd_priv.h.

Go to the source code of this file.

Data Structures

struct  DSPLIB_svd_PrivArgs
 Structure that is reserved for internal use by the kernel. More...
 

Macros

#define DSPLIB_SVD_IXX_IXX_OXX_PBLOCK_SIZE   (26 * SE_PARAM_SIZE)
 Macro to define the size of bufPblock array of DSPLIB_svd_PrivArgs structure. More...
 

Typedefs

typedef DSPLIB_STATUS(* pFxnDSPLIB_svd_exec) (DSPLIB_kernelHandle handle, void *restrict pA, void *restrict pU, void *restrict pV, void *restrict pDiag, void *restrict pSuperDiag, void *restrict pU1, void *restrict pV1, void *restrict pScratch)
 This is a function pointer type that conforms to the declaration of DSPLIB_svd_exec_ci and DSPLIB_svd_exec_cn. More...
 

Functions

template<typename dataType >
DSPLIB_STATUS DSPLIB_svd_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_svdInitArgs *pKerInitArgs)
 This function is the initialization function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_svd_init. More...
 
template<typename dataType >
DSPLIB_STATUS DSPLIB_svd_exec_ci (DSPLIB_kernelHandle handle, void *restrict pA, void *restrict pU, void *restrict pV, void *restrict pDiag, void *restrict pSuperDiag, void *restrict pU1, void *restrict pV1, 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_svd_exec. More...
 
DSPLIB_STATUS DSPLIB_svd_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_svdInitArgs *pKerInitArgs)
 This function is the initialization function for the natural C implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_svd_init. More...
 
template<typename dataType >
DSPLIB_STATUS DSPLIB_svd_exec_cn (DSPLIB_kernelHandle handle, void *restrict pA, void *restrict pU, void *restrict pV, void *restrict pDiag, void *restrict pSuperDiag, void *restrict pU1, void *restrict pV1, void *restrict pScratch)
 This function is the main execution function for the natural C implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_svd_exec. More...
 
template<typename dataType >
void uColProcess (dataType *U, int32_t Nrows, int32_t Ncols, int32_t colUStride, dataType half_norm_squared, dataType *U1, dataType scale, uint8_t *pBlock)
 
template<typename dataType >
dataType DSPLIB_bidiag_uCol_halfnorm_ci (dataType *U, int32_t Nrows, int32_t Ncols, int32_t colUStride, dataType *half_norm_squared, dataType *U1, dataType *s, uint8_t *pBlock)
 This function calculates the half-norms corresponding to the column of input matrix U and returns scale. More...
 
template<typename dataType >
dataType DSPLIB_bidiag_uRow_halfnorm_ci (dataType *U, int32_t Nrows, int32_t Ncols, int32_t colUStride, dataType *half_norm_squared, dataType *U1, dataType *s, dataType *superdiag, uint8_t *pBlock)
 This function calculates the half-norm corresponding to the row of input matrix U and returns scale. More...
 
template<typename dataType >
void uRowProcess (dataType *U, int32_t Nrows, int32_t Ncols, int32_t colUStride, dataType *superdiag, dataType *U1, dataType scale, uint8_t *pBlock)
 
template<typename dataType >
void vColProcess (dataType *V, int32_t Nrows, int32_t Ncols, int32_t colVStride, dataType s, dataType *U1, dataType *U, int32_t colUStride, uint8_t *PBlock)
 
template<typename dataType >
void DSPLIB_bidiag_uFinal_expand_ci (dataType *U, int32_t Nrows, int32_t Ncols, int32_t colUStride, uint8_t *pBlock)
 This function expands columns of U matrix to get a square matrix and fill the columns with '0' values. More...
 
template<typename dataType >
void uSiUpdate (dataType *U, int32_t Nrows, int32_t Ncols, int32_t colUStride, dataType s, dataType *U1, uint8_t *pBlock)
 
template<typename dataType >
void DSPLIB_bidiag_uFinal_normalize_ci (dataType *U, int32_t Nrows, dataType s, int32_t colUStride, uint8_t *pBlock)
 This function normalizes the column of input matrix U. More...
 
template<typename dataType >
void DSPLIB_bidiag_uFinal_initalize_ci (dataType *U, int32_t Nrows, int32_t Ncols, int32_t colUStride, dataType s, dataType *U1, uint8_t *pBlock)
 This function implements the process corresponding to the "initial U" loop in natural implementation. More...
 
template<typename dataType >
void DSPLIB_diag_proc_ci (dataType *V, int32_t startRow, int32_t Nrows, int32_t Ncols, int32_t rowVStride, dataType *cV, dataType *sV, uint8_t *pBlock)
 Updates rows of V' and U' based on the precalculated cV/cU and sV/sU vectors. More...
 
template<typename dataType >
void DSPLIB_singularSort_swap_ci (dataType *V, int32_t Nrows, int32_t Ncols, int32_t rowVStride, int32_t *sortIndex, dataType *vBuff, uint8_t *pBlock)
 This function uses the max index values calculated from DSPLIB_singularSort_index_ci to shuffle the rows of U' and V' matrix (i.e. colums of U and V matrix). More...
 
template<typename dataType >
void DSPLIB_bidiag_uCol_ci (dataType *U, int32_t Nrows, int32_t Ncols, int32_t colUStride, dataType half_norm_squared, dataType *U1, dataType scale, uint8_t *pBlock)
 This function implements the Household processing on columns of input U matrix corresponding to the natural implementation. More...
 
template<typename dataType >
void DSPLIB_bidiag_uRow_ci (dataType *U, int32_t Nrows, int32_t Ncols, int32_t colUStride, dataType *superdiag, dataType *U1, dataType scale, uint8_t *pBlock)
 This function implements the Household processing on rows of input U matrix corresponding to the natural implementation. More...
 
template<typename dataType >
void DSPLIB_bidiag_uFinal_ci (dataType *U, int32_t Nrows, int32_t Ncols, int32_t colUStride, dataType s, dataType *U1, uint8_t *pBlock)
 This function implements the process corresponding to the "update U" loop in natural implementation. More...
 
template<typename dataType >
void DSPLIB_bidiag_v_ci (dataType *V, int32_t Nrows, int32_t Ncols, int32_t colVStride, dataType s, dataType *U1, dataType *U, int32_t colUStride, uint8_t *pBlock)
 This function implements the process corresponding to the "update V" loop in natural implementation. More...
 
template<typename dataType >
void DSPLIB_diag_negate_v_ci (dataType *V, int32_t Ncols, int32_t colVStride, uint8_t *pBlock)
 Negates the values of a row in V. More...
 
template<typename dataType >
void DSPLIB_diag_epsilon_ci (dataType *diag, dataType *superdiag, dataType *epsilon, int32_t Ncols, uint8_t *pBlock)
 Updates "epsilon" value based on absolute max values from "diag" and "superdiag" vectors. More...
 
template<typename dataType >
void DSPLIB_diag_rotation_check_ci (dataType *diag, dataType *superdiag, dataType epsilon, int32_t *m, int32_t *rotation_test, int32_t Ncols, uint8_t *pBlock)
 Updates values of "m" and "rotation_test" flag vased on the values present in "diag", "superdiag" and "epsilon". More...
 
template<typename dataType >
void DSPLIB_diag_rotation_proc_ci (dataType *U, int32_t startRow, int32_t Nrows, int32_t Ncols, int32_t rowUStride, dataType *cU, dataType *sU, uint8_t *pBlock)
 Updates rows of U' based on the precalculated cU and sU vectors. More...
 
template<typename dataType >
void DSPLIB_singularSort_index_ci (dataType *singular_values, dataType *singularBuffer, int32_t *maxIndArr, int32_t Ncols, uint8_t *pBlock)
 This function sorts the singular values in descending order and also records the max index values for shuffling of U and V matrix columns. More...
 
template<typename dataType >
void DSPLIB_diag_sqrt_ci (dataType *superdiag, dataType *diag, int32_t length, uint8_t *pBlock)
 Calculates the reciprocal of square-roots of "diag" and "superdiag" vectors. More...
 
template<typename dataType >
void DSPLIB_svd_blk_move_ci (dataType *pOut, dataType *pIn, int32_t Nrows, int32_t Ncols, int32_t colOutStride, int32_t colInStride, uint8_t *pBlock)
 Copy input matrix pIn to pOut. More...
 
template<typename dataType >
void DSPLIB_bidiag_uFinal_init_ci (DSPLIB_kernelHandle handle)
 
template<typename dataType >
void DSPLIB_diag_proc_init_ci (DSPLIB_kernelHandle handle)
 
template<typename dataType >
void DSPLIB_singularSort_swap_init_ci (DSPLIB_kernelHandle handle)
 
template<typename dataType >
void DSPLIB_bidiag_u_init_ci (DSPLIB_kernelHandle handle)
 
template<typename dataType >
void DSPLIB_bidiag_v_init_ci (DSPLIB_kernelHandle handle)
 
template<typename dataType >
void DSPLIB_svd_matTrans_init_ci (DSPLIB_kernelHandle handle, const DSPLIB_svdInitArgs *kerInitArgs)
 
template<typename dataType >
dataType getRecip (dataType value)
 
template float getRecip (float value)
 
template double getRecip (double value)
 

Macro Definition Documentation

◆ DSPLIB_SVD_IXX_IXX_OXX_PBLOCK_SIZE

#define DSPLIB_SVD_IXX_IXX_OXX_PBLOCK_SIZE   (26 * SE_PARAM_SIZE)

Macro to define the size of bufPblock array of DSPLIB_svd_PrivArgs structure.

Definition at line 40 of file DSPLIB_svd_priv.h.

Typedef Documentation

◆ pFxnDSPLIB_svd_exec

typedef DSPLIB_STATUS(* pFxnDSPLIB_svd_exec) (DSPLIB_kernelHandle handle, void *restrict pA, void *restrict pU, void *restrict pV, void *restrict pDiag, void *restrict pSuperDiag, void *restrict pU1, void *restrict pV1, void *restrict pScratch)

This is a function pointer type that conforms to the declaration of DSPLIB_svd_exec_ci and DSPLIB_svd_exec_cn.

Definition at line 47 of file DSPLIB_svd_priv.h.

Function Documentation

◆ DSPLIB_svd_init_ci()

template<typename dataType >
DSPLIB_STATUS DSPLIB_svd_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_svdInitArgs pKerInitArgs 
)

This function is the initialization function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_svd_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_svd_exec_ci would be called later independently by the application. When DSPLIB_svd_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_svd_exec_ci does not lose cycles to determine the hardware configuration.

Parameters
[in]handle: Active handle to the kernel
[in]bufParamsIn: Pointer to the structure containing dimensional information of input buffer
[out]bufParamsU: Pointer to the structure containing dimensional information of output buffer U
[out]bufParamsV: Pointer to the structure containing dimensional information of output buffer V
[out]bufParamsDiag: Pointer to the structure containing dimensional information of output buffer Diag
[out]bufParamsSuperDiag: Pointer to the structure containing dimensional information of output buffer SuperDiag
[in]pKerInitArgs: Pointer to the structure holding init parameters
Returns
Status value indicating success or failure. Refer to DSPLIB_STATUS.

Definition at line 64 of file DSPLIB_svd_ci.cpp.

◆ DSPLIB_svd_exec_ci()

template<typename dataType >
DSPLIB_STATUS DSPLIB_svd_exec_ci ( DSPLIB_kernelHandle  handle,
void *restrict  pA,
void *restrict  pU,
void *restrict  pV,
void *restrict  pDiag,
void *restrict  pSuperDiag,
void *restrict  pU1,
void *restrict  pV1,
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_svd_exec.

Parameters
[in]handle: Active handle to the kernel
[in]pA: Pointer to the input buffer pA
[out]pU: Pointer to the output buffer pU
[out]pV: Pointer to the output buffer pV
[out]pDiag: Pointer to the output buffer pDiag
[out]pSuperDiag: Pointer to the output buffer pSuperDiag
[in]pU1: Pointer to the buffer pU1
[in]pV1: Pointer to the buffer pV1
[out]pScratch: Pointer to the buffer pScratch
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
Assumptions:
The arrays A, U, V, Diag, SuperDiag, U1, V1 and Scratch are stored in distinct arrays In-place processing of A is not allowed.

Definition at line 612 of file DSPLIB_svd_ci.cpp.

◆ DSPLIB_svd_init_cn()

DSPLIB_STATUS DSPLIB_svd_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_svdInitArgs pKerInitArgs 
)

This function is the initialization function for the natural C implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_svd_init.

Parameters
[in]handle: Active handle to the kernel
[in]bufParamsIn: Pointer to the structure containing dimensional information of input buffer
[out]bufParamsU: Pointer to the structure containing dimensional information of output buffer U
[out]bufParamsV: Pointer to the structure containing dimensional information of output buffer V
[out]bufParamsDiag: Pointer to the structure containing dimensional information of output buffer Diag
[out]bufParamsSuperDiag: Pointer to the structure containing dimensional information of output buffer SuperDiag
[in]pKerInitArgs: Pointer to the structure holding init parameters
Returns
Status value indicating success or failure. Refer to DSPLIB_STATUS.

Definition at line 62 of file DSPLIB_svd_cn.cpp.

◆ DSPLIB_svd_exec_cn()

template<typename dataType >
DSPLIB_STATUS DSPLIB_svd_exec_cn ( DSPLIB_kernelHandle  handle,
void *restrict  pA,
void *restrict  pU,
void *restrict  pV,
void *restrict  pDiag,
void *restrict  pSuperDiag,
void *restrict  pU1,
void *restrict  pV1,
void *restrict  pScratch 
)

This function is the main execution function for the natural C implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_svd_exec.

Parameters
[in]handle: Active handle to the kernel
[in]pA: Pointer to the input buffer pA
[out]pU: Pointer to the output buffer pU
[out]pV: Pointer to the output buffer pV
[out]pDiag: Pointer to the output buffer pDiag
[out]pSuperDiag: Pointer to the output buffer pSuperDiag
[in]pU1: Pointer to the buffer pU1
[in]pV1: Pointer to the buffer pV1
[out]pScratch: Pointer to the buffer pScratch
Returns
Status value indicating success or failure. Refer to DSPLIB_STATUS.

Definition at line 746 of file DSPLIB_svd_cn.cpp.

◆ uColProcess()

template<typename dataType >
void uColProcess ( dataType *  U,
int32_t  Nrows,
int32_t  Ncols,
int32_t  colUStride,
dataType  half_norm_squared,
dataType *  U1,
dataType  scale,
uint8_t *  pBlock 
)

◆ DSPLIB_bidiag_uCol_halfnorm_ci()

template<typename dataType >
dataType DSPLIB_bidiag_uCol_halfnorm_ci ( dataType *  U,
int32_t  Nrows,
int32_t  Ncols,
int32_t  colUStride,
dataType *  half_norm_squared,
dataType *  U1,
dataType *  s,
uint8_t *  pBlock 
)

This function calculates the half-norms corresponding to the column of input matrix U and returns scale.

Definition at line 172 of file DSPLIB_svd_bidiag_uMat_ci.cpp.

◆ DSPLIB_bidiag_uRow_halfnorm_ci()

template<typename dataType >
dataType DSPLIB_bidiag_uRow_halfnorm_ci ( dataType *  U,
int32_t  Nrows,
int32_t  Ncols,
int32_t  colUStride,
dataType *  half_norm_squared,
dataType *  U1,
dataType *  s,
dataType *  superdiag,
uint8_t *  pBlock 
)

This function calculates the half-norm corresponding to the row of input matrix U and returns scale.

Definition at line 959 of file DSPLIB_svd_bidiag_uMat_ci.cpp.

◆ uRowProcess()

template<typename dataType >
void uRowProcess ( dataType *  U,
int32_t  Nrows,
int32_t  Ncols,
int32_t  colUStride,
dataType *  superdiag,
dataType *  U1,
dataType  scale,
uint8_t *  pBlock 
)

◆ vColProcess()

template<typename dataType >
void vColProcess ( dataType *  V,
int32_t  Nrows,
int32_t  Ncols,
int32_t  colVStride,
dataType  s,
dataType *  U1,
dataType *  U,
int32_t  colUStride,
uint8_t *  PBlock 
)

◆ DSPLIB_bidiag_uFinal_expand_ci()

template<typename dataType >
void DSPLIB_bidiag_uFinal_expand_ci ( dataType *  U,
int32_t  Nrows,
int32_t  Ncols,
int32_t  colUStride,
uint8_t *  pBlock 
)

This function expands columns of U matrix to get a square matrix and fill the columns with '0' values.

Definition at line 127 of file DSPLIB_svd_bidiag_uFinal_ci.cpp.

◆ uSiUpdate()

template<typename dataType >
void uSiUpdate ( dataType *  U,
int32_t  Nrows,
int32_t  Ncols,
int32_t  colUStride,
dataType  s,
dataType *  U1,
uint8_t *  pBlock 
)

◆ DSPLIB_bidiag_uFinal_normalize_ci()

template<typename dataType >
void DSPLIB_bidiag_uFinal_normalize_ci ( dataType *  U,
int32_t  Nrows,
dataType  s,
int32_t  colUStride,
uint8_t *  pBlock 
)

This function normalizes the column of input matrix U.

Definition at line 328 of file DSPLIB_svd_bidiag_uFinal_ci.cpp.

◆ DSPLIB_bidiag_uFinal_initalize_ci()

template<typename dataType >
void DSPLIB_bidiag_uFinal_initalize_ci ( dataType *  U,
int32_t  Nrows,
int32_t  Ncols,
int32_t  colUStride,
dataType  s,
dataType *  U1,
uint8_t *  pBlock 
)

This function implements the process corresponding to the "initial U" loop in natural implementation.

Definition at line 187 of file DSPLIB_svd_bidiag_uFinal_ci.cpp.

◆ DSPLIB_diag_proc_ci()

template<typename dataType >
void DSPLIB_diag_proc_ci ( dataType *  V,
int32_t  startRow,
int32_t  Nrows,
int32_t  Ncols,
int32_t  rowVStride,
dataType *  cV,
dataType *  sV,
uint8_t *  pBlock 
)

Updates rows of V' and U' based on the precalculated cV/cU and sV/sU vectors.

Definition at line 413 of file DSPLIB_svd_diag_ci.cpp.

◆ DSPLIB_singularSort_swap_ci()

template<typename dataType >
void DSPLIB_singularSort_swap_ci ( dataType *  V,
int32_t  Nrows,
int32_t  Ncols,
int32_t  rowVStride,
int32_t *  sortIndex,
dataType *  vBuff,
uint8_t *  pBlock 
)

This function uses the max index values calculated from DSPLIB_singularSort_index_ci to shuffle the rows of U' and V' matrix (i.e. colums of U and V matrix).

Definition at line 164 of file DSPLIB_svd_singular_sorting_ci.cpp.

◆ DSPLIB_bidiag_uCol_ci()

template<typename dataType >
void DSPLIB_bidiag_uCol_ci ( dataType *  U,
int32_t  Nrows,
int32_t  Ncols,
int32_t  colUStride,
dataType  half_norm_squared,
dataType *  U1,
dataType  scale,
uint8_t *  pBlock 
)

This function implements the Household processing on columns of input U matrix corresponding to the natural implementation.

Definition at line 442 of file DSPLIB_svd_bidiag_uMat_ci.cpp.

◆ DSPLIB_bidiag_uRow_ci()

template<typename dataType >
void DSPLIB_bidiag_uRow_ci ( dataType *  U,
int32_t  Nrows,
int32_t  Ncols,
int32_t  colUStride,
dataType *  superdiag,
dataType *  U1,
dataType  scale,
uint8_t *  pBlock 
)

This function implements the Household processing on rows of input U matrix corresponding to the natural implementation.

Definition at line 1293 of file DSPLIB_svd_bidiag_uMat_ci.cpp.

◆ DSPLIB_bidiag_uFinal_ci()

template<typename dataType >
void DSPLIB_bidiag_uFinal_ci ( dataType *  U,
int32_t  Nrows,
int32_t  Ncols,
int32_t  colUStride,
dataType  s,
dataType *  U1,
uint8_t *  pBlock 
)

This function implements the process corresponding to the "update U" loop in natural implementation.

Definition at line 395 of file DSPLIB_svd_bidiag_uFinal_ci.cpp.

◆ DSPLIB_bidiag_v_ci()

template<typename dataType >
void DSPLIB_bidiag_v_ci ( dataType *  V,
int32_t  Nrows,
int32_t  Ncols,
int32_t  colVStride,
dataType  s,
dataType *  U1,
dataType *  U,
int32_t  colUStride,
uint8_t *  pBlock 
)

This function implements the process corresponding to the "update V" loop in natural implementation.

Definition at line 100 of file DSPLIB_svd_bidiag_vMat_ci.cpp.

◆ DSPLIB_diag_negate_v_ci()

template<typename dataType >
void DSPLIB_diag_negate_v_ci ( dataType *  V,
int32_t  Ncols,
int32_t  colVStride,
uint8_t *  pBlock 
)

Negates the values of a row in V.

Definition at line 287 of file DSPLIB_svd_diag_ci.cpp.

◆ DSPLIB_diag_epsilon_ci()

template<typename dataType >
void DSPLIB_diag_epsilon_ci ( dataType *  diag,
dataType *  superdiag,
dataType *  epsilon,
int32_t  Ncols,
uint8_t *  pBlock 
)

Updates "epsilon" value based on absolute max values from "diag" and "superdiag" vectors.

Definition at line 98 of file DSPLIB_svd_diag_ci.cpp.

◆ DSPLIB_diag_rotation_check_ci()

template<typename dataType >
void DSPLIB_diag_rotation_check_ci ( dataType *  diag,
dataType *  superdiag,
dataType  epsilon,
int32_t *  m,
int32_t *  rotation_test,
int32_t  Ncols,
uint8_t *  pBlock 
)

Updates values of "m" and "rotation_test" flag vased on the values present in "diag", "superdiag" and "epsilon".

Definition at line 170 of file DSPLIB_svd_diag_ci.cpp.

◆ DSPLIB_diag_rotation_proc_ci()

template<typename dataType >
void DSPLIB_diag_rotation_proc_ci ( dataType *  U,
int32_t  startRow,
int32_t  Nrows,
int32_t  Ncols,
int32_t  rowUStride,
dataType *  cU,
dataType *  sU,
uint8_t *  pBlock 
)

Updates rows of U' based on the precalculated cU and sU vectors.

Definition at line 845 of file DSPLIB_svd_diag_ci.cpp.

◆ DSPLIB_singularSort_index_ci()

template<typename dataType >
void DSPLIB_singularSort_index_ci ( dataType *  singular_values,
dataType *  singularBuffer,
int32_t *  maxIndArr,
int32_t  Ncols,
uint8_t *  pBlock 
)

This function sorts the singular values in descending order and also records the max index values for shuffling of U and V matrix columns.

Definition at line 89 of file DSPLIB_svd_singular_sorting_ci.cpp.

◆ DSPLIB_diag_sqrt_ci()

template<typename dataType >
void DSPLIB_diag_sqrt_ci ( dataType *  superdiag,
dataType *  diag,
int32_t  length,
uint8_t *  pBlock 
)

Calculates the reciprocal of square-roots of "diag" and "superdiag" vectors.

Definition at line 339 of file DSPLIB_svd_diag_ci.cpp.

◆ DSPLIB_svd_blk_move_ci()

template<typename dataType >
void DSPLIB_svd_blk_move_ci ( dataType *  pOut,
dataType *  pIn,
int32_t  Nrows,
int32_t  Ncols,
int32_t  colOutStride,
int32_t  colInStride,
uint8_t *  pBlock 
)

Copy input matrix pIn to pOut.

Definition at line 155 of file DSPLIB_svd_common_ci.cpp.

◆ DSPLIB_bidiag_uFinal_init_ci()

template<typename dataType >
void DSPLIB_bidiag_uFinal_init_ci ( DSPLIB_kernelHandle  handle)

Definition at line 40 of file DSPLIB_svd_bidiag_uFinal_ci.cpp.

◆ DSPLIB_diag_proc_init_ci()

template<typename dataType >
void DSPLIB_diag_proc_init_ci ( DSPLIB_kernelHandle  handle)

Definition at line 36 of file DSPLIB_svd_diag_ci.cpp.

◆ DSPLIB_singularSort_swap_init_ci()

template<typename dataType >
void DSPLIB_singularSort_swap_init_ci ( DSPLIB_kernelHandle  handle)

Definition at line 40 of file DSPLIB_svd_singular_sorting_ci.cpp.

◆ DSPLIB_bidiag_u_init_ci()

template<typename dataType >
void DSPLIB_bidiag_u_init_ci ( DSPLIB_kernelHandle  handle)

Definition at line 41 of file DSPLIB_svd_bidiag_uMat_ci.cpp.

◆ DSPLIB_bidiag_v_init_ci()

template<typename dataType >
void DSPLIB_bidiag_v_init_ci ( DSPLIB_kernelHandle  handle)

Definition at line 39 of file DSPLIB_svd_bidiag_vMat_ci.cpp.

◆ DSPLIB_svd_matTrans_init_ci()

template<typename dataType >
void DSPLIB_svd_matTrans_init_ci ( DSPLIB_kernelHandle  handle,
const DSPLIB_svdInitArgs kerInitArgs 
)

Definition at line 39 of file DSPLIB_svd_common_ci.cpp.

◆ getRecip() [1/3]

template<typename dataType >
dataType getRecip ( dataType  value)
inline

Definition at line 443 of file DSPLIB_svd_priv.h.

◆ getRecip() [2/3]

template float getRecip ( float  value)

◆ getRecip() [3/3]

template double getRecip ( double  value)