# Mod¶

Versioned name : Mod-1

Category : Arithmetic binary

Short description : Mod performs an element-wise modulo operation with two given tensors applying broadcasting rule specified in the auto_broadcast attribute.

Detailed description As a first step input tensors a and b are broadcasted if their shapes differ. Broadcasting is performed according to auto_broadcast attribute specification. As a second step Mod operation is computed element-wise on the input tensors a and b according to the formula below:

$o_{i} = a_{i} \mod b_{i}$

Mod operation computes a reminder of a truncated division. It is the same behaviour like in C programming language: truncated(x / y) \* y + truncated_mod(x, y) = x. The sign of the result is equal to a sign of a dividend. The result of division by zero is undefined.

Attributes :

• Description : specifies rules used for auto-broadcasting of input tensors.

• Range of values :

• Type : string

• Default value : “numpy”

• Required : no

Inputs

• 1 : A tensor of type T and arbitrary shape. Required.

• 2 : A tensor of type T and arbitrary shape. Required.

Outputs

• 1 : The result of element-wise modulo operation. A tensor of type T with shape equal to broadcasted shape of two inputs.

Types

• T : any numeric type.

Examples

<layer ... type="Mod">
<input>
<port id="0">
<dim>256</dim>
<dim>56</dim>
</port>
<port id="1">
<dim>256</dim>
<dim>56</dim>
</port>
</input>
<output>
<port id="2">
<dim>256</dim>
<dim>56</dim>
</port>
</output>
</layer>

<layer ... type="Mod">
<input>
<port id="0">
<dim>8</dim>
<dim>1</dim>
<dim>6</dim>
<dim>1</dim>
</port>
<port id="1">
<dim>7</dim>
<dim>1</dim>
<dim>5</dim>
</port>
</input>
<output>
<port id="2">
<dim>8</dim>
<dim>7</dim>
<dim>6</dim>
<dim>5</dim>
</port>
</output>
</layer>