Instance class for pdf1d_mixture. More...
#include <pdf1d_mixture_sampler.h>
Public Member Functions | |
pdf1d_mixture_sampler () | |
Dflt ctor. | |
pdf1d_mixture_sampler (const pdf1d_mixture_sampler &) | |
Copy ctor. | |
pdf1d_mixture_sampler & | operator= (const pdf1d_mixture_sampler &) |
Copy operator. | |
virtual | ~pdf1d_mixture_sampler () |
Destructor. | |
virtual void | set_model (const pdf1d_pdf &) |
Set model for which this is an instance. | |
const pdf1d_mixture & | mixture () const |
virtual double | sample () |
Draw random sample from distribution. | |
virtual void | reseed (unsigned long) |
Reseeds the static random number generator (one per derived class). | |
short | version_no () const |
Version number for I/O. | |
virtual vcl_string | is_a () const |
Name of the class. | |
virtual bool | is_class (vcl_string const &s) const |
Does the name of the class match the argument?. | |
virtual pdf1d_sampler * | clone () const |
Create a copy on the heap and return base class pointer. | |
const pdf1d_pdf & | model () const |
PDF of which this is an instance. | |
virtual void | get_samples (vnl_vector< double > &x) |
Fill x with samples drawn from distribution. | |
virtual void | regular_samples (vnl_vector< double > &x) |
Fill x with samples possibly chosen so as to represent the distribution. | |
virtual void | regular_samples_and_prob (vnl_vector< double > &x, vnl_vector< double > &p) |
Fill x with samples possibly chosen so as to represent the distribution. | |
virtual void | print_summary (vcl_ostream &os) const |
Print class to os. | |
Protected Attributes | |
vnl_random | rng_ |
The random number generator. | |
const pdf1d_pdf * | pdf_model_ |
Private Member Functions | |
void | init () |
void | delete_stuff () |
Private Attributes | |
vcl_vector< pdf1d_sampler * > | inst_ |
workspace. |
Instance class for pdf1d_mixture.
Implements calculation of prob, gradient, sampling etc
Definition at line 15 of file pdf1d_mixture_sampler.h.
pdf1d_mixture_sampler::pdf1d_mixture_sampler | ( | ) |
Dflt ctor.
Definition at line 19 of file pdf1d_mixture_sampler.cxx.
pdf1d_mixture_sampler::pdf1d_mixture_sampler | ( | const pdf1d_mixture_sampler & | m | ) |
Copy ctor.
Definition at line 25 of file pdf1d_mixture_sampler.cxx.
pdf1d_mixture_sampler::~pdf1d_mixture_sampler | ( | ) | [virtual] |
Destructor.
Definition at line 56 of file pdf1d_mixture_sampler.cxx.
pdf1d_sampler * pdf1d_mixture_sampler::clone | ( | ) | const [virtual] |
Create a copy on the heap and return base class pointer.
Implements pdf1d_sampler.
Definition at line 140 of file pdf1d_mixture_sampler.cxx.
void pdf1d_mixture_sampler::delete_stuff | ( | ) | [private] |
Definition at line 48 of file pdf1d_mixture_sampler.cxx.
void pdf1d_sampler::get_samples | ( | vnl_vector< double > & | x | ) | [virtual, inherited] |
Fill x with samples drawn from distribution.
Definition at line 45 of file pdf1d_sampler.cxx.
void pdf1d_mixture_sampler::init | ( | ) | [private] |
Definition at line 15 of file pdf1d_mixture_sampler.cxx.
vcl_string pdf1d_mixture_sampler::is_a | ( | ) | const [virtual] |
Name of the class.
Reimplemented from pdf1d_sampler.
Definition at line 119 of file pdf1d_mixture_sampler.cxx.
bool pdf1d_mixture_sampler::is_class | ( | vcl_string const & | s | ) | const [virtual] |
Does the name of the class match the argument?.
Reimplemented from pdf1d_sampler.
Definition at line 126 of file pdf1d_mixture_sampler.cxx.
const pdf1d_mixture & pdf1d_mixture_sampler::mixture | ( | ) | const |
Definition at line 63 of file pdf1d_mixture_sampler.cxx.
const pdf1d_pdf & pdf1d_sampler::model | ( | ) | const [inherited] |
PDF of which this is an instance.
Definition at line 38 of file pdf1d_sampler.cxx.
pdf1d_mixture_sampler & pdf1d_mixture_sampler::operator= | ( | const pdf1d_mixture_sampler & | m | ) |
Copy operator.
Definition at line 32 of file pdf1d_mixture_sampler.cxx.
void pdf1d_sampler::print_summary | ( | vcl_ostream & | os | ) | const [virtual, inherited] |
Print class to os.
Definition at line 101 of file pdf1d_sampler.cxx.
void pdf1d_sampler::regular_samples | ( | vnl_vector< double > & | x | ) | [virtual, inherited] |
Fill x with samples possibly chosen so as to represent the distribution.
Generate a set of pseudo-random samples, chosen so as to be suitable to represent the distribution. This is meant to be used for estimating continuous integrals with sampled approximations. Where there are multiple peaks (e.g. kernel or mixture models), it is preferred that the number of samples from each component is roughly proportional to the weight for the component. When small numbers are requested, this can be done explicitly. The default is simply to call sample() for each element of x
By default simply randomly sample from distribution
Reimplemented in pdf1d_exponential_sampler, pdf1d_flat_sampler, pdf1d_gaussian_sampler, pdf1d_epanech_kernel_pdf_sampler, pdf1d_gaussian_kernel_pdf_sampler, and pdf1d_weighted_epanech_kernel_sampler.
Definition at line 55 of file pdf1d_sampler.cxx.
void pdf1d_sampler::regular_samples_and_prob | ( | vnl_vector< double > & | x, |
vnl_vector< double > & | p | ||
) | [virtual, inherited] |
Fill x with samples possibly chosen so as to represent the distribution.
As regular_samples(x), but p[i] is set to p(x[i])
By default simply randomly sample from distribution
Definition at line 65 of file pdf1d_sampler.cxx.
void pdf1d_mixture_sampler::reseed | ( | unsigned long | seed | ) | [virtual] |
Reseeds the static random number generator (one per derived class).
Implements pdf1d_sampler.
Definition at line 109 of file pdf1d_mixture_sampler.cxx.
double pdf1d_mixture_sampler::sample | ( | ) | [virtual] |
Draw random sample from distribution.
For generating plausible examples.
Implements pdf1d_sampler.
Definition at line 88 of file pdf1d_mixture_sampler.cxx.
void pdf1d_mixture_sampler::set_model | ( | const pdf1d_pdf & | m | ) | [virtual] |
Set model for which this is an instance.
Reimplemented from pdf1d_sampler.
Definition at line 71 of file pdf1d_mixture_sampler.cxx.
short pdf1d_mixture_sampler::version_no | ( | ) | const |
Version number for I/O.
Definition at line 133 of file pdf1d_mixture_sampler.cxx.
vcl_vector<pdf1d_sampler*> pdf1d_mixture_sampler::inst_ [private] |
workspace.
Definition at line 18 of file pdf1d_mixture_sampler.h.
const pdf1d_pdf* pdf1d_sampler::pdf_model_ [protected, inherited] |
Definition at line 26 of file pdf1d_sampler.h.
vnl_random pdf1d_mixture_sampler::rng_ [protected] |
The random number generator.
Definition at line 25 of file pdf1d_mixture_sampler.h.