GroupElementwise

riscv_nmsis_nn_status riscv_elementwise_add_s16(const int16_t *input_1_vect, const int16_t *input_2_vect, const int32_t input_1_offset, const int32_t input_1_mult, const int32_t input_1_shift, const int32_t input_2_offset, const int32_t input_2_mult, const int32_t input_2_shift, const int32_t left_shift, int16_t *output, const int32_t out_offset, const int32_t out_mult, const int32_t out_shift, const int32_t out_activation_min, const int32_t out_activation_max, const int32_t block_size)
riscv_nmsis_nn_status riscv_elementwise_add_s8(const int8_t *input_1_vect, const int8_t *input_2_vect, const int32_t input_1_offset, const int32_t input_1_mult, const int32_t input_1_shift, const int32_t input_2_offset, const int32_t input_2_mult, const int32_t input_2_shift, const int32_t left_shift, int8_t *output, const int32_t out_offset, const int32_t out_mult, const int32_t out_shift, const int32_t out_activation_min, const int32_t out_activation_max, const int32_t block_size)
riscv_nmsis_nn_status riscv_elementwise_mul_s16(const int16_t *input_1_vect, const int16_t *input_2_vect, const int32_t input_1_offset, const int32_t input_2_offset, int16_t *output, const int32_t out_offset, const int32_t out_mult, const int32_t out_shift, const int32_t out_activation_min, const int32_t out_activation_max, const int32_t block_size)
riscv_nmsis_nn_status riscv_elementwise_mul_s8(const int8_t *input_1_vect, const int8_t *input_2_vect, const int32_t input_1_offset, const int32_t input_2_offset, int8_t *output, const int32_t out_offset, const int32_t out_mult, const int32_t out_shift, const int32_t out_activation_min, const int32_t out_activation_max, const int32_t block_size)
group GroupElementwise

Functions

riscv_nmsis_nn_status riscv_elementwise_add_s16(const int16_t *input_1_vect, const int16_t *input_2_vect, const int32_t input_1_offset, const int32_t input_1_mult, const int32_t input_1_shift, const int32_t input_2_offset, const int32_t input_2_mult, const int32_t input_2_shift, const int32_t left_shift, int16_t *output, const int32_t out_offset, const int32_t out_mult, const int32_t out_shift, const int32_t out_activation_min, const int32_t out_activation_max, const int32_t block_size)

s16 elementwise add of two vectors

Parameters
  • input_1_vect[in] pointer to input vector 1

  • input_2_vect[in] pointer to input vector 2

  • input_1_offset[in] offset for input 1. Not used.

  • input_1_mult[in] multiplier for input 1

  • input_1_shift[in] shift for input 1

  • input_2_offset[in] offset for input 2. Not used.

  • input_2_mult[in] multiplier for input 2

  • input_2_shift[in] shift for input 2

  • left_shift[in] input left shift

  • output[inout] pointer to output vector

  • out_offset[in] output offset. Not used.

  • out_mult[in] output multiplier

  • out_shift[in] output shift

  • out_activation_min[in] minimum value to clamp output to. Min: -32768

  • out_activation_max[in] maximum value to clamp output to. Max: 32767

  • block_size[in] number of samples

Returns

The function returns RISCV_NMSIS_NN_SUCCESS

riscv_nmsis_nn_status riscv_elementwise_add_s8(const int8_t *input_1_vect, const int8_t *input_2_vect, const int32_t input_1_offset, const int32_t input_1_mult, const int32_t input_1_shift, const int32_t input_2_offset, const int32_t input_2_mult, const int32_t input_2_shift, const int32_t left_shift, int8_t *output, const int32_t out_offset, const int32_t out_mult, const int32_t out_shift, const int32_t out_activation_min, const int32_t out_activation_max, const int32_t block_size)

s8 elementwise add of two vectors

Parameters
  • input_1_vect[in] pointer to input vector 1

  • input_2_vect[in] pointer to input vector 2

  • input_1_offset[in] offset for input 1. Range: -127 to 128

  • input_1_mult[in] multiplier for input 1

  • input_1_shift[in] shift for input 1

  • input_2_offset[in] offset for input 2. Range: -127 to 128

  • input_2_mult[in] multiplier for input 2

  • input_2_shift[in] shift for input 2

  • left_shift[in] input left shift

  • output[inout] pointer to output vector

  • out_offset[in] output offset. Range: -128 to 127

  • out_mult[in] output multiplier

  • out_shift[in] output shift

  • out_activation_min[in] minimum value to clamp output to. Min: -128

  • out_activation_max[in] maximum value to clamp output to. Max: 127

  • block_size[in] number of samples

Returns

The function returns RISCV_NMSIS_NN_SUCCESS

riscv_nmsis_nn_status riscv_elementwise_mul_s16(const int16_t *input_1_vect, const int16_t *input_2_vect, const int32_t input_1_offset, const int32_t input_2_offset, int16_t *output, const int32_t out_offset, const int32_t out_mult, const int32_t out_shift, const int32_t out_activation_min, const int32_t out_activation_max, const int32_t block_size)

s16 element wise multiplication of two vectors

s16 elementwise multiplication

Note

Refer header file for details.

riscv_nmsis_nn_status riscv_elementwise_mul_s8(const int8_t *input_1_vect, const int8_t *input_2_vect, const int32_t input_1_offset, const int32_t input_2_offset, int8_t *output, const int32_t out_offset, const int32_t out_mult, const int32_t out_shift, const int32_t out_activation_min, const int32_t out_activation_max, const int32_t block_size)

s8 elementwise multiplication

Supported framework: TensorFlow Lite micro

Parameters
  • input_1_vect[in] pointer to input vector 1

  • input_2_vect[in] pointer to input vector 2

  • input_1_offset[in] offset for input 1. Range: -127 to 128

  • input_2_offset[in] offset for input 2. Range: -127 to 128

  • output[inout] pointer to output vector

  • out_offset[in] output offset. Range: -128 to 127

  • out_mult[in] output multiplier

  • out_shift[in] output shift

  • out_activation_min[in] minimum value to clamp output to. Min: -128

  • out_activation_max[in] maximum value to clamp output to. Max: 127

  • block_size[in] number of samples

Returns

The function returns RISCV_NMSIS_NN_SUCCESS