docstr: Draw samples from the Unified Skew Normal.
  
  Args:
      sample_shape: The shape of the samples.
  
  Returns:
      The (sample_shape x batch_shape x event_shape) tensor of samples.
docstr_tok: ["Draw","samples","from","the","Unified","Skew","Normal",".","Args",":","sample_shape",":","The","shape","of","the","samples",".","Returns",":","The","(","sample_shape","x","batch_shape","x","event_shape",")","tensor","of","samples","."]
code: def rsample(
      self, sample_shape: torch.Size = torch.Size()
  ) -> Tensor:  # noqa: B008
      r"""Draw samples from the Unified Skew Normal.
  
      Args:
          sample_shape: The shape of the samples.
  
      Returns:
          The (sample_shape x batch_shape x event_shape) tensor of samples.
      """
      residuals = self._orthogonalized_gauss.rsample(
          sample_shape=sample_shape
      )
      trunc_rvs = (
          self.trunc.rsample(sample_shape=sample_shape) - self.trunc.loc
      )
      cond_expectations = self.gauss.loc + trunc_rvs @ self._iKxx_Kxy
      return cond_expectations + residuals
  
imports: from __future__ import annotations
  from inspect import getmembers
  from typing import Optional, Sequence, Union
  import torch
  from botorch.utils.probability.linalg import augment_cholesky, block_matrix_concat
  from botorch.utils.probability.mvnxpb import MVNXPB
  from botorch.utils.probability.truncated_multivariate_normal import TruncatedMultivariateNormal
  from linear_operator.operators import LinearOperator
  from linear_operator.utils.errors import NotPSDError
  from torch import Tensor
  from torch.distributions.multivariate_normal import Distribution, MultivariateNormal
  from torch.distributions.utils import lazy_property
  from torch.nn.functional import pad
label_desc: Use image node_id 4 for calling the UnifiedSkewNormal obj's underlying member method code with example usage: obj.rsample(sample_shape) and returns: unknown