Update ACL pin to b309fc249e4383b4d40ae03e377c3cbad3f9f5f7
[platform/upstream/armnn.git] / src / armnn / InternalTypes.hpp
1 //
2 // Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 #pragma once
6
7 #include <armnn/Types.hpp>
8
9 #include <array>
10
11
12 /// This list uses X macro technique.
13 /// See https://en.wikipedia.org/wiki/X_Macro for more info
14 #define LIST_OF_LAYER_TYPE \
15     X(Activation) \
16     X(Addition) \
17     X(ArgMinMax) \
18     X(BatchNormalization) \
19     X(BatchToSpaceNd) \
20     X(Comparison) \
21     X(Concat) \
22     X(Constant) \
23     X(ConvertBf16ToFp32) \
24     X(ConvertFp16ToFp32) \
25     X(ConvertFp32ToBf16) \
26     X(ConvertFp32ToFp16) \
27     X(Convolution2d) \
28     X(Debug) \
29     X(DepthToSpace) \
30     X(DepthwiseConvolution2d) \
31     X(Dequantize) \
32     X(DetectionPostProcess) \
33     X(Division) \
34     X(ElementwiseUnary) \
35     X(FakeQuantization) \
36     X(Fill) \
37     X(Floor) \
38     X(FullyConnected) \
39     X(Gather) \
40     X(Input) \
41     X(InstanceNormalization) \
42     X(L2Normalization) \
43     X(LogicalBinary) \
44     X(LogSoftmax) \
45     X(Lstm) \
46     X(QLstm) \
47     X(Map) \
48     X(Maximum) \
49     X(Mean) \
50     X(MemCopy) \
51     X(MemImport) \
52     X(Merge) \
53     X(Minimum) \
54     X(Multiplication) \
55     X(Normalization) \
56     X(Output) \
57     X(Pad) \
58     X(Permute) \
59     X(Pooling2d) \
60     X(PreCompiled) \
61     X(Prelu) \
62     X(Quantize) \
63     X(QuantizedLstm) \
64     X(Reshape) \
65     X(Rank) \
66     X(Resize) \
67     X(Slice) \
68     X(Softmax) \
69     X(SpaceToBatchNd) \
70     X(SpaceToDepth) \
71     X(Splitter) \
72     X(Stack) \
73     X(StandIn) \
74     X(StridedSlice) \
75     X(Subtraction) \
76     X(Switch) \
77     X(Transpose) \
78     X(TransposeConvolution2d) \
79     X(Unmap)
80
81 /// When adding a new layer, adapt also the LastLayer enum value in the
82 /// enum class LayerType below
83 namespace armnn
84 {
85
86 enum class LayerType
87 {
88 #define X(name) name,
89   LIST_OF_LAYER_TYPE
90 #undef X
91   FirstLayer = Activation,
92   LastLayer = Unmap
93 };
94
95 const char* GetLayerTypeAsCString(LayerType type);
96
97 using Coordinates = std::array<unsigned int, MaxNumOfTensorDimensions>;
98 using Dimensions  = std::array<unsigned int, MaxNumOfTensorDimensions>;
99
100 }