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