blob: 18c005a7c3a57e0f2109d1eaca493490e4462655 [file] [log] [blame]
Laurent Carlier749294b2020-06-01 09:03:17 +01001//
Matteo Martincigh21350152018-11-28 16:22:22 +00002// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
Matteo Martincighe011d202019-11-28 11:35:47 +00006#include <armnnUtils/DataLayoutIndexed.hpp>
7
Matteo Martincigh21350152018-11-28 16:22:22 +00008using namespace armnn;
9
10namespace armnnUtils
11{
12
13DataLayoutIndexed::DataLayoutIndexed(armnn::DataLayout dataLayout)
14 : m_DataLayout(dataLayout)
15{
16 switch (dataLayout)
17 {
18 case armnn::DataLayout::NHWC:
19 m_ChannelsIndex = 3;
20 m_HeightIndex = 1;
21 m_WidthIndex = 2;
22 break;
23 case armnn::DataLayout::NCHW:
24 m_ChannelsIndex = 1;
25 m_HeightIndex = 2;
26 m_WidthIndex = 3;
27 break;
28 default:
29 throw armnn::InvalidArgumentException("Unknown DataLayout value: " +
30 std::to_string(static_cast<int>(dataLayout)));
31 }
32}
33
Matteo Martincigh21350152018-11-28 16:22:22 +000034bool operator==(const DataLayout& dataLayout, const DataLayoutIndexed& indexed)
35{
36 return dataLayout == indexed.GetDataLayout();
37}
38
Matteo Martincigh21350152018-11-28 16:22:22 +000039bool operator==(const DataLayoutIndexed& indexed, const DataLayout& dataLayout)
40{
41 return indexed.GetDataLayout() == dataLayout;
42}
43
44} // namespace armnnUtils