def Xor(onnx_node, ng_inputs): # type: (NodeWrapper, List[NgraphNode]) -> NgraphNode """Perform the `xor` logical operation elementwise on two input tensors.""" left, right = get_bool_nodes( broadcast_for_binary_operation(onnx_node, ng_inputs)) return ng.logical_or(ng.logical_and(left, ng.logical_not(right)), ng.logical_and(ng.logical_not(left), right))
def Xor(onnx_node, ng_inputs): # type: (NodeWrapper, List[NgraphNode]) -> NgraphNode """Perform the `xor` logical operation elementwise on two input tensors.""" left, right = broadcast_for_binary_operation(onnx_node, ng_inputs) not_left = ng.convert(ng.equal(left, 0), int) left = ng.convert(ng.not_equal(left, 0), int) right = ng.convert(ng.not_equal(right, 0), int) not_right = ng.convert(ng.equal(right, 0), int) return ((not_left * right) + (not_right * left)) > 0
def And(onnx_node, ng_inputs): # type: (NodeWrapper, List[NgraphNode]) -> NgraphNode """Perform the `and` logical operation elementwise on two input tensors.""" left, right = broadcast_for_binary_operation(onnx_node, ng_inputs) left = ng.convert(ng.not_equal(left, 0), int) right = ng.convert(ng.not_equal(right, 0), int) return ng.convert(left * right, bool)
def Greater(onnx_node, ng_inputs): # type: (NodeWrapper, List[NgraphNode]) -> NgraphNode """Perform the `greater` logical operation elementwise on two input tensors.""" left, right = broadcast_for_binary_operation(onnx_node, ng_inputs) return ng.greater(left, right)
def Div(onnx_node, ng_inputs): # type: (NodeWrapper, List[NgraphNode]) -> NgraphNode """Perform element-wise binary division.""" left, right = broadcast_for_binary_operation(onnx_node, ng_inputs) return ng.divide(left, right)
def Mul(onnx_node, ng_inputs): # type: (NodeWrapper, List[NgraphNode]) -> NgraphNode """Perform element-wise binary multiplication.""" left, right = broadcast_for_binary_operation(onnx_node, ng_inputs) return ng.multiply(left, right)
def Sub(onnx_node, ng_inputs): # type: (NodeWrapper, List[NgraphNode]) -> NgraphNode """Perform element-wise binary subtraction.""" left, right = broadcast_for_binary_operation(onnx_node, ng_inputs) return ng.subtract(left, right)
def Pow(onnx_node, ng_inputs): # type: (NodeWrapper, List[NgraphNode]) -> NgraphNode """Perform element-wise binary power.""" base, exponent = broadcast_for_binary_operation(onnx_node, ng_inputs) return ng.power(base, exponent)