diff options
Diffstat (limited to 'ConversionUtils.hpp')
-rw-r--r-- | ConversionUtils.hpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/ConversionUtils.hpp b/ConversionUtils.hpp index d19131ce..15381338 100644 --- a/ConversionUtils.hpp +++ b/ConversionUtils.hpp @@ -1052,6 +1052,43 @@ bool GetOptionalConvolutionDilationParams(const HalOperation& operation, } template<typename HalPolicy, + typename HalOperation = typename HalPolicy::Operation, + typename HalModel = typename HalPolicy::Model> +bool GetOptionalBool(const HalOperation& operation, + uint32_t inputIndex, + const HalModel& model, + const ConversionData& data) +{ + using HalOperand = typename HalPolicy::Operand; + + const HalOperand* operand = GetInputOperand<HalPolicy>(operation, inputIndex, model); + if (!operand) + { + return false; + } + + if (!IsBool(*operand)) + { + return false; + } + + const void* valueAddress = GetOperandValueReadOnlyAddress<HalPolicy>(*operand, model, data); + if (!valueAddress) + { + return false; + } + + if (*(static_cast<const bool*>(valueAddress))) + { + return true; + } + else + { + return false; + } +} + +template<typename HalPolicy, typename HalOperand = typename HalPolicy::Operand, typename HalModel = typename HalPolicy::Model> bool GetTensorInt32Values(const HalOperand& operand, |