1 // 2 // Copyright © 2017 Arm Ltd. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 6 #include <armnnUtils/DataLayoutIndexed.hpp> 7 8 using namespace armnn; 9 10 namespace armnnUtils 11 { 12 DataLayoutIndexed(armnn::DataLayout dataLayout)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 operator ==(const DataLayout & dataLayout,const DataLayoutIndexed & indexed)34bool operator==(const DataLayout& dataLayout, const DataLayoutIndexed& indexed) 35 { 36 return dataLayout == indexed.GetDataLayout(); 37 } 38 operator ==(const DataLayoutIndexed & indexed,const DataLayout & dataLayout)39bool operator==(const DataLayoutIndexed& indexed, const DataLayout& dataLayout) 40 { 41 return indexed.GetDataLayout() == dataLayout; 42 } 43 44 } // namespace armnnUtils 45