From 053e7510f24c2b02f9fae9c45fb6b874631a5376 Mon Sep 17 00:00:00 2001 From: Manuel Bottini Date: Fri, 28 Dec 2018 15:05:20 +0000 Subject: COMPMID-1758: NEON: Implement Range Change-Id: I56dff9462b85760fbed6db43224cadb90d283810 Reviewed-on: https://review.mlplatform.org/472 Reviewed-by: Georgios Pinitas Tested-by: Arm Jenkins --- src/core/CL/kernels/CLRangeKernel.cpp | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'src/core/CL/kernels/CLRangeKernel.cpp') diff --git a/src/core/CL/kernels/CLRangeKernel.cpp b/src/core/CL/kernels/CLRangeKernel.cpp index f53fe87a70..ae8cc0fae5 100644 --- a/src/core/CL/kernels/CLRangeKernel.cpp +++ b/src/core/CL/kernels/CLRangeKernel.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 ARM Limited. + * Copyright (c) 2018-2019 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -32,12 +32,6 @@ using namespace arm_compute; namespace { -size_t num_of_elements_in_range(const float start, const float end, const float step) -{ - ARM_COMPUTE_ERROR_ON_MSG(step == 0, "CLRange Step cannot be 0"); - return size_t(std::ceil((end - start) / step)); -} - unsigned int get_num_elems_processed_per_iteration(const DataType dt) { unsigned int num_elems_processed_per_iteration = preferred_vector_width(CLKernelLibrary::get().get_device(), dt); @@ -69,7 +63,7 @@ Status validate_arguments(const ITensorInfo &output, const float start, const fl ARM_COMPUTE_RETURN_ERROR_ON_MSG((start == end), "start of the requested sequence must not be equal to the end"); ARM_COMPUTE_RETURN_ERROR_ON_MSG(output.num_dimensions() != 1, "Output has to be a 1-D tensor"); - ARM_COMPUTE_RETURN_ERROR_ON_MSG(output.tensor_shape().total_size() < num_of_elements_in_range(start, end, step), "Output tensor size is incorrect"); + ARM_COMPUTE_RETURN_ERROR_ON_MSG(output.tensor_shape().total_size() < utils::num_of_elements_in_range(start, end, step), "Output tensor size is incorrect"); return Status{}; } @@ -78,14 +72,14 @@ std::pair validate_and_configure_window(ITensorInfo &output, con { unsigned int num_elems_processed_per_iteration = get_num_elems_processed_per_iteration(output.data_type()); // Auto initialize output if not initialized - auto_init_if_empty(output, TensorShape(num_of_elements_in_range(start, end, step)), 1, output.data_type(), output.quantization_info()); + auto_init_if_empty(output, TensorShape(utils::num_of_elements_in_range(start, end, step)), 1, output.data_type(), output.quantization_info()); // Configure kernel window Window win = calculate_max_window(output, Steps(num_elems_processed_per_iteration)); AccessWindowHorizontal output_access(&output, 0, num_elems_processed_per_iteration); bool window_changed = update_window_and_padding(win, output_access); - output_access.set_valid_region(win, ValidRegion(Coordinates(), TensorShape(num_of_elements_in_range(start, end, step)))); + output_access.set_valid_region(win, ValidRegion(Coordinates(), TensorShape(utils::num_of_elements_in_range(start, end, step)))); Status err = (window_changed) ? ARM_COMPUTE_CREATE_ERROR(ErrorCode::RUNTIME_ERROR, "Insufficient Padding!") : Status{}; return std::make_pair(err, win); } -- cgit v1.2.1