ArmNN
 26.07
ElementwiseBinaryOperator.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2022-2025 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
8 #include "TosaOperatorUtils.hpp"
9 
10 using namespace armnn;
11 using namespace tosa;
12 
13 TosaSerializationBasicBlock* ConvertElementwiseBinaryToTosaOperator(const Layer* layer,
14  const LayerType type,
15  const std::vector<const TensorInfo*>& inputs,
16  const std::vector<const TensorInfo*>& outputs,
18  descriptor = nullptr);
19 
20 TosaSerializationBasicBlock* ConvertSquaredDifferenceToTosaOperator(const Layer* layer,
21  const LayerType type,
22  const std::vector<const TensorInfo*>& inputs,
23  const std::vector<const TensorInfo*>& outputs,
24  const ElementwiseBinaryDescriptor* descriptor);
25 
26 /// Function used to add the ADD operator to the operator vector.
27 void ConvertAddToTosaOperator(const std::vector<string>& inputs,
28  const std::vector<string>& outputs,
29  std::vector<TosaSerializationOperator*>& operators);
30 
31 /// Function used to add the MUL operator to the operator vector.
32 void ConvertMulToTosaOperator(const std::vector<string>& inputs,
33  const std::vector<string>& outputs,
34  std::vector<TosaSerializationOperator*>& operators);
35 
36 /// Function used to add the SUB operator to the operator vector.
37 void ConvertSubToTosaOperator(const std::vector<string>& inputs,
38  const std::vector<string>& outputs,
39  std::vector<TosaSerializationOperator*>& operators);
40 
41 /// Function used to calculate correct scales for rescales for Int8 input to ADD, MUL and SUB operators.
42 void CalculateRescaleScales(float& input0Scale,
43  float& input1Scale,
44  float& outputScale,
45  const BinaryOperation& operation);
TosaSerializationBasicBlock * ConvertSquaredDifferenceToTosaOperator(const Layer *layer, const LayerType type, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const ElementwiseBinaryDescriptor *descriptor)
void CalculateRescaleScales(float &input0Scale, float &input1Scale, float &outputScale, const BinaryOperation &operation)
Function used to calculate correct scales for rescales for Int8 input to ADD, MUL and SUB operators.
TosaSerializationBasicBlock * ConvertElementwiseBinaryToTosaOperator(const Layer *layer, const LayerType type, const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const ElementwiseBinaryDescriptor *descriptor=nullptr)
void ConvertAddToTosaOperator(const std::vector< string > &inputs, const std::vector< string > &outputs, std::vector< TosaSerializationOperator * > &operators)
Function used to add the ADD operator to the operator vector.
void ConvertMulToTosaOperator(const std::vector< string > &inputs, const std::vector< string > &outputs, std::vector< TosaSerializationOperator * > &operators)
Function used to add the MUL operator to the operator vector.
void ConvertSubToTosaOperator(const std::vector< string > &inputs, const std::vector< string > &outputs, std::vector< TosaSerializationOperator * > &operators)
Function used to add the SUB operator to the operator vector.
Copyright (c) 2021 ARM Limited and Contributors.
LayerType
When adding a new layer, adapt also the LastLayer enum value in the enum class LayerType below.
Definition: Types.hpp:494
BinaryOperation
Definition: Types.hpp:139
A ElementwiseBinaryDescriptor for the ElementwiseBinaryLayer.