89 uint16_t numRowsA = pSrcA->
numRows;
90 uint16_t numColsB = pSrcB->
numCols;
91 uint16_t numColsA = pSrcA->
numCols;
93 #ifndef ARM_MATH_CM0_FAMILY 97 uint16_t col, i = 0u, j, row = numRowsA, colCnt;
99 q31_t a0, a1, a2, a3, b0, b1, b2, b3;
101 #ifdef ARM_MATH_MATRIX_CHECK 141 colCnt = numColsA >> 2;
160 sum += (
q63_t) a0 *b0;
161 sum += (
q63_t) a1 *b1;
169 sum += (
q63_t) a2 *b2;
170 sum += (
q63_t) a3 *b3;
178 colCnt = numColsA % 0x4u;
184 sum += (
q63_t) * pIn1++ * *pIn2;
192 *px++ = (
q31_t) (sum >> 31);
196 pIn2 = (pSrcB->
pData) + j;
208 uint16_t col, i = 0u, row = numRowsA, colCnt;
212 #ifdef ARM_MATH_MATRIX_CHECK 256 sum += (
q63_t) * pIn1++ * *pIn2;
264 *px++ = (
q31_t) clip_q63_to_q31(sum >> 31);
270 pIn2 = pInB + (numColsB - col);
278 pInA = pInA + numColsA;
arm_status arm_mat_mult_q31(const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst)
Q31 matrix multiplication.
int64_t q63_t
64-bit fractional data type in 1.63 format.
int32_t q31_t
32-bit fractional data type in 1.31 format.
arm_status
Error status returned by some functions in the library.
Instance structure for the Q31 matrix structure.