aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/LayersFwd.hpp
diff options
context:
space:
mode:
authortelsoa01 <telmo.soares@arm.com>2018-03-09 14:13:49 +0000
committertelsoa01 <telmo.soares@arm.com>2018-03-09 14:13:49 +0000
commit4fcda0101ec3d110c1d6d7bee5c83416b645528a (patch)
treec9a70aeb2887006160c1b3d265c27efadb7bdbae /src/armnn/LayersFwd.hpp
downloadarmnn-4fcda0101ec3d110c1d6d7bee5c83416b645528a.tar.gz
Release 18.02
Change-Id: Id3c11dc5ee94ef664374a988fcc6901e9a232fa6
Diffstat (limited to 'src/armnn/LayersFwd.hpp')
-rw-r--r--src/armnn/LayersFwd.hpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/armnn/LayersFwd.hpp b/src/armnn/LayersFwd.hpp
new file mode 100644
index 0000000000..a77c723751
--- /dev/null
+++ b/src/armnn/LayersFwd.hpp
@@ -0,0 +1,59 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// See LICENSE file in the project root for full license information.
+//
+#pragma once
+
+#include "InternalTypes.hpp"
+
+namespace armnn
+{
+
+template <LayerType Type>
+struct LayerTypeOfImpl;
+
+template <LayerType Type>
+using LayerTypeOf = typename LayerTypeOfImpl<Type>::Type;
+
+template <typename T>
+constexpr LayerType LayerEnumOf(const T* = nullptr);
+
+#define DECLARE_LAYER_IMPL(_, LayerName) \
+ class LayerName##Layer; \
+ template <> \
+ struct LayerTypeOfImpl<LayerType::_##LayerName> \
+ { \
+ using Type = LayerName##Layer; \
+ }; \
+ template <> \
+ constexpr LayerType LayerEnumOf(const LayerName##Layer*) \
+ { \
+ return LayerType::_##LayerName; \
+ }
+
+#define DECLARE_LAYER(LayerName) DECLARE_LAYER_IMPL(, LayerName)
+
+DECLARE_LAYER(Activation)
+DECLARE_LAYER(Addition)
+DECLARE_LAYER(BatchNormalization)
+DECLARE_LAYER(Constant)
+DECLARE_LAYER(Convolution2d)
+DECLARE_LAYER(DepthwiseConvolution2d)
+DECLARE_LAYER(FakeQuantization)
+DECLARE_LAYER(Floor)
+DECLARE_LAYER(FullyConnected)
+DECLARE_LAYER(Input)
+DECLARE_LAYER(L2Normalization)
+DECLARE_LAYER(MemCopy)
+DECLARE_LAYER(Merger)
+DECLARE_LAYER(Multiplication)
+DECLARE_LAYER(Normalization)
+DECLARE_LAYER(Output)
+DECLARE_LAYER(Permute)
+DECLARE_LAYER(Pooling2d)
+DECLARE_LAYER(Reshape)
+DECLARE_LAYER(ResizeBilinear)
+DECLARE_LAYER(Softmax)
+DECLARE_LAYER(Splitter)
+
+}