![]() |
NMSIS-NN
Version 1.4.1
NMSIS NN Software Library
|
Functions | |
| void | riscv_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 | riscv_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 | riscv_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 | riscv_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 riscv_nn_accumulate_q7_to_q15 | ( | q15_t * | dst, |
| const q7_t * | src, | ||
| uint32_t | block_size | ||
| ) |
Converts the elements from a q7 vector and accumulate to a q15 vector.
| [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.
| void riscv_nn_add_q7 | ( | const q7_t * | input, |
| q31_t * | output, | ||
| uint32_t | block_size | ||
| ) |
Non-saturating addition of elements of a q7 vector.
| [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]
| void riscv_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.
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:
| void riscv_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.
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: