def _broadcast_in_dim(operand, *, shape, broadcast_dimensions):
    inshape = ([1] * len(shape))
    for (orig_shape_i, broadcast_dim_i) in zip(operand.shape, broadcast_dimensions):
        if (orig_shape_i != 1):
            inshape[broadcast_dim_i] = shape[broadcast_dim_i]
    inshape_tf = _eval_shape(inshape)
    shape_tf = _eval_shape(shape)
    return tf.broadcast_to(tf.reshape(operand, inshape_tf), shape_tf)
def _broadcast_in_dim(operand, *, shape, broadcast_dimensions):
    inshape = ([1] * len(shape))
    for (orig_shape_i, broadcast_dim_i) in zip(operand.shape, broadcast_dimensions):
        if (orig_shape_i != 1):
            inshape[broadcast_dim_i] = shape[broadcast_dim_i]
    inshape_tf = _eval_shape(inshape)
    shape_tf = _eval_shape(shape)
    return tf.broadcast_to(tf.reshape(operand, inshape_tf), shape_tf)