Nori

DiscretePDF Struct Reference

Discrete probability distribution. More...

#include <dpdf.h>

List of all members.

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.

Detailed Description

Discrete probability distribution.

This data structure can be used to transform uniformly distributed samples to a stored discrete probability distribution.

Definition at line 34 of file dpdf.h.


Constructor & Destructor Documentation

DiscretePDF::DiscretePDF ( size_t  nEntries = 0) [inline, explicit]

Allocate memory for a distribution with the given number of entries.

Definition at line 37 of file dpdf.h.


Member Function Documentation

void DiscretePDF::append ( float  pdfValue) [inline]

Append an entry with the specified discrete probability.

Definition at line 55 of file dpdf.h.

void DiscretePDF::clear ( ) [inline]

Clear all entries.

Definition at line 43 of file dpdf.h.

float DiscretePDF::getNormalization ( ) const [inline]

Return the normalization factor (i.e. the inverse of getSum())

This assumes that normalize() has previously been called

Definition at line 88 of file dpdf.h.

float DiscretePDF::getSum ( ) const [inline]

Return the original (unnormalized) sum of all PDF entries.

This assumes that normalize() has previously been called

Definition at line 79 of file dpdf.h.

bool DiscretePDF::isNormalized ( ) const [inline]

Have the probability densities been normalized?

Definition at line 70 of file dpdf.h.

float DiscretePDF::normalize ( ) [inline]

Normalize the distribution.

Returns:
Sum of the (previously unnormalized) entries

Definition at line 97 of file dpdf.h.

float DiscretePDF::operator[] ( size_t  entry) const [inline]

Access an entry by its index.

Definition at line 65 of file dpdf.h.

void DiscretePDF::reserve ( size_t  nEntries) [inline]

Reserve memory for a certain number of entries.

Definition at line 50 of file dpdf.h.

size_t DiscretePDF::sample ( float  sampleValue) const [inline]

Transform a uniformly distributed sample to the stored distribution

Parameters:
[in]sampleValueAn uniformly distributed sample on [0,1]
Returns:
The discrete index associated with the sample

Definition at line 119 of file dpdf.h.

size_t DiscretePDF::sample ( float  sampleValue,
float &  pdf 
) const [inline]

Transform a uniformly distributed sample to the stored distribution

Parameters:
[in]sampleValueAn uniformly distributed sample on [0,1]
[out]pdfProbability value of the sample
Returns:
The discrete index associated with the sample

Definition at line 136 of file dpdf.h.

size_t DiscretePDF::sampleReuse ( float &  sampleValue,
float &  pdf 
) const [inline]

Transform a uniformly distributed sample.

The original sample is value adjusted so that it can be "reused".

Parameters:
[in,out]Anuniformly distributed sample on [0,1]
[out]pdfProbability value of the sample
Returns:
The discrete index associated with the sample

Definition at line 171 of file dpdf.h.

size_t DiscretePDF::sampleReuse ( float &  sampleValue) const [inline]

Transform a uniformly distributed sample to the stored distribution

The original sample is value adjusted so that it can be "reused".

Parameters:
[in,out]sampleValueAn uniformly distributed sample on [0,1]
Returns:
The discrete index associated with the sample

Definition at line 152 of file dpdf.h.

size_t DiscretePDF::size ( ) const [inline]

Return the number of entries so far.

Definition at line 60 of file dpdf.h.

QString DiscretePDF::toString ( ) const [inline]

Turn the underlying distribution into a human-readable string format.

Definition at line 182 of file dpdf.h.


The documentation for this struct was generated from the following file:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines