CMSIS-NN
Version 1.2.0
CMSIS NN Software Library
|
Functions | |
void | arm_nn_accumulate_q7_to_q15 (q15_t *pDst, const q7_t *pSrc, uint32_t length) |
Converts the elements from a q7 vector and accumulate to a q15 vector. More... | |
void | arm_nn_add_q7 (const q7_t *input, q31_t *output, uint32_t block_size) |
Non-saturating addition of elements of a q7 vector. More... | |
void | arm_nn_mult_q15 (q15_t *pSrcA, q15_t *pSrcB, q15_t *pDst, const uint16_t out_shift, uint32_t blockSize) |
Q7 vector multiplication with variable output shifts. More... | |
void | arm_nn_mult_q7 (q7_t *pSrcA, q7_t *pSrcB, q7_t *pDst, const uint16_t out_shift, uint32_t blockSize) |
Q7 vector multiplication with variable output shifts. More... | |
Basic Math Functions for Neural Network Computation
void arm_nn_accumulate_q7_to_q15 | ( | q15_t * | dst, |
const q7_t * | src, | ||
uint32_t | block_size | ||
) |
[in] | *src | points to the q7 input vector |
[out] | *dst | points to the q15 output vector |
[in] | block_size | length of the input vector |
The equation used for the conversion process is:
dst[n] += (q15_t) src[n] ; 0 <= n < block_size.
References arm_nn_read_q15x2(), and arm_nn_read_q7x4_ia().
Referenced by arm_avgpool_s8().
void arm_nn_add_q7 | ( | const q7_t * | input, |
q31_t * | output, | ||
uint32_t | block_size | ||
) |
[in] | *input | Pointer to the q7 input vector |
[out] | *output | Pointer to the q31 output variable. |
[in] | block_size | length of the input vector |
2^24 samples can be added without saturating the result.
The equation used for the conversion process is:
sum = input[0] + input[1] + .. + input[block_size -1]
References arm_nn_read_q7x4_ia().
void arm_nn_mult_q15 | ( | q15_t * | pSrcA, |
q15_t * | pSrcB, | ||
q15_t * | pDst, | ||
const uint16_t | out_shift, | ||
uint32_t | blockSize | ||
) |
q7 vector multiplication with variable output shifts
[in] | *pSrcA | pointer to the first input vector |
[in] | *pSrcB | pointer to the second input vector |
[out] | *pDst | pointer to the output vector |
[in] | out_shift | amount of right-shift for output |
[in] | blockSize | number of samples in each vector |
Scaling and Overflow Behavior:
References NN_ROUND.
void arm_nn_mult_q7 | ( | q7_t * | pSrcA, |
q7_t * | pSrcB, | ||
q7_t * | pDst, | ||
const uint16_t | out_shift, | ||
uint32_t | blockSize | ||
) |
q7 vector multiplication with variable output shifts
[in] | *pSrcA | pointer to the first input vector |
[in] | *pSrcB | pointer to the second input vector |
[out] | *pDst | pointer to the output vector |
[in] | out_shift | amount of right-shift for output |
[in] | blockSize | number of samples in each vector |
Scaling and Overflow Behavior:
References NN_ROUND.