|
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] |