def vonmises(
    mu: float,
    kappa: float,
    size: NdShapeLike | None = None,
    dtype: npt.DTypeLike = np.float64,
) -> ndarray:
    """
    vonmises(mu, kappa, size=None)

    Draw samples from a von Mises distribution.

    Samples are drawn from a von Mises distribution with specified mode
    (mu) and dispersion (kappa), on the interval [-pi, pi].

    The von Mises distribution (also known as the circular normal
    distribution) is a continuous probability distribution on the unit
    circle.  It may be thought of as the circular analogue of the normal
    distribution.

    Parameters
    ----------
    mu : float
        Mode ("center") of the distribution.
    kappa : float
        Dispersion of the distribution, has to 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.  Default is None, in which case a
        single value is returned.

    Returns
    -------
    out : ndarray or scalar
        Drawn samples from the parameterized von Mises distribution.

    See Also
    --------
    numpy.random.vonmises

    Availability
    --------
    Multiple GPUs, Multiple CPUs
    """
    return get_static_generator().vonmises(mu, kappa, size, dtype)

    vonmises(mu, kappa, size=None)

    Draw samples from a von Mises distribution.

    Samples are drawn from a von Mises distribution with specified mode
    (mu) and dispersion (kappa), on the interval [-pi, pi].

    The von Mises distribution (also known as the circular normal
    distribution) is a continuous probability distribution on the unit
    circle.  It may be thought of as the circular analogue of the normal
    distribution.

    Parameters
    ----------
    mu : float
        Mode ("center") of the distribution.
    kappa : float
        Dispersion of the distribution, has to 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.  Default is None, in which case a
        single value is returned.

    Returns
    -------
    out : ndarray or scalar
        Drawn samples from the parameterized von Mises distribution.

    See Also
    --------
    numpy.random.vonmises

    Availability
    --------
    Multiple GPUs, Multiple CPUs
    
cupynumeric/random/_random.py