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

    Draws samples in [0, 1] from a power distribution with positive
    exponent a - 1.

    Also known as the power function distribution.

    Parameters
    ----------
    a : float
        Parameter of the distribution. Must be non-negative.
    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 power distribution.

    Raises
    ------
    ValueError
        If a <= 0.

    See Also
    --------
    numpy.random.power

    Availability
    --------
    Multiple GPUs, Multiple CPUs
    """
    return get_static_generator().power(a, size, dtype)

    power(a, size=None)

    Draws samples in [0, 1] from a power distribution with positive
    exponent a - 1.

    Also known as the power function distribution.

    Parameters
    ----------
    a : float
        Parameter of the distribution. Must be non-negative.
    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 power distribution.

    Raises
    ------
    ValueError
        If a <= 0.

    See Also
    --------
    numpy.random.power

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