import math


def munsell_value_mccamy1987(Y):
    """
    Returns the *Munsell* value :math:`V` of given *luminance* :math:`Y` using
    *McCamy (1987)*  method.

    Parameters
    ----------
    Y : numeric
        *luminance* :math:`Y`.

    Returns
    -------
    numeric
        *Munsell* value :math:`V`.

    Notes
    -----
    -   Input *Y* is in domain [0, 100].
    -   Output *V* is in domain [0, 10].

    References
    ----------
    .. [8] `Standard Test Method for Specifying Color by the Munsell System -
            ASTM-D1535-1989
            <https://law.resource.org/pub/us/cfr/ibr/003/astm.d1535.1989.pdf>`_,  # noqa
            DOI: http://dx.doi.org/10.1520/D1535-13

    Examples
    --------
    >>> munsell_value_mccamy1987(10.08)  # doctest: +ELLIPSIS
    3.7347235...
    """

    if Y <= 0.9:
        V = 0.87445 * (Y ** 0.9967)
    else:
        V = (2.49268 * (Y ** (1 / 3)) - 1.5614 -
             (0.985 / (((0.1073 * Y - 3.084) ** 2) + 7.54)) +
             (0.0133 / (Y ** 2.3)) +
             0.0084 * math.sin(4.1 * (Y ** (1 / 3)) + 1) +
             (0.0221 / Y) * math.sin(0.39 * (Y - 2)) -
             (0.0037 / (0.44 * Y)) * math.sin(1.28 * (Y - 0.53)))
    return V