| 270 | } |
| 271 | |
| 272 | void NELogicalKernel::configure(const ITensorInfo *input1, |
| 273 | const ITensorInfo *input2, |
| 274 | ITensorInfo *output, |
| 275 | LogicalOperation op) |
| 276 | { |
| 277 | ARM_COMPUTE_ERROR_ON_NULLPTR(input1, output); |
| 278 | ARM_COMPUTE_ERROR_THROW_ON(validate(input1, input2, output, op)); |
| 279 | |
| 280 | _op = op; |
| 281 | |
| 282 | Window win = calculate_max_window(*input1, Steps()); |
| 283 | TensorShape out_shape = input1->tensor_shape(); |
| 284 | if (op != LogicalOperation::Not) |
| 285 | { |
| 286 | ARM_COMPUTE_ERROR_ON_NULLPTR(input2); |
| 287 | out_shape = TensorShape::broadcast_shape(input1->tensor_shape(), input2->tensor_shape()); |
| 288 | win = calculate_max_window(out_shape, Steps()); |
| 289 | } |
| 290 | ICPPKernel::configure(win); |
| 291 | |
| 292 | // Auto initialize if empty |
| 293 | set_shape_if_empty(*output, out_shape); |
| 294 | set_data_type_if_unknown(*output, input1->data_type()); |
| 295 | } |
| 296 | |
| 297 | Status NELogicalKernel::validate(const ITensorInfo *input1, |
| 298 | const ITensorInfo *input2, |
nothing calls this directly
no test coverage detected