diff options
author | Anthony Barbier <anthony.barbier@arm.com> | 2018-07-06 15:11:36 +0100 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:54:10 +0000 |
commit | 671a11e1c8e1e4db7bcae9ce97b0c97ebcb97464 (patch) | |
tree | 6bdeaf330a81e3f4f35c34817fe594d6fbc81897 /arm_compute/core/Window.inl | |
parent | 42a31723ebe79895c9bb2297a9c2ef22c01a6f26 (diff) | |
download | ComputeLibrary-671a11e1c8e1e4db7bcae9ce97b0c97ebcb97464.tar.gz |
COMPMID-1379: Created WindowIterator and TensorAccessor
- WindowIterator: used to iterate over arbitrary positions of a window. (More flexible than execute_window_loop which only can iterate over entire dimensions)
- TensorAccessor: RSH's code uses pointers to specialised types and strides in element sizes, this helps interfacing with their code.
Change-Id: I8ded8758d345668804873409f949b8cec694d289
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/139082
Tested-by: Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Diffstat (limited to 'arm_compute/core/Window.inl')
-rw-r--r-- | arm_compute/core/Window.inl | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/arm_compute/core/Window.inl b/arm_compute/core/Window.inl index 8401227eee..c6fc8848aa 100644 --- a/arm_compute/core/Window.inl +++ b/arm_compute/core/Window.inl @@ -247,4 +247,24 @@ inline void Window::use_tensor_dimensions(const TensorShape &shape, size_t first set(n, Window::Dimension(0, std::max(shape[n], static_cast<size_t>(1)))); } } + +inline TensorShape Window::shape() const +{ + TensorShape shape; + for(size_t d = 0; d < TensorShape::num_max_dimensions; ++d) + { + shape.set(d, (_dims[d].end() - _dims[d].start()) / _dims[d].step()); + } + return shape; +} + +inline size_t Window::num_iterations_total() const +{ + size_t total = 1; + for(size_t d = 0; d < Coordinates::num_max_dimensions; ++d) + { + total *= num_iterations(d); + } + return total; +} } |