blob: 743f79b373c1e6b239137aa2eca406fb210cff27 [file] [log] [blame]
Nattapat Chaimanowong5a4304a2018-11-28 10:44:37 +00001//
Finn Williamsf24effa2020-07-03 10:12:03 +01002// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
Nattapat Chaimanowong5a4304a2018-11-28 10:44:37 +00003// SPDX-License-Identifier: MIT
4//
Matteo Martincigh59a950c2018-12-13 12:48:25 +00005
Nattapat Chaimanowong5a4304a2018-11-28 10:44:37 +00006#pragma once
7
Matteo Martincigh59a950c2018-12-13 12:48:25 +00008#include "ElementwiseBaseLayer.hpp"
Nattapat Chaimanowong5a4304a2018-11-28 10:44:37 +00009
10namespace armnn
11{
12
Conor Kennedy35052ae2018-12-21 14:38:36 +000013/// This layer represents a maximum operation.
Matteo Martincigh59a950c2018-12-13 12:48:25 +000014class MaximumLayer : public ElementwiseBaseLayer
Nattapat Chaimanowong5a4304a2018-11-28 10:44:37 +000015{
16public:
Conor Kennedy35052ae2018-12-21 14:38:36 +000017 /// Makes a workload for the Maximum type.
18 /// @param [in] graph The graph where this layer can be found.
19 /// @param [in] factory The workload factory which will create the workload.
20 /// @return A pointer to the created workload, or nullptr if not created.
Derek Lamberti94a88d22019-12-10 21:12:59 +000021 virtual std::unique_ptr<IWorkload> CreateWorkload(const IWorkloadFactory& factory) const override;
Nattapat Chaimanowong5a4304a2018-11-28 10:44:37 +000022
Conor Kennedy35052ae2018-12-21 14:38:36 +000023 /// Creates a dynamically-allocated copy of this layer.
24 /// @param [in] graph The graph into which this layer is being cloned.
Nattapat Chaimanowong5a4304a2018-11-28 10:44:37 +000025 MaximumLayer* Clone(Graph& graph) const override;
26
jimfly01e9e7bfd2019-01-24 22:29:33 +000027 void Accept(ILayerVisitor& visitor) const override;
28
Nattapat Chaimanowong5a4304a2018-11-28 10:44:37 +000029protected:
Conor Kennedy35052ae2018-12-21 14:38:36 +000030 /// Constructor to create a MaximumLayer.
31 /// @param [in] name Optional name for the layer.
Nattapat Chaimanowong5a4304a2018-11-28 10:44:37 +000032 MaximumLayer(const char* name);
33
Conor Kennedy35052ae2018-12-21 14:38:36 +000034 /// Default destructor
Nattapat Chaimanowong5a4304a2018-11-28 10:44:37 +000035 ~MaximumLayer() = default;
36};
37
38} // namespace