CMSIS-NN  
CMSIS NN Software Library
 
Loading...
Searching...
No Matches
Elementwise Functions

Functions

arm_cmsis_nn_status arm_elementwise_add_f32 (const float32_t *input_1_vect, const float32_t *input_2_vect, float32_t *output, float32_t out_activation_min, float32_t out_activation_max, int32_t block_size)
 Elementwise add with optional output clamp.
 
arm_cmsis_nn_status arm_elementwise_mul_f32 (const float32_t *input_1_vect, const float32_t *input_2_vect, float32_t *output, float32_t out_activation_min, float32_t out_activation_max, int32_t block_size)
 Elementwise multiply with optional output clamp.
 
arm_cmsis_nn_status arm_minimum_f32 (const cmsis_nn_context *ctx, const float32_t *input_1_data, const cmsis_nn_dims *input_1_dims, const float32_t *input_2_data, const cmsis_nn_dims *input_2_dims, float32_t *output_data, const cmsis_nn_dims *output_dims)
 Elementwise minimum.
 
arm_cmsis_nn_status arm_maximum_f32 (const cmsis_nn_context *ctx, const float32_t *input_1_data, const cmsis_nn_dims *input_1_dims, const float32_t *input_2_data, const cmsis_nn_dims *input_2_dims, float32_t *output_data, const cmsis_nn_dims *output_dims)
 Elementwise maximum.
 
arm_cmsis_nn_status arm_elementwise_add_f16 (const float16_t *input_1_vect, const float16_t *input_2_vect, float16_t *output, float16_t out_activation_min, float16_t out_activation_max, int32_t block_size)
 Elementwise add with optional output clamp.
 
arm_cmsis_nn_status arm_elementwise_mul_f16 (const float16_t *input_1_vect, const float16_t *input_2_vect, float16_t *output, float16_t out_activation_min, float16_t out_activation_max, int32_t block_size)
 Elementwise multiply with optional output clamp.
 
arm_cmsis_nn_status arm_minimum_f16 (const cmsis_nn_context *ctx, const float16_t *input_1_data, const cmsis_nn_dims *input_1_dims, const float16_t *input_2_data, const cmsis_nn_dims *input_2_dims, float16_t *output_data, const cmsis_nn_dims *output_dims)
 Elementwise minimum.
 
arm_cmsis_nn_status arm_maximum_f16 (const cmsis_nn_context *ctx, const float16_t *input_1_data, const cmsis_nn_dims *input_1_dims, const float16_t *input_2_data, const cmsis_nn_dims *input_2_dims, float16_t *output_data, const cmsis_nn_dims *output_dims)
 Elementwise maximum.
 
arm_cmsis_nn_status arm_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
 
arm_cmsis_nn_status arm_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
 
arm_cmsis_nn_status arm_elementwise_mul_acc_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 accumulative multiplication of two vectors
 
arm_cmsis_nn_status arm_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
 
arm_cmsis_nn_status arm_elementwise_mul_s16_batch_offset (const int16_t *input_1_vect, const int16_t *input_2_vect, int16_t *output, const int32_t out_offset, const int32_t out_mult, const int32_t out_shift, const int32_t block_size, const int32_t batch_size, const int32_t batch_offset)
 s16 element wise multiplication of batches of two vectors
 
arm_cmsis_nn_status arm_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
 

Description

Elementwise add and multiplication functions.

Function Documentation

◆ arm_elementwise_add_f16()

arm_cmsis_nn_status arm_elementwise_add_f16 ( const float16_t *  input_1_vect,
const float16_t *  input_2_vect,
float16_t *  output,
float16_t  out_activation_min,
float16_t  out_activation_max,
int32_t  block_size 
)

Elementwise add with optional output clamp.

Parameters
[in]input_1_vectPointer to the first input vector.
[in]input_2_vectPointer to the second input vector.
[out]outputPointer to the output vector.
[in]out_activation_minMinimum output clamp value.
[in]out_activation_maxMaximum output clamp value.
[in]block_sizeNumber of elements to process.
Returns
ARM_CMSIS_NN_SUCCESS on success or ARM_CMSIS_NN_ARG_ERROR on invalid arguments.

◆ arm_elementwise_add_f32()

arm_cmsis_nn_status arm_elementwise_add_f32 ( const float32_t input_1_vect,
const float32_t input_2_vect,
float32_t output,
float32_t  out_activation_min,
float32_t  out_activation_max,
int32_t  block_size 
)

Elementwise add with optional output clamp.

Parameters
[in]input_1_vectPointer to the first input vector.
[in]input_2_vectPointer to the second input vector.
[out]outputPointer to the output vector.
[in]out_activation_minMinimum output clamp value.
[in]out_activation_maxMaximum output clamp value.
[in]block_sizeNumber of elements to process.
Returns
ARM_CMSIS_NN_SUCCESS on success or ARM_CMSIS_NN_ARG_ERROR on invalid arguments.

◆ arm_elementwise_add_s16()

arm_cmsis_nn_status arm_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
[in]input_1_vectpointer to input vector 1
[in]input_2_vectpointer to input vector 2
[in]input_1_offsetoffset for input 1. Not used.
[in]input_1_multmultiplier for input 1
[in]input_1_shiftshift for input 1
[in]input_2_offsetoffset for input 2. Not used.
[in]input_2_multmultiplier for input 2
[in]input_2_shiftshift for input 2
[in]left_shiftinput left shift
[in,out]outputpointer to output vector
[in]out_offsetoutput offset. Not used.
[in]out_multoutput multiplier
[in]out_shiftoutput shift
[in]out_activation_minminimum value to clamp output to. Min: -32768
[in]out_activation_maxmaximum value to clamp output to. Max: 32767
[in]block_sizenumber of samples
Returns
The function returns ARM_CMSIS_NN_SUCCESS

◆ arm_elementwise_add_s8()

arm_cmsis_nn_status arm_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
[in]input_1_vectpointer to input vector 1
[in]input_2_vectpointer to input vector 2
[in]input_1_offsetoffset for input 1. Range: -127 to 128
[in]input_1_multmultiplier for input 1
[in]input_1_shiftshift for input 1
[in]input_2_offsetoffset for input 2. Range: -127 to 128
[in]input_2_multmultiplier for input 2
[in]input_2_shiftshift for input 2
[in]left_shiftinput left shift
[in,out]outputpointer to output vector
[in]out_offsetoutput offset. Range: -128 to 127
[in]out_multoutput multiplier
[in]out_shiftoutput shift
[in]out_activation_minminimum value to clamp output to. Min: -128
[in]out_activation_maxmaximum value to clamp output to. Max: 127
[in]block_sizenumber of samples
Returns
The function returns ARM_CMSIS_NN_SUCCESS

◆ arm_elementwise_mul_acc_s16()

arm_cmsis_nn_status arm_elementwise_mul_acc_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 accumulative multiplication of two vectors

s16 elementwise multiplication. The result of the multiplication is accumulated to the passed result buffer.

Note
Refer header file for details.

◆ arm_elementwise_mul_f16()

arm_cmsis_nn_status arm_elementwise_mul_f16 ( const float16_t *  input_1_vect,
const float16_t *  input_2_vect,
float16_t *  output,
float16_t  out_activation_min,
float16_t  out_activation_max,
int32_t  block_size 
)

Elementwise multiply with optional output clamp.

Parameters
[in]input_1_vectPointer to the first input vector.
[in]input_2_vectPointer to the second input vector.
[out]outputPointer to the output vector.
[in]out_activation_minMinimum output clamp value.
[in]out_activation_maxMaximum output clamp value.
[in]block_sizeNumber of elements to process.
Returns
ARM_CMSIS_NN_SUCCESS on success or ARM_CMSIS_NN_ARG_ERROR on invalid arguments.

◆ arm_elementwise_mul_f32()

arm_cmsis_nn_status arm_elementwise_mul_f32 ( const float32_t input_1_vect,
const float32_t input_2_vect,
float32_t output,
float32_t  out_activation_min,
float32_t  out_activation_max,
int32_t  block_size 
)

Elementwise multiply with optional output clamp.

Parameters
[in]input_1_vectPointer to the first input vector.
[in]input_2_vectPointer to the second input vector.
[out]outputPointer to the output vector.
[in]out_activation_minMinimum output clamp value.
[in]out_activation_maxMaximum output clamp value.
[in]block_sizeNumber of elements to process.
Returns
ARM_CMSIS_NN_SUCCESS on success or ARM_CMSIS_NN_ARG_ERROR on invalid arguments.

◆ arm_elementwise_mul_s16()

arm_cmsis_nn_status arm_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.

◆ arm_elementwise_mul_s16_batch_offset()

arm_cmsis_nn_status arm_elementwise_mul_s16_batch_offset ( const int16_t *  input_1_vect,
const int16_t *  input_2_vect,
int16_t *  output,
const int32_t  out_offset,
const int32_t  out_mult,
const int32_t  out_shift,
const int32_t  block_size,
const int32_t  batch_size,
const int32_t  batch_offset 
)

s16 element wise multiplication of batches of two vectors

s16 elementwise multiplication with s16 output

Note
Refer header file for details.

◆ arm_elementwise_mul_s8()

arm_cmsis_nn_status arm_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

Parameters
[in]input_1_vectpointer to input vector 1
[in]input_2_vectpointer to input vector 2
[in]input_1_offsetoffset for input 1. Range: -127 to 128
[in]input_2_offsetoffset for input 2. Range: -127 to 128
[in,out]outputpointer to output vector
[in]out_offsetoutput offset. Range: -128 to 127
[in]out_multoutput multiplier
[in]out_shiftoutput shift
[in]out_activation_minminimum value to clamp output to. Min: -128
[in]out_activation_maxmaximum value to clamp output to. Max: 127
[in]block_sizenumber of samples
Returns
The function returns ARM_CMSIS_NN_SUCCESS

Supported framework: TensorFlow Lite micro

◆ arm_maximum_f16()

arm_cmsis_nn_status arm_maximum_f16 ( const cmsis_nn_context ctx,
const float16_t *  input_1_data,
const cmsis_nn_dims input_1_dims,
const float16_t *  input_2_data,
const cmsis_nn_dims input_2_dims,
float16_t *  output_data,
const cmsis_nn_dims output_dims 
)

Elementwise maximum.

◆ arm_maximum_f32()

arm_cmsis_nn_status arm_maximum_f32 ( const cmsis_nn_context ctx,
const float32_t input_1_data,
const cmsis_nn_dims input_1_dims,
const float32_t input_2_data,
const cmsis_nn_dims input_2_dims,
float32_t output_data,
const cmsis_nn_dims output_dims 
)

Elementwise maximum.

◆ arm_minimum_f16()

arm_cmsis_nn_status arm_minimum_f16 ( const cmsis_nn_context ctx,
const float16_t *  input_1_data,
const cmsis_nn_dims input_1_dims,
const float16_t *  input_2_data,
const cmsis_nn_dims input_2_dims,
float16_t *  output_data,
const cmsis_nn_dims output_dims 
)

Elementwise minimum.

◆ arm_minimum_f32()

arm_cmsis_nn_status arm_minimum_f32 ( const cmsis_nn_context ctx,
const float32_t input_1_data,
const cmsis_nn_dims input_1_dims,
const float32_t input_2_data,
const cmsis_nn_dims input_2_dims,
float32_t output_data,
const cmsis_nn_dims output_dims 
)

Elementwise minimum.