

def structured_dot_grad(sparse_A, dense_B, ga):
    if (sparse_A.type.format in ('csc', 'csr')):
        if (sparse_A.type.format == 'csc'):
            sdgcsx = sdg_csc
            CSx = CSC
        else:
            sdgcsx = sdg_csr
            CSx = CSR
        g_A_data = sdgcsx(csm_indices(sparse_A), csm_indptr(sparse_A), dense_B, ga)
        return CSx(g_A_data, csm_indices(sparse_A), csm_indptr(sparse_A), csm_shape(sparse_A))
    else:
        raise NotImplementedError()

dataset/ETHPy150Open rizar/attention-lvcsr/libs/Theano/theano/sparse/basic.py structured_dot_grad/original