Nattapat Chaimanowong | 5a4304a | 2018-11-28 10:44:37 +0000 | [diff] [blame] | 1 | // |
Finn Williams | f24effa | 2020-07-03 10:12:03 +0100 | [diff] [blame^] | 2 | // Copyright © 2017 Arm Ltd and Contributors. All rights reserved. |
Nattapat Chaimanowong | 5a4304a | 2018-11-28 10:44:37 +0000 | [diff] [blame] | 3 | // SPDX-License-Identifier: MIT |
| 4 | // |
Matteo Martincigh | 59a950c | 2018-12-13 12:48:25 +0000 | [diff] [blame] | 5 | |
Nattapat Chaimanowong | 5a4304a | 2018-11-28 10:44:37 +0000 | [diff] [blame] | 6 | #pragma once |
| 7 | |
Matteo Martincigh | 59a950c | 2018-12-13 12:48:25 +0000 | [diff] [blame] | 8 | #include "ElementwiseBaseLayer.hpp" |
Nattapat Chaimanowong | 5a4304a | 2018-11-28 10:44:37 +0000 | [diff] [blame] | 9 | |
| 10 | namespace armnn |
| 11 | { |
| 12 | |
Conor Kennedy | 35052ae | 2018-12-21 14:38:36 +0000 | [diff] [blame] | 13 | /// This layer represents a maximum operation. |
Matteo Martincigh | 59a950c | 2018-12-13 12:48:25 +0000 | [diff] [blame] | 14 | class MaximumLayer : public ElementwiseBaseLayer |
Nattapat Chaimanowong | 5a4304a | 2018-11-28 10:44:37 +0000 | [diff] [blame] | 15 | { |
| 16 | public: |
Conor Kennedy | 35052ae | 2018-12-21 14:38:36 +0000 | [diff] [blame] | 17 | /// 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 Lamberti | 94a88d2 | 2019-12-10 21:12:59 +0000 | [diff] [blame] | 21 | virtual std::unique_ptr<IWorkload> CreateWorkload(const IWorkloadFactory& factory) const override; |
Nattapat Chaimanowong | 5a4304a | 2018-11-28 10:44:37 +0000 | [diff] [blame] | 22 | |
Conor Kennedy | 35052ae | 2018-12-21 14:38:36 +0000 | [diff] [blame] | 23 | /// Creates a dynamically-allocated copy of this layer. |
| 24 | /// @param [in] graph The graph into which this layer is being cloned. |
Nattapat Chaimanowong | 5a4304a | 2018-11-28 10:44:37 +0000 | [diff] [blame] | 25 | MaximumLayer* Clone(Graph& graph) const override; |
| 26 | |
jimfly01 | e9e7bfd | 2019-01-24 22:29:33 +0000 | [diff] [blame] | 27 | void Accept(ILayerVisitor& visitor) const override; |
| 28 | |
Nattapat Chaimanowong | 5a4304a | 2018-11-28 10:44:37 +0000 | [diff] [blame] | 29 | protected: |
Conor Kennedy | 35052ae | 2018-12-21 14:38:36 +0000 | [diff] [blame] | 30 | /// Constructor to create a MaximumLayer. |
| 31 | /// @param [in] name Optional name for the layer. |
Nattapat Chaimanowong | 5a4304a | 2018-11-28 10:44:37 +0000 | [diff] [blame] | 32 | MaximumLayer(const char* name); |
| 33 | |
Conor Kennedy | 35052ae | 2018-12-21 14:38:36 +0000 | [diff] [blame] | 34 | /// Default destructor |
Nattapat Chaimanowong | 5a4304a | 2018-11-28 10:44:37 +0000 | [diff] [blame] | 35 | ~MaximumLayer() = default; |
| 36 | }; |
| 37 | |
| 38 | } // namespace |