summaryrefslogtreecommitdiff
path: root/runtimes/pure_arm_compute/src/internal/layers/SquaredDifferenceOperation.h
blob: 3782c4e8c949290b4e1e9b0ead8808e06b35bb8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#ifndef __SQUARED_DIFFERENCE_OPERATION_H__
#define __SQUARED_DIFFERENCE_OPERATION_H__

#include <arm_compute/runtime/Tensor.h>
#include <arm_compute/runtime/CL/CLTensor.h>

#include <arm_compute/runtime/CL/functions/CLArithmeticSubtraction.h>
#include <arm_compute/runtime/CL/functions/CLPixelWiseMultiplication.h>
#include <arm_compute/runtime/NEON/functions/NEArithmeticSubtraction.h>
#include <arm_compute/runtime/NEON/functions/NEPixelWiseMultiplication.h>

class SquaredDifferenceOperation : public ::arm_compute::IFunction
{
public:
  void configure(::arm_compute::ITensor *input1, ::arm_compute::ITensor *input2,
                 ::arm_compute::ITensor *output, ::arm_compute::ConvertPolicy ConvertPolicy,
                 float scale, ::arm_compute::RoundingPolicy RoundingPolicy);

public:
  void run(void) override;

private:
  ::arm_compute::ITensor *_input1;
  ::arm_compute::ITensor *_input2;

  ::arm_compute::ITensor *_output;

private:
  ::arm_compute::CLArithmeticSubtraction _cl_sub;
  ::arm_compute::CLPixelWiseMultiplication _cl_mul;

  ::arm_compute::NEArithmeticSubtraction _neon_sub;
  ::arm_compute::NEPixelWiseMultiplication _neon_mul;
};
#endif // __SQUARED_DIFFERENCE_OPERATION_H__