36 template<
typename RNG>
38 unsigned int i = m_diceroll(gen);
39 double c = g_coinflip(gen);
40 return c < m_blocks[i].prob ? i : m_blocks[i].alias;
60 template<
typename RNG>
63 return m_translation[i];
Usage is very simple, construct with a vector of probabilities, then use as a distribution from the s...
static uniform_real_distribution< double > g_coinflip
Time Dependent Person DataType.
vector< AliasBlock > m_blocks
unsigned int operator()(RNG &gen)
uniform_int_distribution< unsigned int > m_diceroll
unsigned int operator()(RNG &gen)
map< unsigned int, unsigned int > m_translation