SST  13.0.0
StructuralSimulationToolkit
SST::RNG::DiscreteDistribution Class Reference

Creates a discrete distribution for use within SST. More...

#include "sst/core/rng/discrete.h"

Inheritance diagram for SST::RNG::DiscreteDistribution:
SST::RNG::RandomDistribution

Public Member Functions

 DiscreteDistribution (const double *probs, const uint32_t probsCount)
 Creates a discrete probability distribution. More...
 
 DiscreteDistribution (const double *probs, const uint32_t probsCount, SST::RNG::Random *baseDist)
 Creates an exponential distribution with a specific lambda and a base random number generator. More...
 
 ~DiscreteDistribution ()
 Destroys the exponential distribution.
 
double getNextDouble ()
 Gets the next (random) double value in the distribution. More...
 
- Public Member Functions inherited from SST::RNG::RandomDistribution
virtual ~RandomDistribution ()
 Destroys the distribution.
 
 RandomDistribution ()
 Creates the base (abstract) class of a distribution.
 

Protected Attributes

SST::RNG::RandombaseDistrib
 Sets the base random number generator for the distribution.
 
bool deleteDistrib
 Controls whether the base distribution should be deleted when this class is destructed.
 
double * probabilities
 The discrete probability list.
 
uint32_t probCount
 Count of discrete probabilities.
 

Detailed Description

Creates a discrete distribution for use within SST.

This distribution is the same across platforms and compilers.

Constructor & Destructor Documentation

◆ DiscreteDistribution() [1/2]

SST::RNG::DiscreteDistribution::DiscreteDistribution ( const double *  probs,
const uint32_t  probsCount 
)
inline

Creates a discrete probability distribution.

Parameters
probsAn array of probabilities for each outcome
probsCountThe number of discrete outcomes

◆ DiscreteDistribution() [2/2]

SST::RNG::DiscreteDistribution::DiscreteDistribution ( const double *  probs,
const uint32_t  probsCount,
SST::RNG::Random baseDist 
)
inline

Creates an exponential distribution with a specific lambda and a base random number generator.

Parameters
lambdaThe lambda of the exponential distribution
baseDistThe base random number generator to take the distribution from.

Member Function Documentation

◆ getNextDouble()

double SST::RNG::DiscreteDistribution::getNextDouble ( )
inlinevirtual

Gets the next (random) double value in the distribution.

Returns
The next random double from the discrete distribution, this is the double converted of the index where the probability is located

Implements SST::RNG::RandomDistribution.


The documentation for this class was generated from the following file: