docstr: Draw samples from the Truncated Multivariate 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","Truncated","Multivariate","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 Truncated Multivariate Normal.
  
      Args:
          sample_shape: The shape of the samples.
  
      Returns:
          The (sample_shape x batch_shape x event_shape) tensor of samples.
      """
      num_samples = sample_shape.numel() if sample_shape else 1
      return self.loc + self.sampler.draw(n=num_samples).view(
          *sample_shape, -1
      )
  
file_path: botorch/botorch/utils/probability/truncated_multivariate_normal.py
imports: from __future__ import annotations
  from typing import Optional, Sequence
  import torch
  from botorch.utils.probability.lin_ess import LinearEllipticalSliceSampler
  from botorch.utils.probability.mvnxpb import MVNXPB
  from botorch.utils.probability.utils import get_constants_like
  from torch import Tensor
  from torch.distributions.multivariate_normal import MultivariateNormal
label_desc: Use image node_id 3 for calling the TruncatedMultivariateNormal obj's underlying member method code with example usage: obj.rsample(sample_shape) and returns: unknown