aboutsummaryrefslogtreecommitdiff
path: root/src/armnnUtils/DataLayoutIndexed.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnnUtils/DataLayoutIndexed.hpp')
-rw-r--r--src/armnnUtils/DataLayoutIndexed.hpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/armnnUtils/DataLayoutIndexed.hpp b/src/armnnUtils/DataLayoutIndexed.hpp
new file mode 100644
index 0000000000..1cf2a09e32
--- /dev/null
+++ b/src/armnnUtils/DataLayoutIndexed.hpp
@@ -0,0 +1,33 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#pragma once
+#include <armnn/Types.hpp>
+
+namespace armnnUtils
+{
+
+// Provides access to the appropriate indexes for Channels, Height and Width based on DataLayout
+class DataLayoutIndexed
+{
+public:
+ DataLayoutIndexed(armnn::DataLayout dataLayout);
+
+ armnn::DataLayout GetDataLayout() const { return m_DataLayout; }
+ unsigned int GetChannelsIndex() const { return m_ChannelsIndex; }
+ unsigned int GetHeightIndex() const { return m_HeightIndex; }
+ unsigned int GetWidthIndex() const { return m_WidthIndex; }
+
+private:
+ armnn::DataLayout m_DataLayout;
+ unsigned int m_ChannelsIndex;
+ unsigned int m_HeightIndex;
+ unsigned int m_WidthIndex;
+};
+
+// Equality methods
+bool operator==(const armnn::DataLayout& dataLayout, const DataLayoutIndexed& indexed);
+bool operator==(const DataLayoutIndexed& indexed, const armnn::DataLayout& dataLayout);
+
+} // namespace armnnUtils