xref: /aosp_15_r20/external/armnn/src/backends/reference/workloads/Dequantize.cpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1 //
2 // Copyright © 2019 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include "Dequantize.hpp"
7 
8 #include <armnn/utility/IgnoreUnused.hpp>
9 
10 namespace armnn
11 {
12 
Dequantize(Decoder<float> & inputDecoder,Encoder<float> & outputEncoder,const TensorInfo & inputInfo,const TensorInfo & outputInfo)13 void Dequantize(Decoder<float>& inputDecoder,
14                 Encoder<float>& outputEncoder,
15                 const TensorInfo& inputInfo,
16                 const TensorInfo& outputInfo)
17 {
18     IgnoreUnused(outputInfo);
19     ARMNN_ASSERT(inputInfo.GetNumElements() == outputInfo.GetNumElements());
20     for (unsigned int i = 0; i < inputInfo.GetNumElements(); i++)
21     {
22         // inputDecoder.Get() dequantizes the data element from whatever
23         // type is given by inputInfo to fp32 (If MakeDecoder supports that dequantization)
24         // outputEncoder.Set() transforms the data element to whatever type is
25         // given by outputInfo (if MakeEncoder supports that transformation)
26         outputEncoder.Set(inputDecoder.Get());
27         ++outputEncoder;
28         ++inputDecoder;
29     }
30 }
31 
32 } // armnn namespace