blob: 02f1e816aca3c634b121a270ffbd6499ac99c156 [file] [log] [blame]
Matteo Martincigh21350152018-11-28 16:22:22 +00001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#include "DataLayoutIndexed.hpp"
Matteo Martincigh21350152018-11-28 16:22:22 +00007using namespace armnn;
8
9namespace armnnUtils
10{
11
12DataLayoutIndexed::DataLayoutIndexed(armnn::DataLayout dataLayout)
13 : m_DataLayout(dataLayout)
14{
15 switch (dataLayout)
16 {
17 case armnn::DataLayout::NHWC:
18 m_ChannelsIndex = 3;
19 m_HeightIndex = 1;
20 m_WidthIndex = 2;
21 break;
22 case armnn::DataLayout::NCHW:
23 m_ChannelsIndex = 1;
24 m_HeightIndex = 2;
25 m_WidthIndex = 3;
26 break;
27 default:
28 throw armnn::InvalidArgumentException("Unknown DataLayout value: " +
29 std::to_string(static_cast<int>(dataLayout)));
30 }
31}
32
Matteo Martincigh21350152018-11-28 16:22:22 +000033bool operator==(const DataLayout& dataLayout, const DataLayoutIndexed& indexed)
34{
35 return dataLayout == indexed.GetDataLayout();
36}
37
Matteo Martincigh21350152018-11-28 16:22:22 +000038bool operator==(const DataLayoutIndexed& indexed, const DataLayout& dataLayout)
39{
40 return indexed.GetDataLayout() == dataLayout;
41}
42
43} // namespace armnnUtils