code: def normal(
      loc=0.0, scale=1.0, size=None, dtype=None, device=None, out=None
  ):
      r"""Draw random samples from a normal (Gaussian) distribution.
  
      Samples are distributed according to a normal distribution parametrized
      by *loc* (mean) and *scale* (standard deviation).
  
      Parameters
      ----------
      loc : float, optional
          Mean (centre) of the distribution.
      scale : float, optional
          Standard deviation (spread or "width") of the distribution.
      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 scalar tensor containing
          a single value is returned if loc and scale are both scalars. Otherwise,
          ``np.broadcast(low, high).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.
      device : Device, optional
          Device context of output, default is current device.
      out : ``ndarray``, optional
          Store output to an existing ``ndarray``.
  
      Returns
      -------
      out : ndarray
          Drawn samples from the parameterized `normal distribution` [1]_.
  
      Notes
      -----
      The probability density for the Gaussian distribution is
  
      .. math:: p(x) = \frac{1}{\sqrt{ 2 \pi \sigma^2 }}
                       e^{ - \frac{ (x - \mu)^2 } {2 \sigma^2} },
  
      where :math:`\mu` is the mean and :math:`\sigma` the standard
      deviation. The square of the standard deviation, :math:`\sigma^2`,
      is called the variance.
  
      The function has its peak at the mean, and its "spread" increases with
      the standard deviation (the function reaches 0.607 times its maximum at
      :math:`x + \sigma` and :math:`x - \sigma` [2]_).  This implies that
      `numpy.random.normal` is more likely to return samples lying close to
      the mean, rather than those far away.
  
      References
      ----------
      .. [1] Wikipedia, "Normal distribution",
             https://en.wikipedia.org/wiki/Normal_distribution
      .. [2] P. R. Peebles Jr., "Central Limit Theorem" in "Probability,
             Random Variables and Random Signal Principles", 4th ed., 2001,
             pp. 51, 51, 125.
  
      Examples
      --------
      >>> mu, sigma = 0, 0.1 # mean and standard deviation
      >>> s = np.random.normal(mu, sigma, 1000)
  
      Verify the mean and the variance:
  
      >>> np.abs(mu - np.mean(s)) < 0.01
      array(True)
      """
      return _mx_nd_np.random.normal(
          loc, scale, size, dtype, 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 3 for calling a global function with example usage: normal(loc, scale, size, dtype, device, out) and returns: _mx_nd_np