def METHOD_NAME(self, node):
    alike = ast.List, ast.Tuple, ast.Constant
    if isinstance(node.left, alike) and isinstance(node.right, alike):
        return node
    lbase, lsize = self.fixedSizeArray(node.left)
    rbase, rsize = self.fixedSizeArray(node.right)
    if not lbase or not rbase:
        return node
    if rsize != 1 and lsize != 1 and rsize != lsize:
        raise PythranSyntaxError("Invalid numpy broadcasting", node)
    self.update = True
    operands = [ast.BinOp(self.make_array_index(lbase, lsize, i),
                          type(node.op)(),
                          self.make_array_index(rbase, rsize, i))
                for i in range(max(lsize, rsize))]
    res = ast.Call(path_to_attr(('numpy', 'array')),
                   [ast.Tuple(operands, ast.Load())],
                   [])
    self.aliases[res.func] = {path_to_node(('numpy', 'array'))}
    return res