def METHOD_NAME(
    E: ArrayLike,
    r: ArrayLike = 0.5,
    constants: Structure = CONSTANTS_ARIBSTDB67,
) -> NDArrayFloat:
    """
    Define *ARIB STD-B67 (Hybrid Log-Gamma)* opto-electrical transfer
    function (OETF).
    Parameters
    ----------
    E
        Voltage normalised by the reference white level and proportional to
        the implicit light intensity that would be detected with a reference
        camera color channel R, G, B.
    r
        Video level corresponding to reference white level.
    constants
        *ARIB STD-B67 (Hybrid Log-Gamma)* constants.
    Returns
    -------
    :class:`numpy.ndarray`
        Resulting non-linear signal :math:`E'`.
    Notes
    -----
    +------------+-----------------------+---------------+
    | **Domain** | **Scale - Reference** | **Scale - 1** |
    +============+=======================+===============+
    | ``E``      | [0, 1]                | [0, 1]        |
    +------------+-----------------------+---------------+
    +------------+-----------------------+---------------+
    | **Range**  | **Scale - Reference** | **Scale - 1** |
    +============+=======================+===============+
    | ``E_p``    | [0, 1]                | [0, 1]        |
    +------------+-----------------------+---------------+
    -   This definition uses the *mirror* negative number handling mode of
        :func:`colour.models.gamma_function` definition to the sign of negative
        numbers.
    References
    ----------
    :cite:`AssociationofRadioIndustriesandBusinesses2015a`
    Examples
    --------
    >>> oetf_ARIBSTDB67(0.18)  # doctest: +ELLIPSIS
    0.2121320...
    """
    E = to_domain_1(E)
    r = as_float_array(r)
    a = constants.a
    b = constants.b
    c = constants.c
    E_p = np.where(
        E <= 1, r * gamma_function(E, 0.5, "mirror"), a * np.log(E - b) + c
    )
    return as_float(from_range_1(E_p))