code: def chisquare(df, size=None, dtype=None, ctx=None):
      r"""
      chisquare(df, size=None, dtype=None, ctx=None)
  
      Draw samples from a chi-square distribution.
  
      When `df` independent random variables, each with standard normal
      distributions (mean 0, variance 1), are squared and summed, the
      resulting distribution is chi-square (see Notes).  This distribution
      is often used in hypothesis testing.
  
      Parameters
      ----------
      df : float or _Symbol of floats
           Number of degrees of freedom, must be > 0.
      size : int or tuple of ints, optional
          Output shape.  If the given shape is, e.g., ``(m, n, k)``, then
          ``m * n * k`` samples are drawn.  If size is ``None`` (default),
          a single value is returned if ``df`` is a scalar.  Otherwise,
          ``np.array(df).size`` samples are drawn.
      dtype : {'float16', 'float32', 'float64'}, optional
          Data type of output samples.
          When npx.is_np_default_dtype() returns False, default dtype is float32;
          When npx.is_np_default_dtype() returns True, default dtype is float64.
      ctx : Context, optional
          Device context of output. Default is current context.
  
      Returns
      -------
      out : _Symbol
          Drawn samples from the parameterized chi-square distribution.
  
      Raises
      ------
      ValueError
          When `df` <= 0 or when an inappropriate `size`
          is given.
  
      Notes
      -----
      The variable obtained by summing the squares of `df` independent,
      standard normally distributed random variables:
  
      .. math:: Q = \sum_{i=0}^{\mathtt{df}} X^2_i
  
      is chi-square distributed, denoted
  
      .. math:: Q \sim \chi^2_k.
  
      The probability density function of the chi-squared distribution is
  
      .. math:: p(x) = \frac{(1/2)^{k/2}}{\Gamma(k/2)}
                       x^{k/2 - 1} e^{-x/2},
  
      where :math:`\Gamma` is the gamma function,
  
      .. math:: \Gamma(x) = \int_0^{-\infty} t^{x - 1} e^{-t} dt.
  
      References
      ----------
      .. [1] NIST "Engineering Statistics Handbook"
             https://www.itl.nist.gov/div898/handbook/eda/section3/eda3666.htm
  
      """
      if dtype is None:
          dtype = np.float64 if is_np_default_dtype() else np.float32
      if ctx is None:
          ctx = current_context()
      if size == ():
          size = None
      return gamma(df / 2, 2, size=size, dtype=dtype, ctx=ctx)
  
imports: import numpy
  from ...context import current_context
  from ...util import is_np_default_dtype
  from .None import _internal
label_desc: Use image node_id 14 for calling a global function with example usage: chisquare(df, size, dtype, ctx) and returns: gamma