def METHOD_NAME(self, params, T, Xs):
    lambda_ = Xs["lambda_"] @ params["lambda_"]
    sigma_ = safe_exp(Xs["sigma_"] @ params["sigma_"])
    mu_ = Xs["mu_"] @ params["mu_"]
    Z = (log(T) - mu_) / sigma_
    ilambda_2 = 1 / lambda_ ** 2
    exp_term = np.clip(safe_exp(lambda_ * Z) * ilambda_2, 1e-300, 1e25)
    return np.where(lambda_ > 0, gammaincc(ilambda_2, exp_term), gammainc(ilambda_2, exp_term))