diff options
Diffstat (limited to 'arm_compute/core')
-rw-r--r-- | arm_compute/core/Dimensions.h | 17 |
1 files changed, 16 insertions, 1 deletions
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<T>::max() - _id[dim]) <= step) + { + _id[dim] += step; + } + } /** Generic accessor to get the size of any dimension * * @note Precondition: dimension < Dimensions::num_max_dimensions |