(l-onnx-doc-Mod)= # Mod (l-onnx-op-mod-13)= ## Mod - 13 ### Version - **name**: [Mod (GitHub)](https://github.com/onnx/onnx/blob/main/docs/Operators.md#Mod) - **domain**: `main` - **since_version**: `13` - **function**: `False` - **support_level**: `SupportType.COMMON` - **shape inference**: `True` This version of the operator has been available **since version 13**. ### Summary Performs element-wise binary modulus (with Numpy-style broadcasting support). The sign of the remainder is the same as that of the Divisor. Mod operator can also behave like C fmod() or numpy.fmod. In this case, the sign of the remainder however, will be the same as the Dividend (in contrast to integer mod). To force a behavior like numpy.fmod() an 'fmod' Attribute is provided. This attribute is set to 0 by default causing the behavior to be like integer mod. Setting this attribute to 1 causes the remainder to be calculated similar to that of numpy.fmod(). If the input type is floating point, then `fmod` attribute must be set to 1. In case of dividend being zero, the results will be platform dependent. This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [Broadcasting in ONNX](https://github.com/onnx/onnx/blob/main/docs/Broadcasting.md). ### Attributes * **fmod - INT** (default is `'0'`): Whether the operator should behave like fmod (default=0 meaning it will do integer mods); Set this to 1 to force fmod treatment ### Inputs - **A** (heterogeneous) - **T**: Dividend tensor - **B** (heterogeneous) - **T**: Divisor tensor ### Outputs - **C** (heterogeneous) - **T**: Remainder tensor ### Type Constraints * **T** in ( `tensor(bfloat16)`, `tensor(double)`, `tensor(float)`, `tensor(float16)`, `tensor(int16)`, `tensor(int32)`, `tensor(int64)`, `tensor(int8)`, `tensor(uint16)`, `tensor(uint32)`, `tensor(uint64)`, `tensor(uint8)` ): Constrain input and output types to high-precision numeric tensors. ```{toctree} text_diff_Mod_10_13 ``` (l-onnx-op-mod-10)= ## Mod - 10 ### Version - **name**: [Mod (GitHub)](https://github.com/onnx/onnx/blob/main/docs/Operators.md#Mod) - **domain**: `main` - **since_version**: `10` - **function**: `False` - **support_level**: `SupportType.COMMON` - **shape inference**: `True` This version of the operator has been available **since version 10**. ### Summary Performs element-wise binary modulus (with Numpy-style broadcasting support). The sign of the remainder is the same as that of the Divisor. Mod operator can also behave like C fmod() or numpy.fmod. In this case, the sign of the remainder however, will be the same as the Dividend (in contrast to integer mod). To force a behavior like numpy.fmod() an 'fmod' Attribute is provided. This attribute is set to 0 by default causing the behavior to be like integer mod. Setting this attribute to 1 causes the remainder to be calculated similar to that of numpy.fmod(). If the input type is floating point, then `fmod` attribute must be set to 1. In case of dividend being zero, the results will be platform dependent. This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [Broadcasting in ONNX](https://github.com/onnx/onnx/blob/main/docs/Broadcasting.md). ### Attributes * **fmod - INT** (default is `'0'`): Whether the operator should behave like fmod (default=0 meaning it will do integer mods); Set this to 1 to force fmod treatment ### Inputs - **A** (heterogeneous) - **T**: Dividend tensor - **B** (heterogeneous) - **T**: Divisor tensor ### Outputs - **C** (heterogeneous) - **T**: Remainder tensor ### Type Constraints * **T** in ( `tensor(double)`, `tensor(float)`, `tensor(float16)`, `tensor(int16)`, `tensor(int32)`, `tensor(int64)`, `tensor(int8)`, `tensor(uint16)`, `tensor(uint32)`, `tensor(uint64)`, `tensor(uint8)` ): Constrain input and output types to high-precision numeric tensors.