blob: c1c98fc0fdeb94f06138872d99f903d501f16ae5 [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;
Matthew Sloyanb63a3112021-09-08 13:05:51 +010028 case armnn::DataLayout::NDHWC:
29 m_DepthIndex = 1;
30 m_HeightIndex = 2;
31 m_WidthIndex = 3;
32 m_ChannelsIndex = 4;
33 break;
Matteo Martincigh21350152018-11-28 16:22:22 +000034 default:
35 throw armnn::InvalidArgumentException("Unknown DataLayout value: " +
36 std::to_string(static_cast<int>(dataLayout)));
37 }
38}
39
Matteo Martincigh21350152018-11-28 16:22:22 +000040bool operator==(const DataLayout& dataLayout, const DataLayoutIndexed& indexed)
41{
42 return dataLayout == indexed.GetDataLayout();
43}
44
Matteo Martincigh21350152018-11-28 16:22:22 +000045bool operator==(const DataLayoutIndexed& indexed, const DataLayout& dataLayout)
46{
47 return indexed.GetDataLayout() == dataLayout;
48}
49
50} // namespace armnnUtils