![]() |
DSPLIB User Guide
|
Kernel for find the solution of linear equation using Q and R matrices.
This function solves the system of linear equations \(A \times x=b\) for \(x\) using the input matrices \(Q\) and \(R\) produced via QR Decomposition. The following procedure is performed:
Data Structures | |
| struct | DSPLIB_qrdSolverInitArgs |
| Structure containing the parameters to initialize the kernel. More... | |
Functions | |
| int32_t | DSPLIB_qrd_solver_getHandleSize (DSPLIB_qrdSolverInitArgs *pKerInitArgs) |
| This is a query function to calculate the size of internal handle. More... | |
| DSPLIB_STATUS | DSPLIB_qrd_solver_init (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 should be called before the DSPLIB_qrd_solver_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_qrd_solver_init_checkParams (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 checks the validity of the parameters passed to DSPLIB_qrd_solver_init function. This function is called with the same parameters as the DSPLIB_qrd_solver_init, and this function must be called before the DSPLIB_qrd_solver_init is called. More... | |
| DSPLIB_STATUS | DSPLIB_qrd_solver_exec_checkParams (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 checks the validity of the parameters passed to DSPLIB_qrd_solver_exec function. This function is called with the same parameters as the DSPLIB_qrd_solver_exec, and this function must be called before the DSPLIB_qrd_solver_exec is called. More... | |
| DSPLIB_STATUS | DSPLIB_qrd_solver_exec (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 kernel compute function. More... | |
| int32_t DSPLIB_qrd_solver_getHandleSize | ( | DSPLIB_qrdSolverInitArgs * | 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_qrd_solver.cpp.
| DSPLIB_STATUS DSPLIB_qrd_solver_init | ( | 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 should be called before the DSPLIB_qrd_solver_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] | 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 |
Definition at line 99 of file DSPLIB_qrd_solver.cpp.
| DSPLIB_STATUS DSPLIB_qrd_solver_init_checkParams | ( | 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 checks the validity of the parameters passed to DSPLIB_qrd_solver_init function. This function is called with the same parameters as the DSPLIB_qrd_solver_init, and this function must be called before the DSPLIB_qrd_solver_init is called.
| [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 |
Definition at line 34 of file DSPLIB_qrd_solver.cpp.
| DSPLIB_STATUS DSPLIB_qrd_solver_exec_checkParams | ( | 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 checks the validity of the parameters passed to DSPLIB_qrd_solver_exec function. This function is called with the same parameters as the DSPLIB_qrd_solver_exec, and this function must be called before the DSPLIB_qrd_solver_exec is called.
| [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. |
Definition at line 75 of file DSPLIB_qrd_solver.cpp.
| DSPLIB_STATUS DSPLIB_qrd_solver_exec | ( | 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 kernel compute function.
Please refer to details under DSPLIB_qrd_solver_exec
| [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 buffe D. |
| [in] | pR1 | : Pointer to the Scratch buffer for transposed matrix of R. |
| Buffer | dimY | dimX | Comments |
|---|---|---|---|
| pQ | M | M | Input Square Matrix |
| pR | M | M | Input Square Matrix |
| pB | 1 | M | Input Vector |
| pY | 1 | M | Intermediate solution vector |
| pX | 1 | M | Output Vector |
| pD | 1 | M | Scratch buffer to store reciprocals of diagonal elements |
| pR1 | M | M | Scratch buffer to store transpose of R |
Definition at line 161 of file DSPLIB_qrd_solver.cpp.