

def mul(x, y):
    '\n    Multiply elementwise two matrices, at least one of which is sparse.\n\n    This method will provide the right op according to the inputs.\n\n    Parameters\n    ----------\n    x\n        A matrix variable.\n    y\n        A matrix variable.\n\n    Returns\n    -------\n    A sparse matrix\n        `x` + `y`\n\n    Notes\n    -----\n    At least one of `x` and `y` must be a sparse matrix.\n    The grad is regular, i.e. not structured.\n\n    '
    x = as_sparse_or_tensor_variable(x)
    y = as_sparse_or_tensor_variable(y)
    x_is_sparse_variable = _is_sparse_variable(x)
    y_is_sparse_variable = _is_sparse_variable(y)
    assert (x_is_sparse_variable or y_is_sparse_variable)
    if (x_is_sparse_variable and y_is_sparse_variable):
        if ((x_is_sparse_variable.dtype == 'float64') and (x.dtype == 'float32')):
            x = x.astype('float64')
        return mul_s_s(x, y)
    elif (x_is_sparse_variable and (not y_is_sparse_variable)):
        if ((y.dtype == 'float64') and (x.dtype == 'float32')):
            x = x.astype('float64')
        return mul_s_d(x, y)
    elif (y_is_sparse_variable and (not x_is_sparse_variable)):
        return mul_s_d(y, x)
    else:
        raise NotImplementedError()

dataset/ETHPy150Open rizar/attention-lvcsr/libs/Theano/theano/sparse/basic.py mul/VarMisuse@61/294 `y`->`x_is_sparse_variable`