Home
last modified time | relevance | path

Searched full:matrix (Results 1 – 25 of 199) sorted by relevance

12345678

/cmsis-dsp-latest/Include/dsp/
Dmatrix_functions.h42 * @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
[all …]
Dmatrix_functions_f16.h47 * @brief Instance structure for the floating-point matrix structure.
51 uint16_t numRows; /**< number of rows of the matrix. */
52 uint16_t numCols; /**< number of columns of the matrix. */
53 float16_t *pData; /**< points to the data of the matrix. */
57 * @brief Floating-point matrix addition.
58 * @param[in] pSrcA points to the first input matrix structure
59 * @param[in] pSrcB points to the second input matrix structure
60 * @param[out] pDst points to output matrix structure
70 * @brief Floating-point, complex, matrix multiplication.
71 * @param[in] pSrcA points to the first input matrix structure
[all …]
/cmsis-dsp-latest/dsppp/Include/dsppp/
Dmatrix_impl.hpp22 /** \addtogroup Matrix
28 * MATRIX
52 /** @brief Matrix
60 struct Matrix:Vector<P,R*C,Allocator> struct
78 /** @brief Create matrix
80 Matrix():Vector<P,R*C,Allocator>(){}; in Matrix() function
82 /** @brief Create matrix
85 explicit Matrix(P init_val):Vector<P,R*C,Allocator>(init_val){}; in Matrix() function
87 Matrix(const Matrix& other) = default;
88 Matrix(Matrix&& other) = default;
[all …]
Dmatrix_view.hpp23 /** \addtogroup Matrix
27 /** @brief Matrix
49 /** @brief Create matrix view on a buffer (buffer not owned by the view)
59 /** @brief Create matrix view on vector (vector not owned by the view)
83 /** @brief Access matrix view element at given position
94 /** @brief Access matrix view element at given position
106 /** @brief Assign matrix from expression
109 * @return the matrix
119 /** @brief Assign matrix view from constant
121 * @return the matrix
[all …]
Dalgorithms.hpp28 Matrix transpose
35 * @brief Transpose a matrix.
37 * @tparam MA Any matrix type
38 * @tparam MB Any matrix type
39 * @param dst Destination matrix.
40 * @param src Source matrix.
59 Init a diagonal matrix (0 outside of diagonal)
67 inline void _diagonal(Matrix<P,R,R,A> &v, in _diagonal()
83 Fill diagonal of an existing matrix
91 inline void _fill_diagonal(Matrix<P,R,R,A> &v, in _fill_diagonal()
[all …]
Dmatrix.hpp24 /** \addtogroup Matrix Matrixes
31 struct traits<Matrix<P,R,C,A>>
50 struct traits<const Matrix<P,R,C,A>&>
70 struct IsVector<Matrix<P,R,C,Allocator>>
79 struct HasStaticStride<Matrix<P,R,C,Allocator>>
86 struct StaticStride<Matrix<P,R,C,Allocator>>
93 struct IsMatrix<Matrix<P,R,C,Allocator>>
100 struct HasMatrixIndexing<Matrix<P,R,C,Allocator>>
131 struct IsVector<const Matrix<P,R,C,Allocator>&>
151 struct HasStaticStride<const Matrix<P,R,C,Allocator>&>
[all …]
/cmsis-dsp-latest/Source/MatrixFunctions/
Darm_mat_inverse_f32.c4 * Description: Floating-point matrix inverse
38 @defgroup MatrixInv Matrix Inverse
40 Computes the inverse of a matrix.
42 …The inverse is defined only if the input matrix is square and non-singular (the determinant is non…
45 Matrix inversion is numerically sensitive and the CMSIS DSP library only supports matrix
51 reduces the input matrix to an identity matrix. Applying the same sequence
52 of elementary row-operations to an identity matrix yields the inverse matrix.
53 If the input matrix is singular, then the algorithm terminates and returns error status
56 @par Matrix Inverse of a 3 x 3 matrix using Gauss-Jordan Method
79 @brief Floating-point matrix inverse.
[all …]
Darm_mat_inverse_f64.c4 * Description: Floating-point matrix inverse
43 @brief Floating-point (64 bit) matrix inverse.
44 …@param[in] pSrc points to input matrix structure. The source matrix is modified by the fu…
45 @param[out] pDst points to output matrix structure
48 - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed
49 … - \ref ARM_MATH_SINGULAR : Input matrix is found to be singular (non-invertible)
56 float64_t *pIn = pSrc->pData; /* input data matrix pointer */ in arm_mat_inverse_f64()
57 float64_t *pOut = pDst->pData; /* output data matrix pointer */ in arm_mat_inverse_f64()
60 uint32_t numRows = pSrc->numRows; /* Number of rows in the matrix */ in arm_mat_inverse_f64()
61 uint32_t numCols = pSrc->numCols; /* Number of Cols in the matrix */ in arm_mat_inverse_f64()
[all …]
Darm_mat_inverse_f16.c4 * Description: Floating-point matrix inverse
46 @brief Floating-point matrix inverse.
47 …@param[in] pSrc points to input matrix structure. The source matrix is modified by the fu…
48 @param[out] pDst points to output matrix structure
51 - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed
52 … - \ref ARM_MATH_SINGULAR : Input matrix is found to be singular (non-invertible)
58 float16_t *pIn = pSrc->pData; /* input data matrix pointer */ in arm_mat_inverse_f16()
59 float16_t *pOut = pDst->pData; /* output data matrix pointer */ in arm_mat_inverse_f16()
62 uint32_t numRows = pSrc->numRows; /* Number of rows in the matrix */ in arm_mat_inverse_f16()
63 uint32_t numCols = pSrc->numCols; /* Number of Cols in the matrix */ in arm_mat_inverse_f16()
[all …]
Darm_mat_trans_f64.c4 * Description: Floating-point matrix transpose
36 @defgroup MatrixTrans Matrix Transpose
38 Tranposes a matrix.
40 …ransposing an <code>M x N</code> matrix flips it around the center diagonal and results in an <cod…
41 \image html MatrixTranspose.gif "Transpose of a 3 x 3 matrix"
50 @brief Floating-point matrix transpose.
51 @param[in] pSrc points to input matrix
52 @param[out] pDst points to output matrix
55 - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed
63 float64_t *pIn = pSrc->pData; /* input data matrix pointer */ in arm_mat_trans_f64()
[all …]
Darm_mat_scale_f32.c4 * Description: Multiplies a floating-point matrix by a scalar
36 @defgroup MatrixScale Matrix Scale
38 Multiplies a matrix by a scalar. This is accomplished by multiplying each element in the
39 matrix by the scalar. For example:
41 @par Matrix Scaling of a 3 x 3 matrix
74 @brief Floating-point matrix scaling.
75 @param[in] pSrc points to input matrix
77 @param[out] pDst points to output matrix structure
80 - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed
88 arm_status status; /* status of matrix scaling */ in arm_mat_scale_f32()
[all …]
Darm_mat_trans_f32.c4 * Description: Floating-point matrix transpose
36 @defgroup MatrixTrans Matrix Transpose
38 Tranposes a matrix.
40 …ransposing an <code>M x N</code> matrix flips it around the center diagonal and results in an <cod…
42 @par Transpose of a 3 x 3 matrix
66 @brief Floating-point matrix transpose.
67 @param[in] pSrc points to input matrix
68 @param[out] pDst points to output matrix
71 - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed
81 arm_status status; /* status of matrix transpose */ in arm_mat_trans_f32()
[all …]
Darm_mat_mult_f64.c4 * Description: Floating-point matrix multiplication
39 * @defgroup MatrixMult Matrix Multiplication
45 * Matrix multiplication is only defined if the number of columns of the
46 * first matrix equals the number of rows of the second matrix.
47 * Multiplying an <code>M x N</code> matrix with an <code>N x P</code> matrix results
48 * in an <code>M x P</code> matrix.
49 * When matrix size checking is enabled, the functions check: (1) that the inner dimensions of
51 * matrix equals the outer dimensions of <code>pSrcA</code> and <code>pSrcB</code>.
61 * @brief Floating-point matrix multiplication.
62 * @param[in] *pSrcA points to the first input matrix structure
[all …]
Darm_mat_mult_q15.c4 * Description: Q15 matrix multiplication
41 @brief Q15 matrix multiplication.
42 @param[in] pSrcA points to the first input matrix structure
43 @param[in] pSrcB points to the second input matrix structure
44 @param[out] pDst points to output matrix structure
48 - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed
76 q15_t *pInB = pSrcB->pData; /* input data matrix pointer B */ in arm_mat_mult_q15_2x2_mve()
77 q15_t *pInA = pSrcA->pData; /* input data matrix pointer A */ in arm_mat_mult_q15_2x2_mve()
78 q15_t *pOut = pDst->pData; /* output data matrix pointer */ in arm_mat_mult_q15_2x2_mve()
132 q15_t *pInB = pSrcB->pData; /* input data matrix pointer B */ in arm_mat_mult_q15_3x3_mve()
[all …]
Darm_mat_add_f32.c4 * Description: Floating-point matrix addition
36 @defgroup MatrixAdd Matrix Addition
73 @brief Floating-point matrix addition.
74 @param[in] pSrcA points to first input matrix structure
75 @param[in] pSrcB points to second input matrix structure
76 @param[out] pDst points to output matrix structure
79 - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed
89 uint32_t numSamples; /* total number of elements in the matrix */ in arm_mat_add_f32()
103 /* Check for matrix mismatch condition */ in arm_mat_add_f32()
115 * Total number of samples in the input matrix in arm_mat_add_f32()
[all …]
Darm_mat_cmplx_mult_q15.c4 * Description: Q15 complex matrix multiplication
41 @brief Q15 Complex matrix multiplication.
42 @param[in] pSrcA points to first input complex matrix structure
43 @param[in] pSrcB points to second input complex matrix structure
44 @param[out] pDst points to output complex matrix structure
48 - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed
70 … q15_t const *pInA = (q15_t const *) pSrcA->pData; /* input data matrix pointer A of Q15 type */ in arm_mat_cmplx_mult_q15()
71 … q15_t const *pInB = (q15_t const *) pSrcB->pData; /* input data matrix pointer B of Q15 type */ in arm_mat_cmplx_mult_q15()
73 q15_t *px; /* Temporary output data matrix pointer */ in arm_mat_cmplx_mult_q15()
74 uint32_t numRowsA = pSrcA->numRows; /* number of rows of input matrix A */ in arm_mat_cmplx_mult_q15()
[all …]
Darm_mat_mult_opt_q31.c4 * Description: Q31 matrix multiplication
41 @brief Q31 matrix multiplication.
42 @param[in] pSrcA points to the first input matrix structure
43 @param[in] pSrcB points to the second input matrix structure
44 @param[out] pDst points to output matrix structure
48 - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed
76 q31_t *pInB = pSrcB->pData; /* input data matrix pointer B */ in arm_mat_mult_opt_q31_2x2_mve()
77 q31_t *pInA = pSrcA->pData; /* input data matrix pointer A */ in arm_mat_mult_opt_q31_2x2_mve()
78 q31_t *pOut = pDst->pData; /* output data matrix pointer */ in arm_mat_mult_opt_q31_2x2_mve()
135 q31_t *pInB = pSrcB->pData; /* input data matrix pointer B */ in arm_mat_mult_opt_q31_3x3_mve()
[all …]
Darm_mat_cmplx_trans_f32.c4 * Description: Floating-point complex matrix transpose
36 @defgroup MatrixComplexTrans Complex Matrix Transpose
38 Tranposes a complex matrix.
40 …ransposing an <code>M x N</code> matrix flips it around the center diagonal and results in an <cod…
42 @par Transpose of a 3 x 3 matrix
66 @brief Floating-point matrix transpose.
67 @param[in] pSrc points to input matrix
68 @param[out] pDst points to output matrix
71 - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed
88 float32_t *pIn = pSrc->pData; /* input data matrix pointer */ in arm_mat_cmplx_trans_f32()
[all …]
Darm_mat_mult_q7.c4 * Description: Q15 matrix multiplication
42 * @brief Q7 matrix multiplication
43 * @param[in] *pSrcA points to the first input matrix structure
44 * @param[in] *pSrcB points to the second input matrix structure
45 * @param[out] *pDst points to output matrix structure
65 q7_t const *pInB = (q7_t const *)pSrcB->pData; /* input data matrix pointer B */ in arm_mat_mult_q7_2x2_mve()
66 q7_t *pInA = pSrcA->pData; /* input data matrix pointer A */ in arm_mat_mult_q7_2x2_mve()
67 q7_t *pOut = pDst->pData; /* output data matrix pointer */ in arm_mat_mult_q7_2x2_mve()
114 q7_t const *pInB = (q7_t const *)pSrcB->pData; /* input data matrix pointer B */ in arm_mat_mult_q7_3x3_mve()
115 q7_t *pInA = pSrcA->pData; /* input data matrix pointer A */ in arm_mat_mult_q7_3x3_mve()
[all …]
Darm_mat_mult_f32.c4 * Description: Floating-point matrix multiplication
40 * @defgroup MatrixMult Matrix Multiplication
66 * Matrix multiplication is only defined if the number of columns of the
67 * first matrix equals the number of rows of the second matrix.
68 * Multiplying an <code>M x N</code> matrix with an <code>N x P</code> matrix results
69 * in an <code>M x P</code> matrix.
70 * When matrix size checking is enabled, the functions check: (1) that the inner dimensions of
72 * matrix equals the outer dimensions of <code>pSrcA</code> and <code>pSrcB</code>.
145 float32_t *pInB = pSrcB->pData; /* input data matrix pointer B */ in arm_mat_mult_f32_3x3_mve()
146 float32_t *pInA = pSrcA->pData; /* input data matrix pointer A */ in arm_mat_mult_f32_3x3_mve()
[all …]
Darm_mat_mult_q31.c4 * Description: Q31 matrix multiplication
41 @brief Q31 matrix multiplication.
42 @param[in] pSrcA points to the first input matrix structure
43 @param[in] pSrcB points to the second input matrix structure
44 @param[out] pDst points to output matrix structure
47 - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed
72 q31_t *pInB = pSrcB->pData; /* input data matrix pointer B */ in arm_mat_mult_q31_2x2_mve()
73 q31_t *pInA = pSrcA->pData; /* input data matrix pointer A */ in arm_mat_mult_q31_2x2_mve()
74 q31_t *pOut = pDst->pData; /* output data matrix pointer */ in arm_mat_mult_q31_2x2_mve()
131 q31_t *pInB = pSrcB->pData; /* input data matrix pointer B */ in arm_mat_mult_q31_3x3_mve()
[all …]
Darm_mat_sub_f32.c4 * Description: Floating-point matrix subtraction
36 @defgroup MatrixSub Matrix Subtraction
71 @brief Floating-point matrix subtraction.
72 @param[in] pSrcA points to the first input matrix structure
73 @param[in] pSrcB points to the second input matrix structure
74 @param[out] pDst points to output matrix structure
77 - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed
85 arm_status status; /* status of matrix subtraction */ in arm_mat_sub_f32()
86 uint32_t numSamples; /* total number of elements in the matrix */ in arm_mat_sub_f32()
100 /* Check for matrix mismatch condition */ in arm_mat_sub_f32()
[all …]
Darm_mat_mult_fast_q15.c4 * Description: Q15 matrix multiplication (fast variant)
41 @brief Q15 matrix multiplication (fast variant).
42 @param[in] pSrcA points to the first input matrix structure
43 @param[in] pSrcB points to the second input matrix structure
44 @param[out] pDst points to output matrix structure
48 - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed
74 q15_t *pSrcBT = pState; /* Input data matrix pointer for transpose */ in arm_mat_mult_fast_q15()
75 q15_t *pInA = pSrcA->pData; /* Input data matrix pointer A of Q15 type */ in arm_mat_mult_fast_q15()
76 q15_t *pInB = pSrcB->pData; /* Input data matrix pointer B of Q15 type */ in arm_mat_mult_fast_q15()
77 q15_t *px; /* Temporary output data matrix pointer */ in arm_mat_mult_fast_q15()
[all …]
Darm_mat_scale_f16.c4 * Description: Multiplies a floating-point matrix by a scalar
45 @brief Floating-point matrix scaling.
46 @param[in] pSrc points to input matrix
48 @param[out] pDst points to output matrix structure
51 - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed
60 arm_status status; /* status of matrix scaling */ in arm_mat_scale_f16()
62 /* Check for matrix mismatch condition */ in arm_mat_scale_f16()
71 float16_t *pIn = pSrc->pData; /* input data matrix pointer */ in arm_mat_scale_f16()
72 float16_t *pOut = pDst->pData; /* output data matrix pointer */ in arm_mat_scale_f16()
73 uint32_t numSamples; /* total number of elements in the matrix */ in arm_mat_scale_f16()
[all …]
/cmsis-dsp-latest/Documentation/Doxygen/src/
Dmatrix.md1 # Matrix {#dsppp_matrix}
6 Matrix<float32_t,ROWS,COLS> a;
7 Matrix<float32_t,ROWS,COLS> b;
13 Matrix<float32_t> a(rows,cols);
14 Matrix<float32_t> b(rows,cols);
17 Once you have matrixes, you need to initialize them. A matrix is also a vector, so you can initial…
41 Matrix<float32_t,ROWS,COLS> result = a * a + b;
44 …merged into the loop. `*` is the element-wise multiply. For the vector / matrix products you shoul…
46 …erators will not work with `dot(Matrix, Matrix`). It is only supported with vectors : `dot(Vector,…
50 We can create virtual vectors which are view of some slices of the matrix.
[all …]

12345678