From 48623a0f6f4681ce0d9525b1587b7f96bfd58519 Mon Sep 17 00:00:00 2001 From: Aron Virginas-Tar Date: Tue, 22 Oct 2019 10:00:28 +0100 Subject: IVGCVSW-4018 Move QuantizeHelper.hpp to armnnUtils * Moved QuntizeHelper.hpp to armnnUtils * Reordered parameters for QuantizedVector and added default values for qScale and qOffset to make life easier when using the function for non-quantized types such as Float16 Signed-off-by: Aron Virginas-Tar Change-Id: I28c263dfa425f1316feccb4116839a84f5d568e5 --- .../backendsCommon/test/QuantizeHelper.hpp | 112 --------------------- 1 file changed, 112 deletions(-) delete mode 100644 src/backends/backendsCommon/test/QuantizeHelper.hpp (limited to 'src/backends/backendsCommon/test/QuantizeHelper.hpp') diff --git a/src/backends/backendsCommon/test/QuantizeHelper.hpp b/src/backends/backendsCommon/test/QuantizeHelper.hpp deleted file mode 100644 index b7ca3b34c0..0000000000 --- a/src/backends/backendsCommon/test/QuantizeHelper.hpp +++ /dev/null @@ -1,112 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#pragma once - -#include -#include - -#include - -#include -#include -#include - -#include -#include - -template -struct SelectiveQuantizer -{ - static T Quantize(float value, float scale, int32_t offset) - { - return armnn::Quantize(value, scale, offset); - } - - static float Dequantize(T value, float scale, int32_t offset) - { - return armnn::Dequantize(value, scale, offset); - } -}; - -template -struct SelectiveQuantizer -{ - static T Quantize(float value, float scale, int32_t offset) - { - boost::ignore_unused(scale, offset); - return value; - } - - static float Dequantize(T value, float scale, int32_t offset) - { - boost::ignore_unused(scale, offset); - return value; - } -}; - -template<> -struct SelectiveQuantizer -{ - static armnn::Half Quantize(float value, float scale, int32_t offset) - { - boost::ignore_unused(scale, offset); - return armnn::Half(value); - } - - static float Dequantize(armnn::Half value, float scale, int32_t offset) - { - boost::ignore_unused(scale, offset); - return value; - } -}; - -template -T SelectiveQuantize(float value, float scale, int32_t offset) -{ - return SelectiveQuantizer()>::Quantize(value, scale, offset); -}; - -template -float SelectiveDequantize(T value, float scale, int32_t offset) -{ - return SelectiveQuantizer()>::Dequantize(value, scale, offset); -}; - -template -struct IsFloatingPointIterator -{ - static constexpr bool value=std::is_floating_point::value_type>::value; -}; - -template ::value, int>::type=0 // Makes sure fp iterator is valid. -> -std::vector QuantizedVector(float qScale, int32_t qOffset, FloatIt first, FloatIt last) -{ - std::vector quantized; - quantized.reserve(boost::numeric_cast(std::distance(first, last))); - - for (auto it = first; it != last; ++it) - { - auto f = *it; - T q =SelectiveQuantize(f, qScale, qOffset); - quantized.push_back(q); - } - - return quantized; -} - -template -std::vector QuantizedVector(float qScale, int32_t qOffset, const std::vector& array) -{ - return QuantizedVector(qScale, qOffset, array.begin(), array.end()); -} - -template -std::vector QuantizedVector(float qScale, int32_t qOffset, std::initializer_list array) -{ - return QuantizedVector(qScale, qOffset, array.begin(), array.end()); -} -- cgit v1.2.1