in blocksparse/ewops.py [0:0]
def broadcast_check(x, y, ew_op, bc_op, tf_op, name):
xshape = x.shape.as_list()
yshape = y.shape.as_list()
if xshape == yshape:
if name is None: name = ew_names[ew_op]
return ew_z_xy_op(x, y, op=ew_op, name=name)
if bc_op is not None:
if xshape[-1] == yshape[-1]:
if yshape[-1] == y.get_shape().num_elements():
if name is None: name = ew_names[bc_op]
return ew_z_xb_op(x, y, op=bc_op, name=name)
if xshape[-1] == x.get_shape().num_elements():
if name is None: name = ew_names[bc_op]
return ew_z_xb_op(y, x, op=bc_op, name=name)
# fall back to tf for everything else for now..
return tf_op(x, y, name=name)