def METHOD_NAME(
    t: npt.ArrayLike,
    f0: float = 10,
    taper: Optional[Callable] = None,
) -> Tuple[npt.ArrayLike, npt.ArrayLike, int]:
    r"""Ricker wavelet
    Create a Ricker wavelet given time axis ``t`` and central frequency ``f_0``
    Parameters
    ----------
    t : :obj:`numpy.ndarray`
        Time axis (positive part including zero sample)
    f0 : :obj:`float`, optional
        Central frequency
    taper : :obj:`func`, optional
        Taper to apply to wavelet (must be a function that
        takes the size of the window as input
    Returns
    -------
    w : :obj:`numpy.ndarray`
        Wavelet
    t : :obj:`numpy.ndarray`
        Symmetric time axis
    wcenter : :obj:`int`
        Index of center of wavelet
    """
    t = _tcrop(t)
    t = np.concatenate((np.flipud(-t[1:]), t), axis=0)
    w = (1 - 2 * (np.pi * f0 * t) ** 2) * np.exp(-((np.pi * f0 * t) ** 2))
    wcenter = np.argmax(np.abs(w))
    # apply taper
    if taper is not None:
        w *= taper(len(t))
    return w, t, wcenter