A container that supports probabilistic sampling over weighted data. More...
#include <PDF.h>
Classes | |
class | Element |
A class that will hold data contained in the PDF. More... | |
Public Member Functions | |
PDF (void) | |
Constructs an empty PDF. | |
PDF (const std::vector< _T > &d, const std::vector< double > &weights) | |
Constructs a PDF containing a given vector of data with given weights. | |
~PDF (void) | |
Destructor. Clears allocated memory. | |
Element & | add (const _T &d, const double w) |
Adds a piece of data with a given weight to the PDF. Returns a corresponding Element, which can be used to subsequently update or remove the data from the PDF. | |
const _T & | sample (double r) const |
Returns a piece of data from the PDF according to the input sampling value, which must be between 0 and 1. | |
void | update (Element &elem, const double w) |
Updates the data in the given Element with a new weight value. | |
void | remove (Element &elem) |
Removes the data in the given Element from the PDF. After calling this function, the Element object should no longer be used. | |
void | clear (void) |
Clears the PDF. | |
std::size_t | size (void) const |
Returns the number of elements in the PDF. | |
bool | empty (void) const |
Returns whether the PDF contains no data. | |
void | printTree (std::ostream &out=std::cout) const |
Prints the PDF tree to a given output stream. Used for debugging purposes. |
A container that supports probabilistic sampling over weighted data.