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
116 * @brief Instance structure for the floating-point matrix structure.
120 uint16_t numRows; /**< number of rows of the matrix. */
121 uint16_t numCols; /**< number of columns of the matrix. */
122 float32_t *pData; /**< points to the data of the matrix. */
126 * @brief Instance structure for the floating-point matrix structure.
130 uint16_t numRows; /**< number of rows of the matrix. */
131 uint16_t numCols; /**< number of columns of the matrix. */
132 float64_t *pData; /**< points to the data of the matrix. */
136 * @brief Instance structure for the Q7 matrix structure.
140 uint16_t numRows; /**< number of rows of the matrix. */
141 uint16_t numCols; /**< number of columns of the matrix. */
142 q7_t *pData; /**< points to the data of the matrix. */
146 * @brief Instance structure for the Q15 matrix structure.
150 uint16_t numRows; /**< number of rows of the matrix. */
151 uint16_t numCols; /**< number of columns of the matrix. */
152 q15_t *pData; /**< points to the data of the matrix. */
156 * @brief Instance structure for the Q31 matrix structure.
160 uint16_t numRows; /**< number of rows of the matrix. */
161 uint16_t numCols; /**< number of columns of the matrix. */
162 q31_t *pData; /**< points to the data of the matrix. */
166 * @brief Floating-point matrix addition.
167 * @param[in] pSrcA points to the first input matrix structure
168 * @param[in] pSrcB points to the second input matrix structure
169 * @param[out] pDst points to output matrix structure
179 * @brief Q15 matrix addition.
180 * @param[in] pSrcA points to the first input matrix structure
181 * @param[in] pSrcB points to the second input matrix structure
182 * @param[out] pDst points to output matrix structure
192 * @brief Q31 matrix addition.
193 * @param[in] pSrcA points to the first input matrix structure
194 * @param[in] pSrcB points to the second input matrix structure
195 * @param[out] pDst points to output matrix structure
205 * @brief Floating-point, complex, matrix multiplication.
206 * @param[in] pSrcA points to the first input matrix structure
207 * @param[in] pSrcB points to the second input matrix structure
208 * @param[out] pDst points to output matrix structure
218 * @brief Q15, complex, matrix multiplication.
219 * @param[in] pSrcA points to the first input matrix structure
220 * @param[in] pSrcB points to the second input matrix structure
221 * @param[out] pDst points to output matrix structure
232 * @brief Q31, complex, matrix multiplication.
233 * @param[in] pSrcA points to the first input matrix structure
234 * @param[in] pSrcB points to the second input matrix structure
235 * @param[out] pDst points to output matrix structure
245 * @brief Floating-point matrix transpose.
246 * @param[in] pSrc points to the input matrix
247 * @param[out] pDst points to the output matrix
256 * @brief Floating-point matrix transpose.
257 * @param[in] pSrc points to the input matrix
258 * @param[out] pDst points to the output matrix
267 * @brief Floating-point complex matrix transpose.
268 * @param[in] pSrc points to the input matrix
269 * @param[out] pDst points to the output matrix
279 * @brief Q15 matrix transpose.
280 * @param[in] pSrc points to the input matrix
281 * @param[out] pDst points to the output matrix
290 * @brief Q15 complex matrix transpose.
291 * @param[in] pSrc points to the input matrix
292 * @param[out] pDst points to the output matrix
301 * @brief Q7 matrix transpose.
302 * @param[in] pSrc points to the input matrix
303 * @param[out] pDst points to the output matrix
312 * @brief Q31 matrix transpose.
313 * @param[in] pSrc points to the input matrix
314 * @param[out] pDst points to the output matrix
323 * @brief Q31 complex matrix transpose.
324 * @param[in] pSrc points to the input matrix
325 * @param[out] pDst points to the output matrix
334 * @brief Floating-point matrix multiplication
335 * @param[in] pSrcA points to the first input matrix structure
336 * @param[in] pSrcB points to the second input matrix structure
337 * @param[out] pDst points to output matrix structure
347 * @brief Floating-point matrix multiplication
348 * @param[in] pSrcA points to the first input matrix structure
349 * @param[in] pSrcB points to the second input matrix structure
350 * @param[out] pDst points to output matrix structure
360 * @brief Floating-point matrix and vector multiplication
361 * @param[in] pSrcMat points to the input matrix structure
371 * @brief Q7 matrix multiplication
372 * @param[in] pSrcA points to the first input matrix structure
373 * @param[in] pSrcB points to the second input matrix structure
374 * @param[out] pDst points to output matrix structure
386 * @brief Q7 matrix and vector multiplication
387 * @param[in] pSrcMat points to the input matrix structure
397 * @brief Q15 matrix multiplication
398 * @param[in] pSrcA points to the first input matrix structure
399 * @param[in] pSrcB points to the second input matrix structure
400 * @param[out] pDst points to output matrix structure
412 * @brief Q15 matrix and vector multiplication
413 * @param[in] pSrcMat points to the input matrix structure
423 * @brief Q15 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4
424 * @param[in] pSrcA points to the first input matrix structure
425 * @param[in] pSrcB points to the second input matrix structure
426 * @param[out] pDst points to output matrix structure
438 * @brief Q31 matrix multiplication
439 * @param[in] pSrcA points to the first input matrix structure
440 * @param[in] pSrcB points to the second input matrix structure
441 * @param[out] pDst points to output matrix structure
451 * @brief Q31 matrix multiplication
452 * @param[in] pSrcA points to the first input matrix structure
453 * @param[in] pSrcB points to the second input matrix structure
454 * @param[out] pDst points to output matrix structure
466 * @brief Q31 matrix and vector multiplication
467 * @param[in] pSrcMat points to the input matrix structure
477 * @brief Q31 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4
478 * @param[in] pSrcA points to the first input matrix structure
479 * @param[in] pSrcB points to the second input matrix structure
480 * @param[out] pDst points to output matrix structure
490 * @brief Floating-point matrix subtraction
491 * @param[in] pSrcA points to the first input matrix structure
492 * @param[in] pSrcB points to the second input matrix structure
493 * @param[out] pDst points to output matrix structure
503 * @brief Floating-point matrix subtraction
504 * @param[in] pSrcA points to the first input matrix structure
505 * @param[in] pSrcB points to the second input matrix structure
506 * @param[out] pDst points to output matrix structure
516 * @brief Q15 matrix subtraction
517 * @param[in] pSrcA points to the first input matrix structure
518 * @param[in] pSrcB points to the second input matrix structure
519 * @param[out] pDst points to output matrix structure
529 * @brief Q31 matrix subtraction
530 * @param[in] pSrcA points to the first input matrix structure
531 * @param[in] pSrcB points to the second input matrix structure
532 * @param[out] pDst points to output matrix structure
542 * @brief Floating-point matrix scaling.
543 * @param[in] pSrc points to the input matrix
545 * @param[out] pDst points to the output matrix
555 * @brief Q15 matrix scaling.
556 * @param[in] pSrc points to input matrix
559 * @param[out] pDst points to output matrix
570 * @brief Q31 matrix scaling.
571 * @param[in] pSrc points to input matrix
574 * @param[out] pDst points to output matrix structure
585 * @brief Q31 matrix initialization.
586 * @param[in,out] S points to an instance of the floating-point matrix structure.
587 * @param[in] nRows number of rows in the matrix.
588 * @param[in] nColumns number of columns in the matrix.
589 * @param[in] pData points to the matrix data array.
598 * @brief Q15 matrix initialization.
599 * @param[in,out] S points to an instance of the floating-point matrix structure.
600 * @param[in] nRows number of rows in the matrix.
601 * @param[in] nColumns number of columns in the matrix.
602 * @param[in] pData points to the matrix data array.
611 * @brief Floating-point matrix initialization.
612 * @param[in,out] S points to an instance of the floating-point matrix structure.
613 * @param[in] nRows number of rows in the matrix.
614 * @param[in] nColumns number of columns in the matrix.
615 * @param[in] pData points to the matrix data array.
624 * @brief Floating-point matrix initialization.
625 * @param[in,out] S points to an instance of the floating-point matrix structure.
626 * @param[in] nRows number of rows in the matrix.
627 * @param[in] nColumns number of columns in the matrix.
628 * @param[in] pData points to the matrix data array.
640 * @brief Floating-point matrix inverse.
641 * @param[in] src points to the instance of the input floating-point matrix structure.
642 * @param[out] dst points to the instance of the output floating-point matrix structure.
644 …* If the input matrix is singular (does not have an inverse), then the algorithm terminates and re…
652 * @brief Floating-point matrix inverse.
653 * @param[in] src points to the instance of the input floating-point matrix structure.
654 * @param[out] dst points to the instance of the output floating-point matrix structure.
656 …* If the input matrix is singular (does not have an inverse), then the algorithm terminates and re…
663 * @brief Floating-point Cholesky decomposition of Symmetric Positive Definite Matrix.
664 * @param[in] src points to the instance of the input floating-point matrix structure.
665 * @param[out] dst points to the instance of the output floating-point matrix structure.
667 …* If the input matrix does not have a decomposition, then the algorithm terminates and returns err…
668 …* If the matrix is ill conditioned or only semi-definite, then it is better using the LDL^t decomp…
669 * The decomposition is returning a lower triangular matrix.
676 * @brief Floating-point Cholesky decomposition of Symmetric Positive Definite Matrix.
677 * @param[in] src points to the instance of the input floating-point matrix structure.
678 * @param[out] dst points to the instance of the output floating-point matrix structure.
680 …* If the input matrix does not have a decomposition, then the algorithm terminates and returns err…
681 …* If the matrix is ill conditioned or only semi-definite, then it is better using the LDL^t decomp…
682 * The decomposition is returning a lower triangular matrix.
689 * @brief Solve UT . X = A where UT is an upper triangular matrix
690 * @param[in] ut The upper triangular matrix
691 * @param[in] a The matrix a
701 * @brief Solve LT . X = A where LT is a lower triangular matrix
702 * @param[in] lt The lower triangular matrix
703 * @param[in] a The matrix a
714 * @brief Solve UT . X = A where UT is an upper triangular matrix
715 * @param[in] ut The upper triangular matrix
716 * @param[in] a The matrix a
726 * @brief Solve LT . X = A where LT is a lower triangular matrix
727 * @param[in] lt The lower triangular matrix
728 * @param[in] a The matrix a
739 * @brief Floating-point LDL decomposition of Symmetric Positive Semi-Definite Matrix.
740 * @param[in] src points to the instance of the input floating-point matrix structure.
741 … * @param[out] l points to the instance of the output floating-point triangular matrix structure.
742 * @param[out] d points to the instance of the output floating-point diagonal matrix structure.
745 …* If the input matrix does not have a decomposition, then the algorithm terminates and returns err…
746 * The decomposition is returning a lower triangular matrix.
755 * @brief Floating-point LDL decomposition of Symmetric Positive Semi-Definite Matrix.
756 * @param[in] src points to the instance of the input floating-point matrix structure.
757 … * @param[out] l points to the instance of the output floating-point triangular matrix structure.
758 * @param[out] d points to the instance of the output floating-point diagonal matrix structure.
761 …* If the input matrix does not have a decomposition, then the algorithm terminates and returns err…
762 * The decomposition is returning a lower triangular matrix.
771 @brief QR decomposition of a m x n floating point matrix with m >= n.
772 …@param[in] pSrc points to input matrix structure. The source matrix is modified by the fu…
774 @param[out] pOutR points to output R matrix structure of dimension m x n
775 @param[out] pOutQ points to output Q matrix structure of dimension m x m
781 - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed
782 … - \ref ARM_MATH_SINGULAR : Input matrix is found to be singular (non-invertible)
796 @brief QR decomposition of a m x n floating point matrix with m >= n.
797 …@param[in] pSrc points to input matrix structure. The source matrix is modified by the fu…
799 @param[out] pOutR points to output R matrix structure of dimension m x n
800 @param[out] pOutQ points to output Q matrix structure of dimension m x m
806 - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed
807 … - \ref ARM_MATH_SINGULAR : Input matrix is found to be singular (non-invertible)