class_docstr: A multivariate t-distributed random variable.
  
  The `loc` parameter specifies the location. The `shape` parameter specifies
  the positive semidefinite shape matrix. The `df` parameter specifies the
  degrees of freedom.
  
  In addition to calling the methods below, the object itself may be called
  as a function to fix the location, shape matrix, and degrees of freedom
  parameters, returning a "frozen" multivariate t-distribution random.
  
  Methods
  -------
  ``pdf(x, loc=None, shape=1, df=1, allow_singular=False)``
      Probability density function.
  ``logpdf(x, loc=None, shape=1, df=1, allow_singular=False)``
      Log of the probability density function.
  ``rvs(loc=None, shape=1, df=1, size=1, random_state=None)``
      Draw random samples from a multivariate t-distribution.
  
  Parameters
  ----------
  x : array_like
      Quantiles, with the last axis of `x` denoting the components.
  %(_mvt_doc_default_callparams)s
  %(_doc_random_state)s
  
  Notes
  -----
  %(_mvt_doc_callparams_note)s
  The matrix `shape` must be a (symmetric) positive semidefinite matrix. The
  determinant and inverse of `shape` are computed as the pseudo-determinant
  and pseudo-inverse, respectively, so that `shape` does not need to have
  full rank.
  
  The probability density function for `multivariate_t` is
  
  .. math::
  
      f(x) = \frac{\Gamma(\nu + p)/2}{\Gamma(\nu/2)\nu^{p/2}\pi^{p/2}|\Sigma|^{1/2}}
             \exp\left[1 + \frac{1}{\nu} (\mathbf{x} - \boldsymbol{\mu})^{\top}
             \boldsymbol{\Sigma}^{-1}
             (\mathbf{x} - \boldsymbol{\mu}) \right]^{-(\nu + p)/2},
  
  where :math:`p` is the dimension of :math:`\mathbf{x}`,
  :math:`\boldsymbol{\mu}` is the :math:`p`-dimensional location,
  :math:`\boldsymbol{\Sigma}` the :math:`p \times p`-dimensional shape
  matrix, and :math:`\nu` is the degrees of freedom.
  
  .. versionadded:: 1.6.0
  
  Examples
  --------
  >>> import matplotlib.pyplot as plt
  >>> from scipy.stats import multivariate_t
  >>> x, y = np.mgrid[-1:3:.01, -2:1.5:.01]
  >>> pos = np.dstack((x, y))
  >>> rv = multivariate_t([1.0, -0.5], [[2.1, 0.3], [0.3, 1.5]], df=2)
  >>> fig, ax = plt.subplots(1, 1)
  >>> ax.set_aspect('equal')
  >>> plt.contourf(x, y, rv.pdf(pos))
docstr: Draw random samples from a multivariate t-distribution.
  
  Parameters
  ----------
  %(_mvt_doc_default_callparams)s
  size : integer, optional
      Number of samples to draw (default 1).
  %(_doc_random_state)s
  
  Returns
  -------
  rvs : ndarray or scalar
      Random variates of size (`size`, `P`), where `P` is the
      dimension of the random variable.
  
  Examples
  --------
  >>> from scipy.stats import multivariate_t
  >>> x = [0.4, 5]
  >>> loc = [0, 1]
  >>> shape = [[1, 0.1], [0.1, 1]]
  >>> df = 7
  >>> multivariate_t.rvs(loc, shape, df)
  array([[0.93477495, 3.00408716]])
docstr_tok: ["Draw","random","samples","from","a","multivariate","t-distribution",".","Parameters","--","--","--","--","--","%","(","_mvt_doc_default_callparams",")","s","size",":","integer",",","optional","Number","of","samples","to","draw","(","default","1",")",".","%","(","_doc_random_state",")","s","Returns","--","--","--","-","rvs",":","ndarray","or","scalar","Random","variates","of","size","(","`","size","`",",","`","P","`",")",",","where","`","P","`","is","the","dimension","of","the","random","variable",".","Examples","--","--","--","--",">",">",">","from","scipy.stats","import","multivariate_t",">",">",">","x","=","[","0.4",",","5","]",">",">",">","loc","=","[","0",",","1","]",">",">",">","shape","=","[","[","1",",","0.1","]",",","[","0.1",",","1","]","]",">",">",">","df","=","7",">",">",">","multivariate_t.rvs","(","loc",",","shape",",","df",")","array","(","[","[","0.93477495",",","3.00408716","]","]",")"]
code: def rvs(self, loc=None, shape=1, df=1, size=1, random_state=None):
      """
      Draw random samples from a multivariate t-distribution.
  
      Parameters
      ----------
      %(_mvt_doc_default_callparams)s
      size : integer, optional
          Number of samples to draw (default 1).
      %(_doc_random_state)s
  
      Returns
      -------
      rvs : ndarray or scalar
          Random variates of size (`size`, `P`), where `P` is the
          dimension of the random variable.
  
      Examples
      --------
      >>> from scipy.stats import multivariate_t
      >>> x = [0.4, 5]
      >>> loc = [0, 1]
      >>> shape = [[1, 0.1], [0.1, 1]]
      >>> df = 7
      >>> multivariate_t.rvs(loc, shape, df)
      array([[0.93477495, 3.00408716]])
  
      """
      # For implementation details, see equation (3):
      #
      #    Hofert, "On Sampling from the Multivariatet Distribution", 2013
      #     http://rjournal.github.io/archive/2013-2/hofert.pdf
      #
      dim, loc, shape, df = self._process_parameters(loc, shape, df)
      if random_state is not None:
          rng = check_random_state(random_state)
      else:
          rng = self._random_state
  
      if np.isinf(df):
          x = np.ones(size)
      else:
          x = rng.chisquare(df, size=size) / df
  
      z = rng.multivariate_normal(np.zeros(dim), shape, size=size)
      samples = loc + z / np.sqrt(x)[:, None]
      return _squeeze_output(samples)
  
imports: import numpy
  import scipy.linalg
  from scipy._lib import doccer
  from scipy.special import gammaln
  from scipy._lib._util import check_random_state
  from scipy.stats import mvn
label_desc: Use image node_id 6 for calling the multivariate_t_gen obj's underlying member method code with example usage: obj.rvs(loc, shape, df, size, random_state) and returns: _squeeze_output