def METHOD_NAME(
    XYZ: ArrayLike,
    illuminant: ArrayLike = CCS_ILLUMINANTS[
        "CIE 1931 2 Degree Standard Observer"
    ]["D65"],
) -> NDArrayFloat:
    """
    Convert from *CIE XYZ* tristimulus values to *CIE 1964 U\\*V\\*W\\**
    colourspace.
    Parameters
    ----------
    XYZ
        *CIE XYZ* tristimulus values.
    illuminant
        Reference *illuminant* *CIE xy* chromaticity coordinates or *CIE xyY*
        colourspace array.
    Returns
    -------
    :class:`numpy.ndarray`
        *CIE 1964 U\\*V\\*W\\** colourspace array.
    Notes
    -----
    +----------------+-----------------------+-----------------+
    | **Domain**     | **Scale - Reference** | **Scale - 1**   |
    +================+=======================+=================+
    | ``XYZ``        | [0, 100]              | [0, 1]          |
    +----------------+-----------------------+-----------------+
    | ``illuminant`` | [0, 1]                | [0, 1]          |
    +----------------+-----------------------+-----------------+
    +----------------+-----------------------+-----------------+
    | **Range**      | **Scale - Reference** | **Scale - 1**   |
    +================+=======================+=================+
    | ``UVW``        | ``U`` : [-100, 100]   | ``U`` : [-1, 1] |
    |                |                       |                 |
    |                | ``V`` : [-100, 100]   | ``V`` : [-1, 1] |
    |                |                       |                 |
    |                | ``W`` : [0, 100]      | ``W`` : [0, 1]  |
    +----------------+-----------------------+-----------------+
    References
    ----------
    :cite:`Wikipedia2008a`
    Examples
    --------
    >>> import numpy as np
    >>> XYZ = np.array([0.20654008, 0.12197225, 0.05136952]) * 100
    >>> XYZ_to_UVW(XYZ)  # doctest: +ELLIPSIS
    array([ 94.5503572...,  11.5553652...,  40.5475740...])
    """
    XYZ = to_domain_100(XYZ)
    xy = XYZ_to_xy(XYZ / 100)
    xy_n = xyY_to_xy(illuminant)
    Y = XYZ[..., 1]
    uv = xy_to_UCS_uv(xy)
    uv_0 = xy_to_UCS_uv(xy_n)
    W = 25 * spow(Y, 1 / 3) - 17
    U, V = tsplit(13 * W[..., None] * (uv - uv_0))
    UVW = tstack([U, V, W])
    return from_range_100(UVW)