code: def rayleigh(scale=1.0, size=None, device=None, out=None):
      r"""Draw samples from a Rayleigh distribution.
  
      The :math:`\chi` and Weibull distributions are generalizations of the
      Rayleigh.
  
      Parameters
      ----------
      scale : float, optional
          Scale, also equals the mode. Must be non-negative. Default is 1.
      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 ``scale`` is a scalar.  Otherwise,
          ``np.array(scale).size`` samples are drawn.
      device : Device, optional
          Device context of output, default is current device.
      out : ``ndarray``, optional
          Store output to an existing ``ndarray``.
  
      Returns
      -------
      out : ndarray or scalar
          Drawn samples from the parameterized Rayleigh distribution.
      """
      return _mx_nd_np.random.rayleigh(scale, size, device, out)
  
imports: from ..ndarray import numpy
  from ..random import seed
  from ..util import wrap_ctx_to_device_func
label_desc: Use image node_id 10 for calling a global function with example usage: rayleigh(scale, size, device, out) and returns: _mx_nd_np