(l-onnx-doc-BitwiseOr)= # BitwiseOr (l-onnx-op-bitwiseor-18)= ## BitwiseOr - 18 ### Version - **name**: [BitwiseOr (GitHub)](https://github.com/onnx/onnx/blob/main/docs/Operators.md#BitwiseOr) - **domain**: `main` - **since_version**: `18` - **function**: `False` - **support_level**: `SupportType.COMMON` - **shape inference**: `True` This version of the operator has been available **since version 18**. ### Summary Returns the tensor resulting from performing the bitwise `or` operation elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). 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). ### Inputs - **A** (heterogeneous) - **T**: First input operand for the bitwise operator. - **B** (heterogeneous) - **T**: Second input operand for the bitwise operator. ### Outputs - **C** (heterogeneous) - **T**: Result tensor. ### Type Constraints * **T** in ( `tensor(int16)`, `tensor(int32)`, `tensor(int64)`, `tensor(int8)`, `tensor(uint16)`, `tensor(uint32)`, `tensor(uint64)`, `tensor(uint8)` ): Constrain input to integer tensors. ### Examples #### default ```python import numpy as np import onnx node = onnx.helper.make_node( "BitwiseOr", inputs=["x", "y"], outputs=["bitwiseor"], ) # 2d x = create_random_int((3, 4), np.int32) y = create_random_int((3, 4), np.int32) z = np.bitwise_or(x, y) expect(node, inputs=[x, y], outputs=[z], name="test_bitwise_or_i32_2d") # 4d x = create_random_int((3, 4, 5, 6), np.int8) y = create_random_int((3, 4, 5, 6), np.int8) z = np.bitwise_or(x, y) expect(node, inputs=[x, y], outputs=[z], name="test_bitwise_or_i16_4d") ``` #### _bitwiseor_broadcast ```python import numpy as np import onnx node = onnx.helper.make_node( "BitwiseOr", inputs=["x", "y"], outputs=["bitwiseor"], ) # 3d vs 1d x = create_random_int((3, 4, 5), np.uint64) y = create_random_int((5,), np.uint64) z = np.bitwise_or(x, y) expect(node, inputs=[x, y], outputs=[z], name="test_bitwise_or_ui64_bcast_3v1d") # 4d vs 3d x = create_random_int((3, 4, 5, 6), np.uint8) y = create_random_int((4, 5, 6), np.uint8) z = np.bitwise_or(x, y) expect(node, inputs=[x, y], outputs=[z], name="test_bitwise_or_ui8_bcast_4v3d") ```