aboutsummaryrefslogtreecommitdiff
path: root/arm_compute/core/Window.inl
diff options
context:
space:
mode:
authorAnthony Barbier <anthony.barbier@arm.com>2018-07-06 15:11:36 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:54:10 +0000
commit671a11e1c8e1e4db7bcae9ce97b0c97ebcb97464 (patch)
tree6bdeaf330a81e3f4f35c34817fe594d6fbc81897 /arm_compute/core/Window.inl
parent42a31723ebe79895c9bb2297a9c2ef22c01a6f26 (diff)
downloadComputeLibrary-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.inl20
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;
+}
}