# Elementwise

Add, sub, mul, square difference, min/max, batch norm, select, and arithmetic glue. 65 functions, declared in 3 modules.

| Function | Summary | Module |
| --- | --- | --- |
| [`arm_abs_s16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_abs_s16) | s16 elementwise absolute value | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_abs_s8`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_abs_s8) | s8 elementwise absolute value | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_add_s16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_add_s16) | s16 elementwise add of two tensors with support for broadcasting. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_add_s8`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_add_s8) | s8 elementwise add of two tensors with support for broadcasting. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_add_scalar_s16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_add_scalar_s16) | s16 elementwise add of scalar and vector | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_add_scalar_s8`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_add_scalar_s8) | s8 elementwise add of scalar and vector | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_batch_norm_f16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/nnsupport/#arm_batch_norm_f16) | Apply batch normalization. | [NNSupport](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/nnsupport/) |
| [`arm_batch_norm_f32`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/nnsupport/#arm_batch_norm_f32) | Apply batch normalization. | [NNSupport](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/nnsupport/) |
| [`arm_elementwise_add_broadcast_f16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_elementwise_add_broadcast_f16) | Elementwise add with TensorFlow Lite NHWC broadcasting and an output clamp. | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_elementwise_add_broadcast_f32`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_elementwise_add_broadcast_f32) | Elementwise add with TensorFlow Lite NHWC broadcasting and an output clamp. | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_elementwise_add_f16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_elementwise_add_f16) | Elementwise add with optional output clamp. | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_elementwise_add_f32`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_elementwise_add_f32) | Elementwise add with optional output clamp. | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_elementwise_add_fp16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_elementwise_add_fp16) | Legacy float16 elementwise add with fused clamp, kept only for source compatibility with callers that predate armelementwiseaddf16(). | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_elementwise_add_s16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_elementwise_add_s16) | s16 elementwise add of two vectors | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_elementwise_add_s8`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_elementwise_add_s8) | s8 elementwise add of two vectors | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_elementwise_mul_broadcast_f16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_elementwise_mul_broadcast_f16) | Elementwise multiply with TensorFlow Lite NHWC broadcasting and an output clamp. | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_elementwise_mul_broadcast_f32`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_elementwise_mul_broadcast_f32) | Elementwise multiply with TensorFlow Lite NHWC broadcasting and an output clamp. | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_elementwise_mul_f16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_elementwise_mul_f16) | Elementwise multiply with optional output clamp. | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_elementwise_mul_f32`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_elementwise_mul_f32) | Elementwise multiply with optional output clamp. | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_elementwise_mul_s16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_elementwise_mul_s16) | s16 elementwise multiplication | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_elementwise_mul_s8`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_elementwise_mul_s8) | s8 elementwise multiplication | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_elementwise_prelu_s16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_elementwise_prelu_s16) | Elementwise S16 PReLU activation function. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_elementwise_prelu_s8`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_elementwise_prelu_s8) | Elementwise S8 PReLU activation function. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_elementwise_squared_difference_f16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_elementwise_squared_difference_f16) | Elementwise squared difference of two float16 vectors. | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_elementwise_squared_difference_s16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_elementwise_squared_difference_s16) | s16 elementwise squared difference of two vectors. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_elementwise_squared_difference_s8`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_elementwise_squared_difference_s8) | s8 elementwise squared difference of two vectors. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_elementwise_sub_broadcast_f16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_elementwise_sub_broadcast_f16) | Elementwise subtract with TensorFlow Lite NHWC broadcasting and an output clamp. | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_elementwise_sub_broadcast_f32`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_elementwise_sub_broadcast_f32) | Elementwise subtract with TensorFlow Lite NHWC broadcasting and an output clamp. | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_elementwise_sub_f16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_elementwise_sub_f16) | Elementwise subtract with optional output clamp. | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_elementwise_sub_f32`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_elementwise_sub_f32) | Elementwise subtract with optional output clamp. | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_elementwise_sub_s16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_elementwise_sub_s16) | s16 elementwise subtract of two vectors | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_elementwise_sub_s8`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_elementwise_sub_s8) | s8 elementwise subtract of two vectors | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_maximum_f16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_maximum_f16) | Elementwise maximum with TensorFlow Lite NHWC broadcasting: each dimension of the two inputs must be equal or 1, and outputdims must be their broadcast shape. | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_maximum_f32`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_maximum_f32) | Elementwise maximum with TensorFlow Lite NHWC broadcasting: each dimension of the two inputs must be equal or 1, and outputdims must be their broadcast shape. | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_maximum_s16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_maximum_s16) | s16 elementwise maximum w/ support for broadcasting and scalar inputs. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_maximum_s8`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_maximum_s8) | s8 elementwise maximum w/ support for broadcasting and scalar inputs. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_minimum_f16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_minimum_f16) | Elementwise minimum with TensorFlow Lite NHWC broadcasting: each dimension of the two inputs must be equal or 1, and outputdims must be their broadcast shape. | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_minimum_f32`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_minimum_f32) | Elementwise minimum with TensorFlow Lite NHWC broadcasting: each dimension of the two inputs must be equal or 1, and outputdims must be their broadcast shape. | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_minimum_s16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_minimum_s16) | s16 elementwise minimum w/ support for broadcasting and scalar inputs. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_minimum_s8`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_minimum_s8) | s8 elementwise minimum w/ support for broadcasting and scalar inputs. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_mul_s16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_mul_s16) | s16 elementwise multiplication of two tensors with support for broadcasting. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_mul_s8`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_mul_s8) | s8 elementwise multiplication of two tensors with support for broadcasting. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_mul_scalar_s16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_mul_scalar_s16) | s16 elementwise multiplication of scalar and vector | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_mul_scalar_s8`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_mul_scalar_s8) | s8 elementwise multiplication of scalar and vector | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_nn_abs_f16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_nn_abs_f16) | Elementwise absolute value. | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_nn_abs_f32`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_nn_abs_f32) | Elementwise absolute value. | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_nn_sqrt_f16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_nn_sqrt_f16) | Elementwise square root of a float16 tensor. | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_nn_sqrt_f32`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_nn_sqrt_f32) | Elementwise square root. | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_rsqrt_f16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_rsqrt_f16) | Elementwise reciprocal square root of a float16 tensor, 1 / sqrt(x). | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_rsqrt_f32`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/#arm_rsqrt_f32) | Elementwise reciprocal square root, 1 / sqrt(x). | [Elementwise Functions](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/groupelementwise/) |
| [`arm_rsqrt_s16_per_op`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_rsqrt_s16_per_op) | INT16 reciprocal square root using a per-operator LUT. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_rsqrt_s16_universal`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_rsqrt_s16_universal) | INT16 reciprocal square root using a shared universal LUT. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_select_v2_s16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_select_v2_s16) | SELECTV2 with broadcast for int16 tensors. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_select_v2_s8`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_select_v2_s8) | SELECTV2 with broadcast for int8 tensors. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_sqrt_s16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_sqrt_s16) | s16 elementwise square root using piecewise LUT with linear interpolation | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_sqrt_s16_tablefree`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_sqrt_s16_tablefree) | s16 elementwise square root without a lookup table | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_sqrt_s8`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_sqrt_s8) | s8 elementwise square root | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_squared_difference_s16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_squared_difference_s16) | s16 elementwise squared difference of two tensors with support for broadcasting. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_squared_difference_s8`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_squared_difference_s8) | s8 elementwise squared difference of two tensors with support for broadcasting. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_squared_difference_scalar_s16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_squared_difference_scalar_s16) | s16 elementwise squared difference of scalar and vector. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_squared_difference_scalar_s8`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_squared_difference_scalar_s8) | s8 elementwise squared difference of scalar and vector. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_sub_s16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_sub_s16) | s16 elementwise subtraction of two tensors with support for broadcasting. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_sub_s8`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_sub_s8) | s8 elementwise subtraction of two tensors with support for broadcasting. | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_sub_scalar_s16`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_sub_scalar_s16) | s16 elementwise subtract of scalar and vector (scalar - vector) | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |
| [`arm_sub_scalar_s8`](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/#arm_sub_scalar_s8) | s8 elementwise subtract of scalar and vector (scalar - vector) | [arm_nnfunctions.h](https://ambiqai.github.io/ns-cmsis-nn/reference/api/heliacore/arm_nnfunctions/) |

[All heliaCORE functions in one page](https://ambiqai.github.io/ns-cmsis-nn/reference/api/)
