def METHOD_NAME(in_shape_x=[],
                                in_shape_y=[],
                                axis=[],
                                out_shape=[]):
    #infer shape
    max_dim = max(len(in_shape_x), len(in_shape_y))
    if len(in_shape_x) == len(in_shape_y):
        if not axis == -1 or axis == 0:
            return False
    if not axis >= -max_dim and axis < max_dim:
        return False
    axis_ = abs(len(in_shape_x) - len(
        in_shape_y)) + axis + 1 if axis < 0 else axis
    #GetBroadcastDimsArrays
    if not axis_ >= 0:
        return False
    if not axis_ < max_dim:
        return False
    x_dims_array = []
    y_dims_array = []
    if (len(in_shape_x) > len(in_shape_y)):
        x_dims_array = in_shape_x
        for i in range(0, axis_):
            y_dims_array.append(1)
        y_dims_array = y_dims_array + in_shape_y
        if not axis_ + len(in_shape_y) < max_dim:  #Paddle error???
            return False
        if axis_ + len(in_shape_y) < max_dim:
            for i in range(axis_ + len(in_shape_y), max_dim):
                y_dims_array.append(1)
    else:
        y_dims_array = in_shape_y
        for i in range(0, axis_):
            x_dims_array.append(1)
        x_dims_array = x_dims_array + in_shape_x
        if not axis_ + len(in_shape_x) < max_dim:  #Paddle error???
            return False
        if axis_ + len(in_shape_x) < max_dim:
            for i in range(axis_ + len(in_shape_x), max_dim):
                x_dims_array.append(1)
    for i in range(0, max_dim):
        if not (x_dims_array[i] == y_dims_array[i] or x_dims_array[i] <= 1 or
                y_dims_array[i] <= 1):
            return False
        out_shape.append(max(x_dims_array[i], y_dims_array[i]))
    #ElementwiseComputeEx
    axis_ = abs(len(in_shape_x) - len(in_shape_y)) if axis == -1 else axis
    if not axis_ >= 0:
        return False
    if not axis_ < max_dim:
        return False
    if len(in_shape_x) > len(in_shape_y):
        y_dims_trimed = trim_trailing_singular_dims(in_shape_y)
        axis_trim = in_shape_x if len(y_dims_trimed) == 0 else axis_
        for i in range(len(y_dims_trimed)):
            if not i + axis_trim < len(in_shape_x):  # Paddle error???
                return False
            if in_shape_x[i + axis_trim] != y_dims_trimed[i]:
                if not (in_shape_x[i + axis_trim] == 1 or
                        y_dims_trimed[i] == 1):
                    return False
    else:
        x_dims_trimed = trim_trailing_singular_dims(in_shape_x)
        axis_trim = in_shape_y if len(x_dims_trimed) == 0 else axis_
        for i in range(len(x_dims_trimed)):
            if not (i + axis_trim < len(in_shape_y)):  # Paddle error???
                return False
            if in_shape_y[i + axis_trim] != x_dims_trimed[i]:
                if not (in_shape_y[i + axis_trim] == 1 or
                        x_dims_trimed[i] == 1):
                    return False
    return True