code: def dsmm(
      sparse_mat: Union[
          torch.sparse.HalfTensor,
          torch.sparse.FloatTensor,
          torch.sparse.DoubleTensor,
      ],
      dense_mat: Tensor,
  ) -> Tensor:
      r"""
      Performs the (batch) matrix multiplication :math:`\mathbf{SD}`
      where :math:`\mathbf S` is a sparse matrix and :math:`\mathbf D` is a dense matrix.
  
      :param sparse_mat: Sparse matrix :math:`\mathbf S` (... x M x N)
      :param dense_mat: Dense matrix :math:`\mathbf D` (... x N x O)
      :return: :math:`\mathbf S \mathbf D` (... x M x N)
      """
      return linear_operator.dsmm(
          sparse_mat=sparse_mat, dense_mat=dense_mat
      )
  
imports: from typing import Optional, Tuple, Union
  import linear_operator
  import torch
  from linear_operator import LinearOperator
  from torch import Tensor
  from .None import beta_features, distributions, kernels, lazy, likelihoods, means, metrics, mlls, models, optim, priors, settings, utils, variational
  from .functions import inv_matmul, log_normal_cdf, logdet, matmul
  from .lazy import cat, delazify, lazify
  from .mlls import ExactMarginalLogLikelihood
  from .module import Module
label_desc: Use image node_id 4 for calling a global function with example usage: dsmm(sparse_mat, dense_mat) and returns: linear_operator