aboutsummaryrefslogtreecommitdiff
path: root/tests/validation/reference/Convolution.cpp
diff options
context:
space:
mode:
authorSanghoon Lee <sanghoon.lee@arm.com>2018-01-29 15:28:11 +0000
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:45:00 +0000
commit97cf2497d2b617de3209330893ad51bd0cc126ce (patch)
treeff9514a7031e7246c288f73ef94b7cffbc0b01d3 /tests/validation/reference/Convolution.cpp
parentd6ca478a7e410f8f529c2e505305b46d9fe21a9b (diff)
downloadComputeLibrary-97cf2497d2b617de3209330893ad51bd0cc126ce.tar.gz
COMPMID-564: CustomConvolution issue fixed
Change-Id: Ia2874d30780cb597a6e5039120815f2368911e0c Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/118024 Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com> Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'tests/validation/reference/Convolution.cpp')
-rw-r--r--tests/validation/reference/Convolution.cpp30
1 files changed, 16 insertions, 14 deletions
diff --git a/tests/validation/reference/Convolution.cpp b/tests/validation/reference/Convolution.cpp
index 308c0b5a87..5d0cf1ea93 100644
--- a/tests/validation/reference/Convolution.cpp
+++ b/tests/validation/reference/Convolution.cpp
@@ -43,22 +43,25 @@ SimpleTensor<T> convolution(const SimpleTensor<uint8_t> &src, DataType output_da
SimpleTensor<T> dst(src.shape(), output_data_type);
- for(int element_idx = 0; element_idx < src.num_elements(); ++element_idx)
+ switch(output_data_type)
{
- const Coordinates id = index2coord(src.shape(), element_idx);
-
- switch(output_data_type)
+ case DataType::S16:
{
- case DataType::S16:
+ SimpleTensor<int16_t> sum(src.shape(), output_data_type);
+ for(int element_idx = 0; element_idx < src.num_elements(); ++element_idx)
{
- SimpleTensor<int16_t> sum(src.shape(), output_data_type);
+ const Coordinates id = index2coord(src.shape(), element_idx);
apply_2d_spatial_filter(id, src, sum, TensorShape(width, height), conv, 1 / static_cast<double>(scale), border_mode, constant_border_value);
dst[element_idx] = tensor_elem_at<int16_t>(sum, id, border_mode, constant_border_value);
}
- break;
- case DataType::U8:
+ }
+ break;
+ case DataType::U8:
+ {
+ SimpleTensor<int32_t> sum(src.shape(), output_data_type);
+ for(int element_idx = 0; element_idx < src.num_elements(); ++element_idx)
{
- SimpleTensor<int32_t> sum(src.shape(), output_data_type);
+ const Coordinates id = index2coord(src.shape(), element_idx);
apply_2d_spatial_filter(id, src, sum, TensorShape(width, height), conv, 1, border_mode, constant_border_value);
if(tensor_elem_at<int32_t>(sum, id, border_mode, constant_border_value) < 0)
{
@@ -73,13 +76,12 @@ SimpleTensor<T> convolution(const SimpleTensor<uint8_t> &src, DataType output_da
dst[element_idx] = tensor_elem_at<int32_t>(sum, id, border_mode, constant_border_value) / scale;
}
}
- break;
- default:
- ARM_COMPUTE_ERROR("Not supported DataType");
- break;
}
+ break;
+ default:
+ ARM_COMPUTE_ERROR("Not supported DataType");
+ break;
}
-
return dst;
}