class_docstr: Create a multivaraite Normal distribution object.
  
  Parameters
  ----------
  loc : Tensor
      mean of the distribution.
  cov : Tensor
      covariance matrix of the distribution
  precision : Tensor
      precision matrix of the distribution
  scale_tril : Tensor
      lower-triangular factor of the covariance
class_docstr_tok: ["Create","a","multivaraite","Normal","distribution","object",".","Parameters","--","--","--","--","--","loc",":","Tensor","mean","of","the","distribution",".","cov",":","Tensor","covariance","matrix","of","the","distribution","precision",":","Tensor","precision","matrix","of","the","distribution","scale_tril",":","Tensor","lower-triangular","factor","of","the","covariance"]
code: def sample(self, size=None):
      # symbol does not support `np.broadcast`
      shape_tensor = self.loc + self.scale_tril.sum(-1)
      if size is not None:
          if isinstance(size, int):
              size = (size,)
          shape_tensor = np.broadcast_to(shape_tensor, size + (-2,))
      noise = np.random.normal(
          np.zeros_like(  # pylint: disable=too-many-function-args
              shape_tensor
          ),
          np.ones_like(shape_tensor),
      )  # pylint: disable=too-many-function-args
      samples = self.loc + np.einsum(
          "...jk,...j->...k", self.scale_tril, noise
      )
      return samples
  
file_path: mxnet/python/mxnet/gluon/probability/distributions/multivariate_normal.py
imports: import math
  from .distribution import Distribution
  from .constraint import Real, PositiveDefinite, LowerCholesky
  from .utils import cached_property
  from ....None import np
label_desc: Use image node_id 8 for calling the MultivariateNormal obj's underlying member method code with example usage: obj.sample(size) and returns: samples