class_docstr: Engine for qMC sampling from a multivariate Normal `N(\mu, \Sigma)`.
  
  By default, this implementation uses Box-Muller transformed Sobol samples
  following pg. 123 in [Pages2018numprob]_. To use the inverse transform
  instead, set `inv_transform=True`.
  
  Example:
      >>> mean = torch.tensor([1.0, 2.0])
      >>> cov = torch.tensor([[1.0, 0.25], [0.25, 2.0]])
      >>> engine = MultivariateNormalQMCEngine(mean, cov)
      >>> samples = engine.draw(16)
docstr: Draw `n` qMC samples from the multivariate Normal.
  
  Args:
      n: The number of samples to draw. As a best practice, use powers of 2.
      out: An option output tensor. If provided, draws are put into this
          tensor, and the function returns None.
  
  Returns:
      A `n x d` tensor of samples if `out=None` and `None` otherwise.
code: def draw(
      self, n: int = 1, out: Optional[Tensor] = None
  ) -> Optional[Tensor]:
      r"""Draw `n` qMC samples from the multivariate Normal.
  
      Args:
          n: The number of samples to draw. As a best practice, use powers of 2.
          out: An option output tensor. If provided, draws are put into this
              tensor, and the function returns None.
  
      Returns:
          A `n x d` tensor of samples if `out=None` and `None` otherwise.
      """
      dtype = out.dtype if out is not None else self._mean.dtype
      device = out.device if out is not None else self._mean.device
      base_samples = self._normal_engine.draw(n, dtype=dtype).to(
          device=device
      )
      corr_mat = self._corr_matrix.to(dtype=dtype, device=device)
      mean = self._mean.to(dtype=dtype, device=device)
      qmc_samples = base_samples @ corr_mat + mean
      if out is None:
          return qmc_samples
      else:
          out.copy_(qmc_samples)
  
file_path: botorch/botorch/sampling/qmc.py
imports: from __future__ import annotations
  import math
  from typing import Optional
  import torch
  from torch import Tensor
  from torch.quasirandom import SobolEngine
label_desc: Use image node_id 2 for calling the MultivariateNormalQMCEngine obj's underlying member method code with example usage: obj.draw(n, out) and returns: qmc_samples