21.02
ScaleUtils.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2020 Arm Limited.
3
*
4
* SPDX-License-Identifier: MIT
5
*
6
* Permission is hereby granted, free of charge, to any person obtaining a copy
7
* of this software and associated documentation files (the "Software"), to
8
* deal in the Software without restriction, including without limitation the
9
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10
* sell copies of the Software, and to permit persons to whom the Software is
11
* furnished to do so, subject to the following conditions:
12
*
13
* The above copyright notice and this permission notice shall be included in all
14
* copies or substantial portions of the Software.
15
*
16
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
* SOFTWARE.
23
*/
24
#ifndef UTILS_CORE_SCALEUTILS_H
25
#define UTILS_CORE_SCALEUTILS_H
26
27
#include "
arm_compute/core/Types.h
"
28
29
#include <cstdint>
30
#include <cstdlib>
31
32
namespace
arm_compute
33
{
34
namespace
scale_utils
35
{
36
/** Returns resize ratio between input and output with consideration of aligned corners
37
*
38
* @param[in] input_size The input size
39
* @param[in] output_size the output size
40
* @param[in] align_corners True to align corners of input and output. Defaults to false.
41
*
42
* @return The ratio between input and output (i.e., the input size divided by the output size)
43
*/
44
float
calculate_resize_ratio
(
size_t
input_size
,
size_t
output_size
,
bool
align_corners =
false
);
45
46
/** Returns if aligned corners are allowed for the given sampling policy
47
*
48
* @param[in] sampling_policy The sampling policy to consider
49
*
50
* @return True if aligned corners are allowed
51
*/
52
inline
bool
is_align_corners_allowed_sampling_policy
(
SamplingPolicy
sampling_policy
)
53
{
54
return
sampling_policy !=
SamplingPolicy::CENTER
;
55
}
56
}
// namespace scale_utils
57
}
// namespace arm_compute
58
#endif
/* UTILS_CORE_SCALEUTILS_H */
arm_compute
Copyright (c) 2017-2021 Arm Limited.
Definition:
00_introduction.dox:24
arm_compute::SamplingPolicy::CENTER
Samples are taken at pixel center.
arm_compute::scale_utils::is_align_corners_allowed_sampling_policy
bool is_align_corners_allowed_sampling_policy(SamplingPolicy sampling_policy)
Returns if aligned corners are allowed for the given sampling policy.
Definition:
ScaleUtils.h:52
arm_compute::test::validation::sampling_policy
sampling_policy
Definition:
Scale.cpp:253
arm_compute::test::validation::input_size
const int input_size
Definition:
LSTMLayerQuantized.cpp:458
arm_compute::scale_utils::calculate_resize_ratio
float calculate_resize_ratio(size_t input_size, size_t output_size, bool align_corners=false)
Returns resize ratio between input and output with consideration of aligned corners.
Definition:
ScaleUtils.cpp:27
Types.h
arm_compute::test::validation::output_size
const int output_size
Definition:
LSTMLayerQuantized.cpp:459
arm_compute::SamplingPolicy
SamplingPolicy
Available Sampling Policies.
Definition:
Types.h:102
src
core
utils
ScaleUtils.h
Generated on Thu Feb 25 2021 17:17:37 for Compute Library by
1.8.13