From 5237e01c342b9301951a799842e9c48813b66fd4 Mon Sep 17 00:00:00 2001 From: Michalis Spyrou Date: Wed, 17 Jan 2018 09:40:27 +0000 Subject: COMPMID-838 Implement CLPermute Change-Id: I6d97b649f1ebc289c9e6f8949e67740a6b3cbcb2 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/116636 Tested-by: Jenkins Reviewed-by: Pablo Tello Reviewed-by: Anthony Barbier --- arm_compute/core/Window.inl | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'arm_compute/core/Window.inl') diff --git a/arm_compute/core/Window.inl b/arm_compute/core/Window.inl index e46a0ec8f7..1b21820f90 100644 --- a/arm_compute/core/Window.inl +++ b/arm_compute/core/Window.inl @@ -72,6 +72,22 @@ inline Window Window::collapse_if_possible(const Window &full_window, size_t fir return collapsed; } +inline Window Window::collapse(const Window &full_window, size_t first) const +{ + Window collapsed = collapse_if_possible(full_window, first); + // Make sure that the window has collapsed + int end = _dims[first].end(); + int start = 0; + ARM_COMPUTE_UNUSED(start); + for(size_t d = first + 1; d < Coordinates::num_max_dimensions; ++d) + { + start = end * _dims[d].start(); + end *= _dims[d].end(); + } + ARM_COMPUTE_ERROR_ON((collapsed[first].end() != end) || (collapsed[first].start() != start)); + return collapsed; +} + inline void Window::shift(size_t dimension, int shift_value) { ARM_COMPUTE_ERROR_ON(dimension >= Coordinates::num_max_dimensions); -- cgit v1.2.1