# DML_ELEMENT_WISE_ATANH_OPERATOR_DESC structure (directml.h)

Computes the hyperbolic arctangent for each element of *InputTensor*, placing the result into the corresponding element of *OutputTensor*.

```
f(x) = atanh(x) // ln((1 + x) / (1 - x)) / 2
```

This operator supports in-place execution, meaning that *OutputTensor* is permitted to alias *InputTensor* during binding.

## Syntax

```
struct DML_ELEMENT_WISE_ATANH_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *OutputTensor;
const DML_SCALE_BIAS *ScaleBias;
};
```

## Members

`InputTensor`

Type: **const DML_TENSOR_DESC***

The input tensor to read from.

`OutputTensor`

Type: **const DML_TENSOR_DESC***

The output tensor to write the results to.

`ScaleBias`

Type: _Maybenull_ **const DML_SCALE_BIAS***

An optional scale and bias to apply to the input. If present, this has the effect of applying the function `g(x) = x * scale + bias`

to each *input* element prior to computing this operator.

## Remarks

## Availability

This operator was introduced in `DML_FEATURE_LEVEL_2_0`

.

## Tensor constraints

*InputTensor* 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 |
---|---|---|---|

InputTensor | Input | 1 to 8 | FLOAT32, FLOAT16 |

OutputTensor | Output | 1 to 8 | FLOAT32, FLOAT16 |

### DML_FEATURE_LEVEL_2_0 and above

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

InputTensor | Input | 4 | FLOAT32, FLOAT16 |

OutputTensor | Output | 4 | FLOAT32, FLOAT16 |

## Requirements

Minimum supported client |
Windows 10, version 2004 (10.0; Build 19041) |

Minimum supported server |
Windows Server, version 2004 (10.0; Build 19041) |

Header |
directml.h |