aboutsummaryrefslogtreecommitdiff
path: root/arm_compute
diff options
context:
space:
mode:
authorDiego Lopez Recas <Diego.LopezRecas@arm.com>2018-02-22 13:08:01 +0000
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:49:16 +0000
commit00854295ac18e1a79d99e6f1692432503cc71448 (patch)
tree63fddeb83468367fe90325e72368a868db05b98d /arm_compute
parent5c8e05c6c2726739d9c7ce0b7f6533be5be5fabd (diff)
downloadComputeLibrary-00854295ac18e1a79d99e6f1692432503cc71448.tar.gz
COMPMID-959: Fix valid region for Scale
Change-Id: Ic9ce52d772a178916dfa60fbb6456d295c06b83d Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/122647 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'arm_compute')
-rw-r--r--arm_compute/core/Helpers.h15
-rw-r--r--arm_compute/core/Helpers.inl33
2 files changed, 8 insertions, 40 deletions
diff --git a/arm_compute/core/Helpers.h b/arm_compute/core/Helpers.h
index 6f3aba7077..4acb176250 100644
--- a/arm_compute/core/Helpers.h
+++ b/arm_compute/core/Helpers.h
@@ -622,15 +622,16 @@ bool set_quantization_info_if_empty(ITensorInfo &info, QuantizationInfo quantiza
/** Helper function to calculate the Valid Region for Scale.
*
- * @param[in] src_info Input tensor info used to check.
- * @param[in] dst_shape Shape of the output.
- * @param[in] policy Interpolation policy.
- * @param[in] border_size Size of the border.
- * @param[in] border_undefined True if the border is undefined.
+ * @param[in] src_info Input tensor info used to check.
+ * @param[in] dst_shape Shape of the output.
+ * @param[in] interpolate_policy Interpolation policy.
+ * @param[in] sampling_policy Sampling policy.
+ * @param[in] border_undefined True if the border is undefined.
*
- * @return The corrispondent valid region
+ * @return The corresponding valid region
*/
-ValidRegion calculate_valid_region_scale(const ITensorInfo &src_info, const TensorShape &dst_shape, InterpolationPolicy policy, BorderSize border_size, bool border_undefined);
+ValidRegion calculate_valid_region_scale(const ITensorInfo &src_info, const TensorShape &dst_shape,
+ InterpolationPolicy interpolate_policy, SamplingPolicy sampling_policy, bool border_undefined);
/** Convert a linear index into n-dimensional coordinates.
*
diff --git a/arm_compute/core/Helpers.inl b/arm_compute/core/Helpers.inl
index 3db8369f08..b359811328 100644
--- a/arm_compute/core/Helpers.inl
+++ b/arm_compute/core/Helpers.inl
@@ -300,39 +300,6 @@ inline bool set_quantization_info_if_empty(ITensorInfo &info, QuantizationInfo q
return false;
}
-inline ValidRegion calculate_valid_region_scale(const ITensorInfo &src_info, const TensorShape &dst_shape, InterpolationPolicy policy, BorderSize border_size, bool border_undefined)
-{
- const auto wr = static_cast<float>(dst_shape[0]) / static_cast<float>(src_info.tensor_shape()[0]);
- const auto hr = static_cast<float>(dst_shape[1]) / static_cast<float>(src_info.tensor_shape()[1]);
-
- ValidRegion valid_region{ Coordinates(), dst_shape, src_info.tensor_shape().num_dimensions() };
-
- Coordinates &anchor = valid_region.anchor;
- TensorShape &shape = valid_region.shape;
-
- anchor.set(0, (policy == InterpolationPolicy::BILINEAR
- && border_undefined) ?
- ((static_cast<int>(src_info.valid_region().anchor[0]) + border_size.left + 0.5f) * wr - 0.5f) :
- ((static_cast<int>(src_info.valid_region().anchor[0]) + 0.5f) * wr - 0.5f));
- anchor.set(1, (policy == InterpolationPolicy::BILINEAR
- && border_undefined) ?
- ((static_cast<int>(src_info.valid_region().anchor[1]) + border_size.top + 0.5f) * hr - 0.5f) :
- ((static_cast<int>(src_info.valid_region().anchor[1]) + 0.5f) * hr - 0.5f));
- float shape_out_x = (policy == InterpolationPolicy::BILINEAR
- && border_undefined) ?
- ((static_cast<int>(src_info.valid_region().anchor[0]) + static_cast<int>(src_info.valid_region().shape[0]) - 1) - 1 + 0.5f) * wr - 0.5f :
- ((static_cast<int>(src_info.valid_region().anchor[0]) + static_cast<int>(src_info.valid_region().shape[0])) + 0.5f) * wr - 0.5f;
- float shape_out_y = (policy == InterpolationPolicy::BILINEAR
- && border_undefined) ?
- ((static_cast<int>(src_info.valid_region().anchor[1]) + static_cast<int>(src_info.valid_region().shape[1]) - 1) - 1 + 0.5f) * hr - 0.5f :
- ((static_cast<int>(src_info.valid_region().anchor[1]) + static_cast<int>(src_info.valid_region().shape[1])) + 0.5f) * hr - 0.5f;
-
- shape.set(0, shape_out_x - anchor[0]);
- shape.set(1, shape_out_y - anchor[1]);
-
- return valid_region;
-}
-
inline Coordinates index2coords(const TensorShape &shape, int index)
{
int num_elements = shape.total_size();