# DML_ELEMENT_WISE_LOGICAL_XOR_OPERATOR_DESC structure (directml.h)

Performs a logical XOR (exclusive or) on each pair of corresponding elements of the input tensors, placing the result into the corresponding element of *OutputTensor*.

```
f(a, b) = (!!a) != (!!b)
```

This operator supports in-place execution, meaning that *OutputTensor* is permitted to alias one of the the input tensors during binding.

## Syntax

```
struct DML_ELEMENT_WISE_LOGICAL_XOR_OPERATOR_DESC {
const DML_TENSOR_DESC *ATensor;
const DML_TENSOR_DESC *BTensor;
const DML_TENSOR_DESC *OutputTensor;
};
```

## Members

`ATensor`

Type: **const DML_TENSOR_DESC***

A tensor containing the left-hand side inputs.

`BTensor`

Type: **const DML_TENSOR_DESC***

A tensor containing the right-hand side inputs.

`OutputTensor`

Type: **const DML_TENSOR_DESC***

The output tensor to write the results to.

## Availability

This operator was introduced in `DML_FEATURE_LEVEL_1_0`

.

## Tensor constraints

*ATensor*, *BTensor*, and *OutputTensor* must have the same *DataType*, *DimensionCount*, and *Sizes*.

## Tensor support

### DML_FEATURE_LEVEL_3_0 and above

Tensor | Kind | Supported dimension counts | Supported data types |
---|---|---|---|

ATensor | Input | 1 to 8 | UINT32, UINT8 |

BTensor | Input | 1 to 8 | UINT32, UINT8 |

OutputTensor | Output | 1 to 8 | UINT32, UINT8 |

### DML_FEATURE_LEVEL_2_0 and above

Tensor | Kind | Supported dimension counts | Supported data types |
---|---|---|---|

ATensor | Input | 4 | UINT32, UINT8 |

BTensor | Input | 4 | UINT32, UINT8 |

OutputTensor | Output | 4 | UINT32, UINT8 |

### DML_FEATURE_LEVEL_1_0 and above

Tensor | Kind | Supported dimension counts | Supported data types |
---|---|---|---|

ATensor | Input | 4 | UINT32 |

BTensor | Input | 4 | UINT32 |

OutputTensor | Output | 4 | UINT32 |

## Requirements

Header |
directml.h |