Lines Matching full:matrix
42 * @defgroup groupMatrix Matrix Functions
44 * This set of functions provides basic matrix math operations.
45 * The functions operate on matrix data structures. For example,
47 * definition for the floating-point matrix structure is shown
52 * uint16_t numRows; // number of rows of the matrix.
53 * uint16_t numCols; // number of columns of the matrix.
54 * float32_t *pData; // points to the data of the matrix.
59 * The structure specifies the size of the matrix and then points to
62 * matrix element (i, j) is stored at:
68 * There is an associated initialization function for each type of matrix
89 * By default all of the matrix functions perform size checking on the input and
90 * output matrices. For example, the matrix addition function verifies that the
91 * two input matrices and the output matrix all have the same number of rows and
100 * There is some overhead associated with this matrix size checking.
101 * The matrix size checking is enabled via the \#define
113 * @brief Instance structure for the floating-point matrix structure.
117 uint16_t numRows; /**< number of rows of the matrix. */
118 uint16_t numCols; /**< number of columns of the matrix. */
119 float32_t *pData; /**< points to the data of the matrix. */
123 * @brief Instance structure for the floating-point matrix structure.
127 uint16_t numRows; /**< number of rows of the matrix. */
128 uint16_t numCols; /**< number of columns of the matrix. */
129 float64_t *pData; /**< points to the data of the matrix. */
133 * @brief Instance structure for the Q7 matrix structure.
137 uint16_t numRows; /**< number of rows of the matrix. */
138 uint16_t numCols; /**< number of columns of the matrix. */
139 q7_t *pData; /**< points to the data of the matrix. */
143 * @brief Instance structure for the Q15 matrix structure.
147 uint16_t numRows; /**< number of rows of the matrix. */
148 uint16_t numCols; /**< number of columns of the matrix. */
149 q15_t *pData; /**< points to the data of the matrix. */
153 * @brief Instance structure for the Q31 matrix structure.
157 uint16_t numRows; /**< number of rows of the matrix. */
158 uint16_t numCols; /**< number of columns of the matrix. */
159 q31_t *pData; /**< points to the data of the matrix. */
163 * @brief Floating-point matrix addition.
164 * @param[in] pSrcA points to the first input matrix structure
165 * @param[in] pSrcB points to the second input matrix structure
166 * @param[out] pDst points to output matrix structure
176 * @brief Q15 matrix addition.
177 * @param[in] pSrcA points to the first input matrix structure
178 * @param[in] pSrcB points to the second input matrix structure
179 * @param[out] pDst points to output matrix structure
189 * @brief Q31 matrix addition.
190 * @param[in] pSrcA points to the first input matrix structure
191 * @param[in] pSrcB points to the second input matrix structure
192 * @param[out] pDst points to output matrix structure
202 * @brief Floating-point, complex, matrix multiplication.
203 * @param[in] pSrcA points to the first input matrix structure
204 * @param[in] pSrcB points to the second input matrix structure
205 * @param[out] pDst points to output matrix structure
215 * @brief Q15, complex, matrix multiplication.
216 * @param[in] pSrcA points to the first input matrix structure
217 * @param[in] pSrcB points to the second input matrix structure
218 * @param[out] pDst points to output matrix structure
229 * @brief Q31, complex, matrix multiplication.
230 * @param[in] pSrcA points to the first input matrix structure
231 * @param[in] pSrcB points to the second input matrix structure
232 * @param[out] pDst points to output matrix structure
242 * @brief Floating-point matrix transpose.
243 * @param[in] pSrc points to the input matrix
244 * @param[out] pDst points to the output matrix
253 * @brief Floating-point matrix transpose.
254 * @param[in] pSrc points to the input matrix
255 * @param[out] pDst points to the output matrix
264 * @brief Floating-point complex matrix transpose.
265 * @param[in] pSrc points to the input matrix
266 * @param[out] pDst points to the output matrix
276 * @brief Q15 matrix transpose.
277 * @param[in] pSrc points to the input matrix
278 * @param[out] pDst points to the output matrix
287 * @brief Q15 complex matrix transpose.
288 * @param[in] pSrc points to the input matrix
289 * @param[out] pDst points to the output matrix
298 * @brief Q7 matrix transpose.
299 * @param[in] pSrc points to the input matrix
300 * @param[out] pDst points to the output matrix
309 * @brief Q31 matrix transpose.
310 * @param[in] pSrc points to the input matrix
311 * @param[out] pDst points to the output matrix
320 * @brief Q31 complex matrix transpose.
321 * @param[in] pSrc points to the input matrix
322 * @param[out] pDst points to the output matrix
331 * @brief Floating-point matrix multiplication
332 * @param[in] pSrcA points to the first input matrix structure
333 * @param[in] pSrcB points to the second input matrix structure
334 * @param[out] pDst points to output matrix structure
344 * @brief Floating-point matrix multiplication
345 * @param[in] pSrcA points to the first input matrix structure
346 * @param[in] pSrcB points to the second input matrix structure
347 * @param[out] pDst points to output matrix structure
357 * @brief Floating-point matrix and vector multiplication
358 * @param[in] pSrcMat points to the input matrix structure
368 * @brief Q7 matrix multiplication
369 * @param[in] pSrcA points to the first input matrix structure
370 * @param[in] pSrcB points to the second input matrix structure
371 * @param[out] pDst points to output matrix structure
383 * @brief Q7 matrix and vector multiplication
384 * @param[in] pSrcMat points to the input matrix structure
394 * @brief Q15 matrix multiplication
395 * @param[in] pSrcA points to the first input matrix structure
396 * @param[in] pSrcB points to the second input matrix structure
397 * @param[out] pDst points to output matrix structure
409 * @brief Q15 matrix and vector multiplication
410 * @param[in] pSrcMat points to the input matrix structure
420 * @brief Q15 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4
421 * @param[in] pSrcA points to the first input matrix structure
422 * @param[in] pSrcB points to the second input matrix structure
423 * @param[out] pDst points to output matrix structure
435 * @brief Q31 matrix multiplication
436 * @param[in] pSrcA points to the first input matrix structure
437 * @param[in] pSrcB points to the second input matrix structure
438 * @param[out] pDst points to output matrix structure
448 * @brief Q31 matrix and vector multiplication
449 * @param[in] pSrcMat points to the input matrix structure
459 * @brief Q31 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4
460 * @param[in] pSrcA points to the first input matrix structure
461 * @param[in] pSrcB points to the second input matrix structure
462 * @param[out] pDst points to output matrix structure
472 * @brief Floating-point matrix subtraction
473 * @param[in] pSrcA points to the first input matrix structure
474 * @param[in] pSrcB points to the second input matrix structure
475 * @param[out] pDst points to output matrix structure
485 * @brief Floating-point matrix subtraction
486 * @param[in] pSrcA points to the first input matrix structure
487 * @param[in] pSrcB points to the second input matrix structure
488 * @param[out] pDst points to output matrix structure
498 * @brief Q15 matrix subtraction
499 * @param[in] pSrcA points to the first input matrix structure
500 * @param[in] pSrcB points to the second input matrix structure
501 * @param[out] pDst points to output matrix structure
511 * @brief Q31 matrix subtraction
512 * @param[in] pSrcA points to the first input matrix structure
513 * @param[in] pSrcB points to the second input matrix structure
514 * @param[out] pDst points to output matrix structure
524 * @brief Floating-point matrix scaling.
525 * @param[in] pSrc points to the input matrix
527 * @param[out] pDst points to the output matrix
537 * @brief Q15 matrix scaling.
538 * @param[in] pSrc points to input matrix
541 * @param[out] pDst points to output matrix
552 * @brief Q31 matrix scaling.
553 * @param[in] pSrc points to input matrix
556 * @param[out] pDst points to output matrix structure
567 * @brief Q31 matrix initialization.
568 * @param[in,out] S points to an instance of the floating-point matrix structure.
569 * @param[in] nRows number of rows in the matrix.
570 * @param[in] nColumns number of columns in the matrix.
571 * @param[in] pData points to the matrix data array.
580 * @brief Q15 matrix initialization.
581 * @param[in,out] S points to an instance of the floating-point matrix structure.
582 * @param[in] nRows number of rows in the matrix.
583 * @param[in] nColumns number of columns in the matrix.
584 * @param[in] pData points to the matrix data array.
593 * @brief Floating-point matrix initialization.
594 * @param[in,out] S points to an instance of the floating-point matrix structure.
595 * @param[in] nRows number of rows in the matrix.
596 * @param[in] nColumns number of columns in the matrix.
597 * @param[in] pData points to the matrix data array.
608 * @brief Floating-point matrix inverse.
609 * @param[in] src points to the instance of the input floating-point matrix structure.
610 * @param[out] dst points to the instance of the output floating-point matrix structure.
612 …* If the input matrix is singular (does not have an inverse), then the algorithm terminates and re…
620 * @brief Floating-point matrix inverse.
621 * @param[in] src points to the instance of the input floating-point matrix structure.
622 * @param[out] dst points to the instance of the output floating-point matrix structure.
624 …* If the input matrix is singular (does not have an inverse), then the algorithm terminates and re…
631 * @brief Floating-point Cholesky decomposition of Symmetric Positive Definite Matrix.
632 * @param[in] src points to the instance of the input floating-point matrix structure.
633 * @param[out] dst points to the instance of the output floating-point matrix structure.
635 …* If the input matrix does not have a decomposition, then the algorithm terminates and returns err…
636 …* If the matrix is ill conditioned or only semi-definite, then it is better using the LDL^t decomp…
637 * The decomposition is returning a lower triangular matrix.
644 * @brief Floating-point Cholesky decomposition of Symmetric Positive Definite Matrix.
645 * @param[in] src points to the instance of the input floating-point matrix structure.
646 * @param[out] dst points to the instance of the output floating-point matrix structure.
648 …* If the input matrix does not have a decomposition, then the algorithm terminates and returns err…
649 …* If the matrix is ill conditioned or only semi-definite, then it is better using the LDL^t decomp…
650 * The decomposition is returning a lower triangular matrix.
657 * @brief Solve UT . X = A where UT is an upper triangular matrix
658 * @param[in] ut The upper triangular matrix
659 * @param[in] a The matrix a
669 * @brief Solve LT . X = A where LT is a lower triangular matrix
670 * @param[in] lt The lower triangular matrix
671 * @param[in] a The matrix a
682 * @brief Solve UT . X = A where UT is an upper triangular matrix
683 * @param[in] ut The upper triangular matrix
684 * @param[in] a The matrix a
694 * @brief Solve LT . X = A where LT is a lower triangular matrix
695 * @param[in] lt The lower triangular matrix
696 * @param[in] a The matrix a
707 * @brief Floating-point LDL decomposition of Symmetric Positive Semi-Definite Matrix.
708 * @param[in] src points to the instance of the input floating-point matrix structure.
709 … * @param[out] l points to the instance of the output floating-point triangular matrix structure.
710 * @param[out] d points to the instance of the output floating-point diagonal matrix structure.
713 …* If the input matrix does not have a decomposition, then the algorithm terminates and returns err…
714 * The decomposition is returning a lower triangular matrix.
723 * @brief Floating-point LDL decomposition of Symmetric Positive Semi-Definite Matrix.
724 * @param[in] src points to the instance of the input floating-point matrix structure.
725 … * @param[out] l points to the instance of the output floating-point triangular matrix structure.
726 * @param[out] d points to the instance of the output floating-point diagonal matrix structure.
729 …* If the input matrix does not have a decomposition, then the algorithm terminates and returns err…
730 * The decomposition is returning a lower triangular matrix.