1 // 2 // Copyright © 2017-2021,2023 Arm Ltd and Contributors. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 6 #pragma once 7 8 #include "../ConversionUtils.hpp" 9 10 #include <HalInterfaces.h> 11 12 namespace V1_1 = ::android::hardware::neuralnetworks::V1_1; 13 14 namespace armnn_driver 15 { 16 namespace hal_1_1 17 { 18 19 class HalPolicy 20 { 21 public: 22 using Model = V1_1::Model; 23 using Operand = V1_0::Operand; 24 using OperandLifeTime = V1_0::OperandLifeTime; 25 using OperandType = V1_0::OperandType; 26 using Operation = V1_1::Operation; 27 using OperationType = V1_1::OperationType; 28 using getSupportedOperations_cb = V1_1::IDevice::getSupportedOperations_1_1_cb; 29 using ErrorStatus = V1_0::ErrorStatus; 30 31 static bool ConvertOperation(const Operation& operation, const Model& model, ConversionData& data); 32 33 private: 34 static bool ConvertElementwiseBinary(const Operation& operation, 35 const Model& model, 36 ConversionData& data, 37 armnn::BinaryOperation binaryOperation); 38 39 static bool ConvertMean(const Operation& operation, const Model& model, ConversionData& data); 40 static bool ConvertPad(const Operation& operation, const Model& model, ConversionData& data); 41 static bool ConvertSpaceToBatchNd(const Operation& operation, const Model& model, ConversionData& data); 42 static bool ConvertSqueeze(const Operation& operation, const Model& model, ConversionData& data); 43 static bool ConvertStridedSlice(const Operation& operation, const Model& model, ConversionData& data); 44 static bool ConvertTranspose(const Operation& operation, const Model& model, ConversionData& data); 45 static bool ConvertBatchToSpaceNd(const Operation& operation, const Model& model, ConversionData& data); 46 }; 47 48 } // namespace hal_1_1 49 } // namespace armnn_driver 50