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