int main() { xorshift_sample(); mersenne_twister_sample(); fibonacci_mod_m_sample(); linear_recurrence_sample(); linear_recurrence_sample2(); series_simple_counting_sample(); series_combinatoric_sample(); dirichlet_sample(); return 0; }
//' Samples from a Dirichlet distribution given a hyperparameter //' //' @param num_elements the dimention of the Dirichlet distribution //' @param alpha the hyperparameter vector (a column vector) //' //' @return returns a Dirichlet sample (a column vector) //' //' @note //' Author: Clint P. George //' //' Created on: 2014 //' //' @family utils //' //' @export // [[Rcpp::export]] arma::vec sample_dirichlet(unsigned int num_elements, arma::vec alpha){ arma::vec dirichlet_sample = arma::zeros<arma::vec>(num_elements); for ( register unsigned int i = 0; i < num_elements; i++ ) dirichlet_sample(i) = rgamma(1, alpha(i), 1.0)(0); // R::rgamma(1, alpha(i)); dirichlet_sample /= accu(dirichlet_sample); return dirichlet_sample; }