blob: 66309344db9c6efb466525540a640637f1ec18f5 [file] [log] [blame]
telsoa01c577f2c2018-08-31 09:22:23 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
David Beckecb56cd2018-09-05 12:52:57 +01003// SPDX-License-Identifier: MIT
telsoa01c577f2c2018-08-31 09:22:23 +01004//
5
6#pragma once
7
8#include "armnn/Types.hpp"
Aron Virginas-Tarc9cc8042018-11-01 16:15:57 +00009#include "Half.hpp"
telsoa01c577f2c2018-08-31 09:22:23 +010010
11namespace armnn
12{
13
telsoa01c577f2c2018-08-31 09:22:23 +010014template<DataType DT>
15struct ResolveTypeImpl;
16
telsoa01c577f2c2018-08-31 09:22:23 +010017template <>
18struct ResolveTypeImpl<DataType::Float16>
19{
20 using Type = Half;
21};
22
23template<>
24struct ResolveTypeImpl<DataType::Float32>
25{
26 using Type = float;
27};
28
ruoyan0120e984f2018-12-12 18:11:25 +000029template<>
Derek Lambertif90c56d2020-01-10 17:14:08 +000030struct ResolveTypeImpl<DataType::QAsymmU8>
Matteo Martincigh49124022019-01-11 13:25:59 +000031{
32 using Type = uint8_t;
33};
34
35template<>
Ryan OShea9add1202020-02-07 10:06:33 +000036struct ResolveTypeImpl<DataType::QAsymmS8>
37{
38 using Type = int8_t;
39};
40
41template<>
Finn Williamsfd271062019-12-04 14:27:27 +000042struct ResolveTypeImpl<DataType::QSymmS8>
43{
44 using Type = int8_t;
45};
46
47template<>
Derek Lambertif90c56d2020-01-10 17:14:08 +000048struct ResolveTypeImpl<DataType::QSymmS16>
Nattapat Chaimanowongcd5ac232019-03-19 12:26:36 +000049{
50 using Type = int16_t;
51};
52
53template<>
Matteo Martincigh49124022019-01-11 13:25:59 +000054struct ResolveTypeImpl<DataType::Signed32>
55{
56 using Type = int32_t;
57};
58
59template<>
ruoyan0120e984f2018-12-12 18:11:25 +000060struct ResolveTypeImpl<DataType::Boolean>
61{
Nattapat Chaimanowong8c76cc12019-01-23 09:59:14 +000062 using Type = uint8_t;
ruoyan0120e984f2018-12-12 18:11:25 +000063};
64
telsoa01c577f2c2018-08-31 09:22:23 +010065template<DataType DT>
66using ResolveType = typename ResolveTypeImpl<DT>::Type;
67
arovir01616e7752018-10-01 17:08:59 +010068} //namespace armnn