From 3309a5362a13f840e84a2f67b9ba7141aae58cc4 Mon Sep 17 00:00:00 2001 From: Eric Kunze Date: Thu, 1 Oct 2020 18:50:46 -0700 Subject: TOSA spec 0.20.0, initial public version Change-Id: I7c528ebf7e78759ada4bb951b2471c367d3f4525 --- chapters/comparison.adoc | 119 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 chapters/comparison.adoc (limited to 'chapters/comparison.adoc') diff --git a/chapters/comparison.adoc b/chapters/comparison.adoc new file mode 100644 index 0000000..3e69900 --- /dev/null +++ b/chapters/comparison.adoc @@ -0,0 +1,119 @@ +// +// 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(input1, shape1, index1) + int32_t value2 = tensor_read(input2, shape2, index2) + bool_t acc = (value1 == value2) ? True : False + tensor_write(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(input1, shape1, index1) + int32_t value2 = tensor_read(input2, shape2, index2) + bool_t acc = (value1 > value2) ? True : False + tensor_write(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(input1, shape1, index1) + int32_t value2 = tensor_read(input2, shape2, index2) + bool_t acc = (value1 >= value2) ? True : False + tensor_write(output, shape, index, acc) +} +---- + +*Supported Data Types:* + +|=== +|Profile|Mode|in_t|out_t + +|Any|signed 32|int32|bool +|MI, MT|float|float|bool +|=== -- cgit v1.2.1