ba3d0fca5c612082859c026a2d5893240a04937b
[platform/upstream/armnn.git] / src / armnn / ResolveType.hpp
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5
6 #pragma once
7
8 #include "armnn/Types.hpp"
9 #include "Half.hpp"
10
11 namespace armnn
12 {
13
14 template<DataType DT>
15 struct ResolveTypeImpl;
16
17 template <>
18 struct ResolveTypeImpl<DataType::Float16>
19 {
20     using Type = Half;
21 };
22
23 template<>
24 struct ResolveTypeImpl<DataType::Float32>
25 {
26     using Type = float;
27 };
28
29 template<>
30 struct ResolveTypeImpl<DataType::QuantisedAsymm8>
31 {
32     using Type = uint8_t;
33 };
34
35 template<>
36 struct ResolveTypeImpl<DataType::QSymmS8>
37 {
38     using Type = int8_t;
39 };
40
41 template<>
42 struct ResolveTypeImpl<DataType::QuantisedSymm16>
43 {
44     using Type = int16_t;
45 };
46
47 template<>
48 struct ResolveTypeImpl<DataType::Signed32>
49 {
50     using Type = int32_t;
51 };
52
53 template<>
54 struct ResolveTypeImpl<DataType::Boolean>
55 {
56     using Type = uint8_t;
57 };
58
59 template<DataType DT>
60 using ResolveType = typename ResolveTypeImpl<DT>::Type;
61
62 } //namespace armnn