Desenho binomial aleatório Rcpp vetorizado
Esta é uma pergunta subsequente desta:Gerando a mesma variável aleatória em Rcpp e R
Estou tentando acelerar uma chamada vetorizada para rbinom deste formulário:
x <- c(0.1,0.4,0.6,0.7,0.8)
rbinom(length(x),1 ,x)
No código ativo de x, há um vetor de comprimento variável (mas geralmente numerado em milhões). Não tenho experiência com o Rcpp, mas estava pensando em usar o Rcpp para acelerar isso. A partir da pergunta vinculada, este código Rcpp foi sugerido para chamadas rbinom não vetorizadas por @Dirk Eddelbuettel:
cppFunction("NumericVector cpprbinom(int n, double size, double prob) { \
return(rbinom(n, size, prob)); }")
set.seed(42); cpprbinom(10, 1, 0.5)
.... e é duas vezes mais rápido que a opção não Rcpp, mas não pode lidar com minha versão vetorizada
cpprbinom(length(x), 1, x)
Como o código Rcpp pode ser modificado para implementar isso?
obrigado