blob: 8259ba5ac730abe249c8b4c92d8eeee2821cd666 [file] [log] [blame]
David Beck591cdb72018-09-11 16:37:14 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
Sadik Armagan2e6dc3a2019-04-03 17:48:18 +01008#include "BaseIterator.hpp"
David Beck591cdb72018-09-11 16:37:14 +01009#include <armnn/Tensor.hpp>
10
11namespace armnn
12{
13
Derek Lambertif30f7d32019-04-09 10:25:02 +010014template <typename Functor>
josh minor4a3c6102020-01-06 16:40:46 -060015struct ElementwiseBinaryFunction
David Beck591cdb72018-09-11 16:37:14 +010016{
Derek Lambertif30f7d32019-04-09 10:25:02 +010017 using OutType = typename Functor::result_type;
18 using InType = typename Functor::first_argument_type;
19
josh minor4a3c6102020-01-06 16:40:46 -060020 ElementwiseBinaryFunction(const TensorShape& inShape0,
21 const TensorShape& inShape1,
22 const TensorShape& outShape,
23 Decoder<InType>& inData0,
24 Decoder<InType>& inData1,
25 Encoder<OutType>& outData);
26};
27
28template <typename Functor>
29struct ElementwiseUnaryFunction
30{
31 using OutType = typename Functor::result_type;
32 using InType = typename Functor::argument_type;
33
34 ElementwiseUnaryFunction(const TensorShape& inShape,
35 const TensorShape& outShape,
36 Decoder<InType>& inData,
37 Encoder<OutType>& outData);
David Beck591cdb72018-09-11 16:37:14 +010038};
39
40} //namespace armnn