ONE - On-device Neural Engine
Loading...
Searching...
No Matches
PALFloorCommon.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_FLOOR_COMMON_H
19#define LUCI_INTERPRETER_PAL_FLOOR_COMMON_H
20
21#include <cmath>
22
24{
25inline void Floor(const luci_interpreter::RuntimeShape &input_shape, const float *input_data,
26 const luci_interpreter::RuntimeShape &output_shape, float *output_data)
27{
28 // check that input and output dimensions are equal
29 int N = input_shape.dimensionsCount();
30 assert(N == output_shape.dimensionsCount());
31
32 // check that sizes of all dimensions are equal
33 for (int i = 0; i < N; ++i)
34 {
35 assert(input_shape.dims(i) == output_shape.dims(i));
36 }
37
38 const int flat_size = input_shape.flatSize();
39 for (int i = 0; i < flat_size; i++)
40 {
41 int offset = i;
42 output_data[offset] = std::floor(input_data[offset]);
43 }
44}
45} // namespace luci_interpreter_pal
46
47#endif // LUCI_INTERPRETER_PAL_FLOOR_COMMON_H
int32_t dimensionsCount() const
Definition Tensor.h:106
int32_t dims(int i) const
Definition Tensor.h:108
const luci_interpreter::RuntimeShape output_shape
int offset(const int32_t *dims_data, int i0, int i1, int i2, int i3)
Definition PALUtils.h:193
void Floor(const luci_interpreter::RuntimeShape &input_shape, const float *input_data, const luci_interpreter::RuntimeShape &output_shape, float *output_data)