def METHOD_NAME(
    L: ArrayLike,
    constants: Structure = CONSTANTS_DAVINCI_INTERMEDIATE,
) -> NDArrayFloat:
    """
    Define the *DaVinci Intermediate* opto-electronic transfer function.
    Parameters
    ----------
    L
        Linear light value :math`L`.
    constants
        *DaVinci Intermediate* colour component transfer function constants.
    Returns
    -------
    :class:`numpy.ndarray`
        Encoded value :math:`V`.
    Notes
    -----
    +------------+-----------------------+---------------+
    | **Domain** | **Scale - Reference** | **Scale - 1** |
    +============+=======================+===============+
    | ``L``      | [0, 1]                | [0, 1]        |
    +------------+-----------------------+---------------+
    +------------+-----------------------+---------------+
    | **Range**  | **Scale - Reference** | **Scale - 1** |
    +============+=======================+===============+
    | ``V``      | [0, 1]                | [0, 1]        |
    +------------+-----------------------+---------------+
    References
    ----------
    :cite:`BlackmagicDesign2020a`
    Examples
    --------
    >>> oetf_DaVinciIntermediate(0.18)  # doctest: +ELLIPSIS
    0.3360432...
    """
    L = to_domain_1(L)
    DI_LIN_CUT = constants.DI_LIN_CUT
    DI_A = constants.DI_A
    DI_B = constants.DI_B
    DI_C = constants.DI_C
    DI_M = constants.DI_M
    V_out = np.where(
        L <= DI_LIN_CUT,
        L * DI_M,
        DI_C * (np.log2(L + DI_A) + DI_B),
    )
    return as_float(from_range_1(V_out))