![]() |
DSPLIB User Guide
|
Kernel for transpose of input matrix.
This function solves the system of linear equations \(A \times x = b\) for \(x\) using the inputs produced via LU decomposition i.e. \(A \times x = P^{T} \times L \times U \times x = b\). The following procedure is performed.
Data Structures | |
| struct | DSPLIB_lud_solInitArgs |
| Structure containing the parameters to initialize the kernel. More... | |
Functions | |
| int32_t | DSPLIB_lud_sol_getHandleSize (DSPLIB_lud_solInitArgs *pKerInitArgs) |
| This is a query function to calculate the size of internal handle. More... | |
| DSPLIB_STATUS | DSPLIB_lud_sol_init_checkParams (DSPLIB_kernelHandle handle, const DSPLIB_bufParams2D_t *bufParamsP, const DSPLIB_bufParams2D_t *bufParamsL, const DSPLIB_bufParams2D_t *bufParamsU, const DSPLIB_bufParams1D_t *bufParamsB, const DSPLIB_bufParams1D_t *bufParamsX, const DSPLIB_bufParams2D_t *bufParamsVecScratch, const DSPLIB_bufParams2D_t *bufParamsScratchTrans, const DSPLIB_lud_solInitArgs *pKerInitArgs) |
| This function checks the validity of the parameters passed to DSPLIB_lud_sol_init function. This function is called with the same parameters as the DSPLIB_lud_sol_init, and this function must be called before the DSPLIB_lud_sol_init is called. More... | |
| DSPLIB_STATUS | DSPLIB_lud_sol_init (DSPLIB_kernelHandle handle, const DSPLIB_bufParams2D_t *bufParamsP, const DSPLIB_bufParams2D_t *bufParamsL, const DSPLIB_bufParams2D_t *bufParamsU, const DSPLIB_bufParams1D_t *bufParamsB, const DSPLIB_bufParams1D_t *bufParamsX, const DSPLIB_bufParams2D_t *bufParamsVecScratch, const DSPLIB_bufParams2D_t *bufParamsScratchTrans, const DSPLIB_lud_solInitArgs *pKerInitArgs) |
| This function should be called before the DSPLIB_lud_sol_exec function is called. This function takes care of any one-time operations such as setting up the configuration of required hardware resources such as the streaming engine and streaming address generator. The results of these operations are stored in the handle. More... | |
| DSPLIB_STATUS | DSPLIB_lud_sol_exec_checkParams (DSPLIB_kernelHandle handle, void *restrict pP, void *restrict pL, void *restrict pU, void *restrict pB, void *restrict pX, void *restrict pVecScratch, void *restrict pScratchTrans) |
| This function checks the validity of the parameters passed to DSPLIB_lud_sol_exec function. This function is called with the same parameters as the DSPLIB_lud_sol_exec, and this function must be called before the DSPLIB_lud_sol_exec is called. More... | |
| DSPLIB_STATUS | DSPLIB_lud_sol_exec (DSPLIB_kernelHandle handle, void *restrict pP, void *restrict pL, void *restrict pU, void *restrict pB, void *restrict pX, void *restrict pVecScratch, void *restrict pScratchTrans) |
| This function is the main kernel compute function. More... | |
| int32_t DSPLIB_lud_sol_getHandleSize | ( | DSPLIB_lud_solInitArgs * | pKerInitArgs | ) |
This is a query function to calculate the size of internal handle.
| [in] | pKerInitArgs | : Pointer to structure holding init parameters |
Definition at line 25 of file DSPLIB_lud_sol.cpp.
| DSPLIB_STATUS DSPLIB_lud_sol_init_checkParams | ( | DSPLIB_kernelHandle | handle, |
| const DSPLIB_bufParams2D_t * | bufParamsP, | ||
| const DSPLIB_bufParams2D_t * | bufParamsL, | ||
| const DSPLIB_bufParams2D_t * | bufParamsU, | ||
| const DSPLIB_bufParams1D_t * | bufParamsB, | ||
| const DSPLIB_bufParams1D_t * | bufParamsX, | ||
| const DSPLIB_bufParams2D_t * | bufParamsVecScratch, | ||
| const DSPLIB_bufParams2D_t * | bufParamsScratchTrans, | ||
| const DSPLIB_lud_solInitArgs * | pKerInitArgs | ||
| ) |
This function checks the validity of the parameters passed to DSPLIB_lud_sol_init function. This function is called with the same parameters as the DSPLIB_lud_sol_init, and this function must be called before the DSPLIB_lud_sol_init is called.
| [in] | handle | : Active handle to the kernel |
| [in] | bufParamsP | : Pointer to the structure containing dimensional information of input buffer P |
| [in] | bufParamsL | : Pointer to the structure containing dimensional information of input buffer L |
| [in] | bufParamsU | : Pointer to the structure containing dimensional information of input buffer U |
| [in] | bufParamsB | : Pointer to the structure containing dimensional information of input buffer B |
| [out] | bufParamsX | : Pointer to the structure containing dimensional information of ouput buffer X |
| [in] | bufParamsVecScratch | : Pointer to the structure containing dimensional information of intermediate buffer |
| [in] | bufParamsScratchTrans | : Pointer to the structure containing dimensional information of scratch buffer pScratchTrans |
| [in] | pKerInitArgs | : Pointer to the structure holding init parameters |
Definition at line 34 of file DSPLIB_lud_sol.cpp.
| DSPLIB_STATUS DSPLIB_lud_sol_init | ( | DSPLIB_kernelHandle | handle, |
| const DSPLIB_bufParams2D_t * | bufParamsP, | ||
| const DSPLIB_bufParams2D_t * | bufParamsL, | ||
| const DSPLIB_bufParams2D_t * | bufParamsU, | ||
| const DSPLIB_bufParams1D_t * | bufParamsB, | ||
| const DSPLIB_bufParams1D_t * | bufParamsX, | ||
| const DSPLIB_bufParams2D_t * | bufParamsVecScratch, | ||
| const DSPLIB_bufParams2D_t * | bufParamsScratchTrans, | ||
| const DSPLIB_lud_solInitArgs * | pKerInitArgs | ||
| ) |
This function should be called before the DSPLIB_lud_sol_exec function is called. This function takes care of any one-time operations such as setting up the configuration of required hardware resources such as the streaming engine and streaming address generator. The results of these operations are stored in the handle.
| [in] | handle | : Active handle to the kernel |
| [in] | bufParamsP | : Pointer to the structure containing dimensional information of input buffer P |
| [in] | bufParamsL | : Pointer to the structure containing dimensional information of input buffer L |
| [in] | bufParamsU | : Pointer to the structure containing dimensional information of input buffer U |
| [in] | bufParamsB | : Pointer to the structure containing dimensional information of input buffer B |
| [out] | bufParamsX | : Pointer to the structure containing dimensional information of ouput buffer X |
| [in] | bufParamsVecScratch | : Pointer to the structure containing dimensional information of intermediate buffer |
| [in] | bufParamsScratchTrans | : Pointer to the structure containing dimensional information of scratch buffer pScratchTrans |
| [in] | pKerInitArgs | : Pointer to the structure holding init parameters |
Definition at line 105 of file DSPLIB_lud_sol.cpp.
| DSPLIB_STATUS DSPLIB_lud_sol_exec_checkParams | ( | DSPLIB_kernelHandle | handle, |
| void *restrict | pP, | ||
| void *restrict | pL, | ||
| void *restrict | pU, | ||
| void *restrict | pB, | ||
| void *restrict | pX, | ||
| void *restrict | pVecScratch, | ||
| void *restrict | pScratchTrans | ||
| ) |
This function checks the validity of the parameters passed to DSPLIB_lud_sol_exec function. This function is called with the same parameters as the DSPLIB_lud_sol_exec, and this function must be called before the DSPLIB_lud_sol_exec is called.
| [in] | handle | : Active handle to the kernel |
| [in] | pP | : Pointer to permutation matrix P |
| [in] | pL | : Pointer to lower triangular matrix L |
| [in] | pU | : Pointer to upper triangular matrix U |
| [in] | pB | : Pointer to vector b |
| [out] | pX | : Pointer to final solver output vector x |
| [in] | pVecScratch | : Pointer to intermediate buffer |
| [in] | pScratchTrans | : Pointer to scratch buffer for transpose |
Definition at line 79 of file DSPLIB_lud_sol.cpp.
| DSPLIB_STATUS DSPLIB_lud_sol_exec | ( | DSPLIB_kernelHandle | handle, |
| void *restrict | pP, | ||
| void *restrict | pL, | ||
| void *restrict | pU, | ||
| void *restrict | pB, | ||
| void *restrict | pX, | ||
| void *restrict | pVecScratch, | ||
| void *restrict | pScratchTrans | ||
| ) |
This function is the main kernel compute function.
Please refer to details under DSPLIB_lud_sol_exec
| [in] | handle | : Active handle to the kernel |
| [in] | pP | : Pointer to permutation matrix P |
| [in] | pL | : Pointer to lower triangular matrix L |
| [in] | pU | : Pointer to upper triangular matrix U |
| [in] | pB | : Pointer to vector b |
| [out] | pX | : Pointer to final solver output vector x |
| [in] | pVecScratch | : Pointer to intermediate buffer |
| [in] | pScratchTrans | : Pointer to scratch buffer for transpose |
| Buffer | dimY | dimX | Comments |
|---|---|---|---|
| pP | M | M | Input Permutation Matrix (Data Type = uint16_t) |
| pL | M | M | Input Lower Triangular Matrix |
| pU | M | M | Input Upper Triangular Matrix |
| pB | 1 | M | Input vector |
| pX | 1 | M | Output vector |
| pVecScratch | 3 | M | Scratch buffer to store intermediate values |
| pScratchTrans | M | M | Scratch buffer to store transpose of input matrices |
Definition at line 163 of file DSPLIB_lud_sol.cpp.