12 #ifndef SST_CORE_RNG_DISCRETE_H 13 #define SST_CORE_RNG_DISCRETE_H 48 for ( uint32_t i = 0; i < probsCount; i++ ) {
70 for ( uint32_t i = 0; i < probsCount; i++ ) {
75 baseDistrib = baseDist;
98 const double nextD = baseDistrib->nextUniform();
108 return (
double)index;
123 SST_SER(baseDistrib);
127 if ( ser.mode() == SST::Core::Serialization::serializer::UNPACK ) {
131 for ( uint32_t i = 0; i <
probCount; i++ ) {
167 #endif // SST_CORE_RNG_DISCRETE_H Implements the base class for random number generators for the SST core.
Definition: rng.h:29
Definition: constant.h:18
This class is basically a wrapper for objects to declare the order in which their members should be s...
Definition: serializer.h:42
double getNextDouble() override
Gets the next (random) double value in the distribution.
Definition: discrete.h:96
uint32_t probCount
Count of discrete probabilities.
Definition: discrete.h:160
Creates a discrete distribution for use within SST.
Definition: discrete.h:31
Implements a Mersenne-based RNG for use in the SST core or components.
Definition: mersenne.h:34
DiscreteDistribution(const double *probs, const uint32_t probsCount)
Creates a discrete probability distribution.
Definition: discrete.h:40
double * probabilities
The discrete probability list.
Definition: discrete.h:155
ImplementSerializable(DiscreteDistribution) protected bool deleteDistrib
Serialization macro.
Definition: discrete.h:139
void serialize_order(SST::Core::Serialization::serializer &ser) override
Serialization function for checkpoint.
Definition: discrete.h:121
~DiscreteDistribution()
Destroys the exponential distribution.
Definition: discrete.h:82
DiscreteDistribution(const double *probs, const uint32_t probsCount, Random *baseDist)
Creates an exponential distribution with a specific lambda and a base random number generator...
Definition: discrete.h:62
DiscreteDistribution()
Default constructor.
Definition: discrete.h:114
Base class of statistical distributions in SST.
Definition: distrib.h:23