def get_acph2_m2_min(m1: float) -> float:
    """
    Get minimum value of m2 (second moment) for ACPH(2) fitting.

    According to [1], M2 has only lower bound since pow(CV, 2) should be 
    greater or equal to 0.5.

    If m1 < 0, then `ValueError` is raised.

    Parameters
    ----------
    m1 : float

    Returns
    -------
    m2_min : float
        Minimum eligble value of the second moment.
    """
    if m1 < 0:
        raise ValueError(f"Expected m1 > 0, but m1 = {m1}")
    return 1.5 * m1**2