def f(
    dfnum: float,
    dfden: float,
    size: NdShapeLike | None = None,
    dtype: npt.DTypeLike = np.float64,
) -> ndarray:
    """
    f(dfnum, dfden, size=None)

    Draw samples from an F distribution.

    Samples are drawn from an F distribution with specified parameters,
    `dfnum` (degrees of freedom in numerator) and `dfden` (degrees of
    freedom in denominator), where both parameters must be greater than
    zero.

    The random variate of the F distribution (also known as the
    Fisher distribution) is a continuous probability distribution
    that arises in ANOVA tests, and is the ratio of two chi-square
    variates.

    Parameters
    ----------
    dfnum : float
        Degrees of freedom in numerator, must be > 0.
    dfden : float
        Degrees of freedom in denominator, 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.

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

    See Also
    --------
    numpy.random.f

    Availability
    --------
    Multiple GPUs, Multiple CPUs
    """
    return get_static_generator().f(dfnum, dfden, size, dtype)

    f(dfnum, dfden, size=None)

    Draw samples from an F distribution.

    Samples are drawn from an F distribution with specified parameters,
    `dfnum` (degrees of freedom in numerator) and `dfden` (degrees of
    freedom in denominator), where both parameters must be greater than
    zero.

    The random variate of the F distribution (also known as the
    Fisher distribution) is a continuous probability distribution
    that arises in ANOVA tests, and is the ratio of two chi-square
    variates.

    Parameters
    ----------
    dfnum : float
        Degrees of freedom in numerator, must be > 0.
    dfden : float
        Degrees of freedom in denominator, 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.

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

    See Also
    --------
    numpy.random.f

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