Пример #1
0
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;
}
Пример #2
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;

}