92 q15_t *pSrcBT = pState;
96 uint16_t numRowsA = pSrcA->
numRows;
97 uint16_t numColsB = pSrcB->
numCols;
98 uint16_t numColsA = pSrcA->
numCols;
99 uint16_t numRowsB = pSrcB->
numRows;
100 uint16_t col, i = 0u, row = numRowsB, colCnt;
103 #ifndef UNALIGNED_SUPPORT_DISABLE 106 q31_t inA1, inA2, inB1, inB2;
111 q15_t inA1, inA2, inB1, inB2;
115 #ifdef ARM_MATH_MATRIX_CHECK 139 #ifndef UNALIGNED_SUPPORT_DISABLE 144 #ifndef ARM_MATH_BIG_ENDIAN 150 *px = (
q15_t) ((in & (
q31_t) 0xffff0000) >> 16);
158 #ifndef ARM_MATH_BIG_ENDIAN 160 *px = (
q15_t) ((in & (
q31_t) 0xffff0000) >> 16);
175 #ifndef ARM_MATH_BIG_ENDIAN 181 *px = (
q15_t) ((in & (
q31_t) 0xffff0000) >> 16);
190 #ifndef ARM_MATH_BIG_ENDIAN 192 *px = (
q15_t) ((in & (
q31_t) 0xffff0000) >> 16);
246 col = numColsB % 0x4u;
290 colCnt = numColsA >> 2;
293 pInA = pSrcA->
pData + i;
299 #ifndef UNALIGNED_SUPPORT_DISABLE 306 sum = __SMLAD(inA1, inB1, sum);
307 sum = __SMLAD(inA2, inB2, sum);
333 colCnt = numColsA % 0x4u;
338 sum += (
q31_t) (*pInA++) * (*pInB++);
344 *px = (
q15_t) (sum >> 15);
int16_t q15_t
16-bit fractional data type in 1.15 format.
arm_status arm_mat_mult_fast_q15(const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst, q15_t *pState)
Q15 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4.
#define __SIMD32(addr)
definition to read/write two 16 bit values.
Instance structure for the Q15 matrix structure.
int32_t q31_t
32-bit fractional data type in 1.31 format.
arm_status
Error status returned by some functions in the library.