aboutsummaryrefslogtreecommitdiff
path: root/src/core/CL/kernels/CLRangeKernel.cpp
diff options
context:
space:
mode:
authorManuel Bottini <manuel.bottini@arm.com>2018-12-28 15:05:20 +0000
committerManuel Bottini <manuel.bottini@arm.com>2019-01-14 13:53:18 +0000
commit053e7510f24c2b02f9fae9c45fb6b874631a5376 (patch)
tree2da0a155512637017fb011a11f8c2f8bab494fa2 /src/core/CL/kernels/CLRangeKernel.cpp
parentb412fab0e3c8ec10e104f4d85760898a5b26179c (diff)
downloadComputeLibrary-053e7510f24c2b02f9fae9c45fb6b874631a5376.tar.gz
COMPMID-1758: NEON: Implement Range
Change-Id: I56dff9462b85760fbed6db43224cadb90d283810 Reviewed-on: https://review.mlplatform.org/472 Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/core/CL/kernels/CLRangeKernel.cpp')
-rw-r--r--src/core/CL/kernels/CLRangeKernel.cpp14
1 files changed, 4 insertions, 10 deletions
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<Status, Window> 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);
}