library(scmc)
scmc_gamma <- univariate_sampler(function(p) qgamma(p, 5, 2),
optimal_points(5, norm_moment_fun))
scmc_gamma_c <- univariate_sampler(function(p) qgamma(p, 5, 2),
optimal_points(5, norm_moment_fun),
compile_c = TRUE)
microbenchmark(rnorm = rnorm(1e5), scmc = abs(scmc_gamma(1e5)),
scmc_C = abs(scmc_gamma_c(1e5)),
rgamma = rgamma(1e5, 5, 2))
## Unit: milliseconds
## expr min lq mean median uq max neval
## rnorm 13.515143 13.635918 14.999591 14.263949 16.268135 20.423739 100
## scmc 4.694448 4.922791 6.020736 5.303754 7.029676 9.632422 100
## scmc_C 3.067484 3.185539 6.983829 3.555152 6.727582 138.167565 100
## rgamma 18.434582 18.603646 20.268926 18.766650 22.229071 26.323712 100