| 264 | } |
| 265 | |
| 266 | std::pair<unsigned int, unsigned int> deconvolution_output_dimensions(unsigned int in_width, |
| 267 | unsigned int in_height, |
| 268 | unsigned int kernel_width, |
| 269 | unsigned int kernel_height, |
| 270 | const PadStrideInfo &pad_stride_info) |
| 271 | { |
| 272 | const unsigned int pad_left = pad_stride_info.pad_left(); |
| 273 | const unsigned int pad_top = pad_stride_info.pad_top(); |
| 274 | const unsigned int pad_right = pad_stride_info.pad_right(); |
| 275 | const unsigned int pad_bottom = pad_stride_info.pad_bottom(); |
| 276 | const unsigned int stride_x = pad_stride_info.stride().first; |
| 277 | const unsigned int stride_y = pad_stride_info.stride().second; |
| 278 | |
| 279 | ARM_COMPUTE_ERROR_ON(in_width < 1 || in_height < 1); |
| 280 | ARM_COMPUTE_ERROR_ON(((in_width - 1) * stride_x + kernel_width) < (pad_left + pad_right)); |
| 281 | ARM_COMPUTE_ERROR_ON(((in_height - 1) * stride_y + kernel_height) < (pad_top + pad_bottom)); |
| 282 | const int w = stride_x * (in_width - 1) + kernel_width - (pad_left + pad_right); |
| 283 | const int h = stride_y * (in_height - 1) + kernel_height - (pad_top + pad_bottom); |
| 284 | |
| 285 | return std::make_pair<unsigned int, unsigned int>(w, h); |
| 286 | } |
| 287 | |
| 288 | std::pair<unsigned int, unsigned int> scaled_dimensions(int width, |
| 289 | int height, |
no test coverage detected