From b309fc249e4383b4d40ae03e377c3cbad3f9f5f7 Mon Sep 17 00:00:00 2001 From: Giorgio Arena Date: Tue, 5 Jan 2021 09:46:16 +0000 Subject: Fix uniform_real_distribution_fp16 warning and single Dimension increment - Change uniform_real_distribution_fp16's arguments to float to avoid maybe-uninitialized warnings in half data type's copy constructor and converter - Add increment method to Dimensions in order to avoid possible overflows when incrementing single dimensions - Remove internal_only flag documentation Resolves: COMPMID-4061 Change-Id: I7c50487193bd7b47b03d52fc595840c7df4e7104 Signed-off-by: Giorgio Arena Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4760 Reviewed-by: Georgios Pinitas Tested-by: Arm Jenkins Comments-Addressed: Arm Jenkins --- arm_compute/core/Dimensions.h | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'arm_compute/core/Dimensions.h') diff --git a/arm_compute/core/Dimensions.h b/arm_compute/core/Dimensions.h index d487b997a3..175d1e8098 100644 --- a/arm_compute/core/Dimensions.h +++ b/arm_compute/core/Dimensions.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2020 Arm Limited. + * Copyright (c) 2017-2021 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -97,6 +97,21 @@ public: { return _id[2]; } + /** Increments the given dimension by a step size, avoiding overflows + * + * @note Precondition: dim < _num_dimensions + * + * @param[in] dim Dimension to increment. + * @param[in] step Step to increment @p dim by. + */ + void increment(size_t dim, T step = 1) + { + ARM_COMPUTE_ERROR_ON(dim < _num_dimensions); + if((std::numeric_limits::max() - _id[dim]) <= step) + { + _id[dim] += step; + } + } /** Generic accessor to get the size of any dimension * * @note Precondition: dimension < Dimensions::num_max_dimensions -- cgit v1.2.1