ArmNN
 25.02
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DataTypeUtils.hpp File Reference
#include <ResolveType.hpp>
#include <reference/workloads/Encoders.hpp>
#include <vector>
Include dependency graph for DataTypeUtils.hpp:

Go to the source code of this file.

Functions

template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
std::vector< T > ConvertToDataType (const std::vector< float > &input, const armnn::TensorInfo &inputTensorInfo)
 
template<typename T >
ConvertToDataType (const float &value, const armnn::TensorInfo &tensorInfo)
 

Function Documentation

◆ ConvertToDataType() [1/2]

T ConvertToDataType ( const float &  value,
const armnn::TensorInfo tensorInfo 
)

Definition at line 52 of file DataTypeUtils.hpp.

54 {
55  std::vector<T> output(1);
56 
57  if(sizeof(T) > 4)
58  {
59  std::unique_ptr<armnn::Encoder<double>> pEncoder = armnn::MakeEncoder<double>(tensorInfo, output.data());
60  armnn::Encoder<double>& rEncoder = *pEncoder;
61  rEncoder.Set(value);
62  }
63  else
64  {
65  std::unique_ptr<armnn::Encoder<float>> pEncoder = armnn::MakeEncoder<float>(tensorInfo, output.data());
66  armnn::Encoder<float>& rEncoder = *pEncoder;
67  rEncoder.Set(value);
68  }
69 
70  return output[0];
71 }
virtual void Set(IType right)=0

References Encoder< IType >::Set().

◆ ConvertToDataType() [2/2]

std::vector<T> ConvertToDataType ( const std::vector< float > &  input,
const armnn::TensorInfo inputTensorInfo 
)

Definition at line 17 of file DataTypeUtils.hpp.

19 {
20  std::vector<T> output(input.size());
21  auto outputTensorInfo = inputTensorInfo;
22  outputTensorInfo.SetDataType(ArmnnType);
23 
24  if(sizeof(T) > 4)
25  {
26  std::unique_ptr<armnn::Encoder<double>> pOutputEncoder = armnn::MakeEncoder<double>(outputTensorInfo,
27  output.data());
28  armnn::Encoder<double>& rOutputEncoder = *pOutputEncoder;
29  for (auto it = input.begin(); it != input.end(); ++it)
30  {
31  rOutputEncoder.Set(*it);
32  ++rOutputEncoder;
33  }
34  }
35  else
36  {
37  std::unique_ptr<armnn::Encoder<float>> pOutputEncoder = armnn::MakeEncoder<float>(outputTensorInfo,
38  output.data());
39  armnn::Encoder<float>& rOutputEncoder = *pOutputEncoder;
40  for (auto it = input.begin(); it != input.end(); ++it)
41  {
42  rOutputEncoder.Set(*it);
43  ++rOutputEncoder;
44  }
45  }
46 
47  return output;
48 }
void SetDataType(DataType type)
Definition: Tensor.hpp:201

References Encoder< IType >::Set(), and TensorInfo::SetDataType().