ONE - On-device Neural Engine
Loading...
Searching...
No Matches
PALAdd.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2023 Samsung Electronics Co., Ltd. All Rights Reserved
3 * Copyright 2017 The TensorFlow Authors. All Rights Reserved.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#ifndef LUCI_INTERPRETER_PAL_ADD_H
19#define LUCI_INTERPRETER_PAL_ADD_H
20
21#include "PALAddCommon.h"
22#include "arm_nnfunctions.h"
23
25{
26template <>
27inline void Add<int8_t>(const ArithmeticParams &params, const int flat_size,
28 const int8_t *input1_data, const int8_t *input2_data, int8_t *output_data)
29{
30 auto status = arm_elementwise_add_s8(
31 input1_data, input2_data, params.input1_offset, params.input1_multiplier, params.input1_shift,
32 params.input2_offset, params.input2_multiplier, params.input2_shift, params.left_shift,
33 output_data, params.output_offset, params.output_multiplier, params.output_shift,
34 params.quantized_activation_min, params.quantized_activation_max, flat_size);
35 assert(status == ARM_CMSIS_NN_SUCCESS);
36}
37
38template <>
39inline void Add<int16_t>(const ArithmeticParams &params, const int flat_size,
40 const int16_t *input1_data, const int16_t *input2_data,
41 int16_t *output_data)
42{
43 auto status = arm_elementwise_add_s16(
44 input1_data, input2_data, params.input1_offset, params.input1_multiplier, params.input1_shift,
45 params.input2_offset, params.input2_multiplier, params.input2_shift, params.left_shift,
46 output_data, params.output_offset, params.output_multiplier, params.output_shift,
47 params.quantized_activation_min, params.quantized_activation_max, flat_size);
48 assert(status == ARM_CMSIS_NN_SUCCESS);
49}
50
51} // namespace luci_interpreter_pal
52
53#endif // LUCI_INTERPRETER_PAL_ADD_H
void Add< int8_t >(const ArithmeticParams &params, const int flat_size, const int8_t *input1_data, const int8_t *input2_data, int8_t *output_data)
Definition PALAdd.h:27
void Add< int16_t >(const ArithmeticParams &params, const int flat_size, const int16_t *input1_data, const int16_t *input2_data, int16_t *output_data)
Definition PALAdd.h:39