Function arm_elementwise_sub_s16

Function Documentation

arm_cmsis_nn_status arm_elementwise_sub_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 subtract 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. Bound: the kernel evaluates value << left_shift in int32; the offsets are unused, so with full-range int16 inputs the extremes are +32767 and -32768, and -32768 << 16 is exactly INT32_MIN, which makes 16 the last shift that stays representable. The scale 1 << left_shift is itself representable up to 30. Not validated by the kernel.

  • 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 ARM_CMSIS_NN_SUCCESS