aboutsummaryrefslogtreecommitdiff
path: root/src/armnnUtils/DataLayoutIndexed.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnnUtils/DataLayoutIndexed.cpp')
-rw-r--r--src/armnnUtils/DataLayoutIndexed.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/armnnUtils/DataLayoutIndexed.cpp b/src/armnnUtils/DataLayoutIndexed.cpp
new file mode 100644
index 0000000000..db27de4bdd
--- /dev/null
+++ b/src/armnnUtils/DataLayoutIndexed.cpp
@@ -0,0 +1,46 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include "DataLayoutIndexed.hpp"
+
+using namespace armnn;
+
+namespace armnnUtils
+{
+
+DataLayoutIndexed::DataLayoutIndexed(armnn::DataLayout dataLayout)
+ : m_DataLayout(dataLayout)
+{
+ switch (dataLayout)
+ {
+ case armnn::DataLayout::NHWC:
+ m_ChannelsIndex = 3;
+ m_HeightIndex = 1;
+ m_WidthIndex = 2;
+ break;
+ case armnn::DataLayout::NCHW:
+ m_ChannelsIndex = 1;
+ m_HeightIndex = 2;
+ m_WidthIndex = 3;
+ break;
+ default:
+ throw armnn::InvalidArgumentException("Unknown DataLayout value: " +
+ std::to_string(static_cast<int>(dataLayout)));
+ }
+}
+
+// Definition in include/armnn/Types.hpp
+bool operator==(const DataLayout& dataLayout, const DataLayoutIndexed& indexed)
+{
+ return dataLayout == indexed.GetDataLayout();
+}
+
+// Definition in include/armnn/Types.hpp
+bool operator==(const DataLayoutIndexed& indexed, const DataLayout& dataLayout)
+{
+ return indexed.GetDataLayout() == dataLayout;
+}
+
+} // namespace armnnUtils