Draw random samples from a generalized gamma distribution using the
parameterization from flexsurv. Written in C++
for speed. Equivalent to flexsurv::rgengamma.
fast_rgengamma(n, mu = 0, sigma = 1, Q)Number of random observations to draw.
Vector of location parameters. and columns correspond to rates during specified time intervals.
Vector of scale parameters as described in flexsurv.
Vector of shape parameters.
A vector of random samples from the generalized gamma distribution. The length of the sample is determined by n. The numerical arguments other than n are recycled so that the number of samples is equal to n.
n <- 1000
m <- 2 ; s <- 1.7; q <- 1
ptm <- proc.time()
r1 <- fast_rgengamma(n, mu = m, sigma = s, Q = q)
proc.time() - ptm
#> user system elapsed
#> 0.001 0.000 0.001
ptm <- proc.time()
library("flexsurv")
r2 <- flexsurv::rgengamma(n, mu = m, sigma = s, Q = q)
proc.time() - ptm
#> user system elapsed
#> 0.003 0.000 0.003
summary(r1)
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 0.0000 0.9654 4.2415 11.8841 13.6872 195.9726
summary(r2)
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 0.0000 0.8013 3.7548 12.0234 13.3860 281.9889