This class is for efficiently drawing random values from a categorical distribution with a large number of categories.
More...
#include <GDistribution.h>
|
| | GCategoricalSampler (size_t categories, const double *pDistribution) |
| | categories specifies the number of categories. pDistribution should specify a probability value for each category. They should sum to 1. More...
|
| |
| | ~GCategoricalSampler () |
| |
| size_t | draw (double d) |
| | d should be a random uniform value from 0 to 1. The corresponding zero-based category index is returned. This method will take log(categories) time. More...
|
| |
|
| std::map< double, size_t > | m_map |
| |
This class is for efficiently drawing random values from a categorical distribution with a large number of categories.
| GClasses::GCategoricalSampler::GCategoricalSampler |
( |
size_t |
categories, |
|
|
const double * |
pDistribution |
|
) |
| |
categories specifies the number of categories. pDistribution should specify a probability value for each category. They should sum to 1.
| GClasses::GCategoricalSampler::~GCategoricalSampler |
( |
| ) |
|
|
inline |
| size_t GClasses::GCategoricalSampler::draw |
( |
double |
d | ) |
|
d should be a random uniform value from 0 to 1. The corresponding zero-based category index is returned. This method will take log(categories) time.
| std::map<double,size_t> GClasses::GCategoricalSampler::m_map |
|
protected |