aboutsummaryrefslogtreecommitdiff
path: root/chapters/data_layout.adoc
diff options
context:
space:
mode:
authorMatthew Haddon <matthew.haddon@arm.com>2021-10-12 11:07:53 +0100
committerMatthew Haddon <matthew.haddon@arm.com>2021-10-12 16:24:45 +0100
commit718ef8ef9054b68e2a30738d4a2b13794276b1bc (patch)
tree2bcfd1526d02fbebf05e47f87bfb7b29a7fffd12 /chapters/data_layout.adoc
parent7c2cdbcf6385729784b0ff26e96bd58604b80ab9 (diff)
downloadspecification-718ef8ef9054b68e2a30738d4a2b13794276b1bc.tar.gz
refactor SLICE error_if checks
* refactored error_if checks to avoid logic overlap * Added check to ensure that size dimensions match output dimension * Defined the rank() function in pseudocode helpers Change-Id: I56bf06252d9149d449c984126e8f2025a07d6034 Signed-off-by: Matthew Haddon <matthew.haddon@arm.com>
Diffstat (limited to 'chapters/data_layout.adoc')
-rw-r--r--chapters/data_layout.adoc9
1 files changed, 5 insertions, 4 deletions
diff --git a/chapters/data_layout.adoc b/chapters/data_layout.adoc
index bc8d853..773e949 100644
--- a/chapters/data_layout.adoc
+++ b/chapters/data_layout.adoc
@@ -201,14 +201,15 @@ No data conversion happens during a slice operation.
[source,c++]
----
+ERROR_IF(rank(input1) != length(start) || rank(input1) != length(size));
+ERROR_IF(rank(input1) != rank(output))
// Sanity check the given coordinates, ensure start and end are
// within tensor bounds
for_each(index in rank(input1)) {
- ERROR_IF(start[index] < 0 ||
- start[index] >= shape1[index]);
- ERROR_IF(start[index] + size[index] < 0 ||
- start[index] + size[index] >= shape1[index]);
+ ERROR_IF(start[index] < 0);
ERROR_IF(size[index] <= 0); //Output must be positive size
+ ERROR_IF(start[index] + size[index] > shape1[index]);
+ ERROR_IF(shape[index] != size[index]);
}
for_each(index in shape) {