| // |
| // This confidential and proprietary software may be used only as |
| // authorised by a licensing agreement from ARM Limited |
| // (C) COPYRIGHT 2020 ARM Limited |
| // ALL RIGHTS RESERVED |
| // The entire notice above must be reproduced on all authorised |
| // copies and copies may only be made to the extent permitted |
| // by a licensing agreement from ARM Limited. |
| |
| === Comparison Operators |
| |
| ==== EQUAL |
| |
| Elementwise comparison operation |
| |
| *Arguments:* |
| |
| |=== |
| |Argument|Type|Name|Shape|Description |
| |
| |Input|in_t*|input1|shape1|Input tensor from 1 to 4 dims |
| |Input|in_t*|input2|shape2|Input tensor with the same rank as Input 0 |
| |Output|out_t*|output|shape|Output tensor of same type, as the input tensors, with broadcast shape if necessary |
| |=== |
| |
| *Operation Function:* |
| |
| [source,c] |
| ---- |
| for_each (index in shape) { |
| index1 = apply_broadcast(shape, shape1, index) |
| index2 = apply_broadcast(shape, shape2, index) |
| int32_t value1 = tensor_read<in_t>(input1, shape1, index1) |
| int32_t value2 = tensor_read<in_t>(input2, shape2, index2) |
| bool_t acc = (value1 == value2) ? True : False |
| tensor_write<out_t>(output, shape, index, acc) |
| } |
| ---- |
| |
| *Supported Data Types:* |
| |
| |=== |
| |Profile|Mode|in_t|out_t |
| |
| |Any|signed 32|int32|bool |
| |MI, MT|float|float|bool |
| |=== |
| |
| ==== GREATER |
| |
| Elementwise greater than comparison operation |
| |
| *Arguments:* |
| |
| |=== |
| |Argument|Type|Name|Shape|Description |
| |Input|in_t*|input1|shape1|Input tensor from 1 to 4 dims |
| |Input|in_t*|input2|shape2|Input tensor with the same rank as Input 0 |
| |Output|out_t*|output|shape|Output tensor of same type, as the input tensors, with broadcast shape if necessary |
| |=== |
| |
| *Operation Function:* |
| |
| [source,c] |
| ---- |
| for_each (index in shape) { |
| index1 = apply_broadcast(shape, shape1, index) |
| index2 = apply_broadcast(shape, shape2, index) |
| int32_t value1 = tensor_read<in_t>(input1, shape1, index1) |
| int32_t value2 = tensor_read<in_t>(input2, shape2, index2) |
| bool_t acc = (value1 > value2) ? True : False |
| tensor_write<out_t>(output, shape, index, acc) |
| } |
| ---- |
| |
| *Supported Data Types:* |
| |=== |
| |Profile|Mode|in_t|out_t |
| |
| |Any|signed 32|int32|bool |
| |MI, MT|float|float|bool |
| |=== |
| |
| ==== GREATER_EQUAL |
| |
| Elementwise comparison operation |
| |
| *Arguments:* |
| |
| |=== |
| |Argument|Type|Name|Shape|Description |
| |
| |Input|in_t*|input1|shape1|Input tensor from 1 to 4 dims |
| |Input|in_t*|input2|shape2|Input tensor with the same rank as Input 0 |
| |Output|out_t*|output|shape|Output tensor of same type, as the input tensors, with broadcast shape if necessary |
| |=== |
| |
| *Operation Function:* |
| |
| [source,c] |
| ---- |
| for_each (index in shape) { |
| index1 = apply_broadcast(shape, shape1, index) |
| index2 = apply_broadcast(shape, shape2, index) |
| int32_t value1 = tensor_read<in_t>(input1, shape1, index1) |
| int32_t value2 = tensor_read<in_t>(input2, shape2, index2) |
| bool_t acc = (value1 >= value2) ? True : False |
| tensor_write<out_t>(output, shape, index, acc) |
| } |
| ---- |
| |
| *Supported Data Types:* |
| |
| |=== |
| |Profile|Mode|in_t|out_t |
| |
| |Any|signed 32|int32|bool |
| |MI, MT|float|float|bool |
| |=== |