sggamma <- function(beta, sigma, lambda, timet) { s <- lambda^(-2) r <- s * exp(( - beta * lambda)/sigma) # consider timet below exp(-500) at exp(-500) to avoid division by zero timet[timet0)*(1-pgamma(timet^b, shape=s, rate=r)) surv <- surv+(lambda<0)*pgamma(timet^b, shape=s, rate=r) surv[surv