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)

## Arguments

n 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.

## Value

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.

## Examples

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.002   0.000   0.002 ptm <- proc.time()
library("flexsurv")
r2 <- flexsurv::rgengamma(n, mu = m, sigma = s, Q = q)
proc.time() - ptm
#>    user  system elapsed
#>   0.002   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