def METHOD_NAME(self, params, times):
    mu_, ln_sigma_, lambda_ = params
    ilambda_2 = 1 / lambda_ ** 2
    Z = (log(times) - mu_) / safe_exp(ln_sigma_)
    clipped_exp = np.clip(safe_exp(lambda_ * Z) * ilambda_2, 1e-300, 1e20)
    if lambda_ > 0:
        v = (
            log(lambda_)
            - log(times)
            - ln_sigma_
            - gammaln(ilambda_2)
            + -2 * log(lambda_) * ilambda_2
            - clipped_exp
            + Z / lambda_
            - gammainccln(ilambda_2, clipped_exp)
        )
    elif lambda_ < 0:
        v = (
            log(-lambda_)
            - log(times)
            - ln_sigma_
            - gammaln(ilambda_2)
            - 2 * log(-lambda_) * ilambda_2
            - clipped_exp
            + Z / lambda_
            - gammaincln(ilambda_2, clipped_exp)
        )
    else:
        v = norm.logpdf(Z, loc=0, scale=1) - ln_sigma_ - log(times) - norm.logsf(Z)
    return v