Nori
|
Discrete probability distribution. More...
#include <dpdf.h>
Public Member Functions | |
DiscretePDF (size_t nEntries=0) | |
Allocate memory for a distribution with the given number of entries. | |
void | clear () |
Clear all entries. | |
void | reserve (size_t nEntries) |
Reserve memory for a certain number of entries. | |
void | append (float pdfValue) |
Append an entry with the specified discrete probability. | |
size_t | size () const |
Return the number of entries so far. | |
float | operator[] (size_t entry) const |
Access an entry by its index. | |
bool | isNormalized () const |
Have the probability densities been normalized? | |
float | getSum () const |
Return the original (unnormalized) sum of all PDF entries. | |
float | getNormalization () const |
Return the normalization factor (i.e. the inverse of getSum()) | |
float | normalize () |
Normalize the distribution. | |
size_t | sample (float sampleValue) const |
Transform a uniformly distributed sample to the stored distribution | |
size_t | sample (float sampleValue, float &pdf) const |
Transform a uniformly distributed sample to the stored distribution | |
size_t | sampleReuse (float &sampleValue) const |
Transform a uniformly distributed sample to the stored distribution | |
size_t | sampleReuse (float &sampleValue, float &pdf) const |
Transform a uniformly distributed sample. | |
QString | toString () const |
Turn the underlying distribution into a human-readable string format. |
Discrete probability distribution.
This data structure can be used to transform uniformly distributed samples to a stored discrete probability distribution.
DiscretePDF::DiscretePDF | ( | size_t | nEntries = 0 | ) | [inline, explicit] |
void DiscretePDF::append | ( | float | pdfValue | ) | [inline] |
float DiscretePDF::getNormalization | ( | ) | const [inline] |
Return the normalization factor (i.e. the inverse of getSum())
This assumes that normalize() has previously been called
float DiscretePDF::getSum | ( | ) | const [inline] |
Return the original (unnormalized) sum of all PDF entries.
This assumes that normalize() has previously been called
bool DiscretePDF::isNormalized | ( | ) | const [inline] |
float DiscretePDF::normalize | ( | ) | [inline] |
float DiscretePDF::operator[] | ( | size_t | entry | ) | const [inline] |
void DiscretePDF::reserve | ( | size_t | nEntries | ) | [inline] |
size_t DiscretePDF::sample | ( | float | sampleValue | ) | const [inline] |
size_t DiscretePDF::sample | ( | float | sampleValue, |
float & | |||
) | const [inline] |
size_t DiscretePDF::sampleReuse | ( | float & | sampleValue, |
float & | |||
) | const [inline] |
Transform a uniformly distributed sample.
The original sample is value adjusted so that it can be "reused".
[in,out] | An | uniformly distributed sample on [0,1] |
[out] | Probability value of the sample |
size_t DiscretePDF::sampleReuse | ( | float & | sampleValue | ) | const [inline] |
size_t DiscretePDF::size | ( | ) | const [inline] |
QString DiscretePDF::toString | ( | ) | const [inline] |