Samples from an axis aligned Gaussian PDF. More...
#include <vpdfl_gaussian_kernel_pdf_sampler.h>
Public Member Functions | |
vpdfl_gaussian_kernel_pdf_sampler () | |
virtual | ~vpdfl_gaussian_kernel_pdf_sampler () |
virtual void | set_model (const vpdfl_pdf_base &) |
Set model for which this is an instance. | |
void | sample_component (vnl_vector< double > &x, int j) |
Draw random sample from j-th component of distribution. | |
virtual void | sample (vnl_vector< double > &x) |
Draw random sample from distribution. | |
virtual void | regular_samples (vcl_vector< vnl_vector< double > > &x) |
Fill x with samples possibly chosen so as to represent the distribution. | |
virtual void | reseed (unsigned long) |
Reseeds the internal random number generator. | |
const vpdfl_gaussian_kernel_pdf & | gaussian_kernel_pdf () const |
Return a reference to the pdf model. | |
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 vpdfl_sampler_base * | clone () const |
Create a copy on the heap and return base class pointer. | |
const vpdfl_pdf_base & | model () const |
PDF of which this is an instance. | |
virtual void | get_samples (vcl_vector< vnl_vector< double > > &x) |
Fill x with samples drawn from distribution. | |
virtual void | regular_samples_and_prob (vcl_vector< 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 vpdfl_pdf_base * | pdf_model_ |
Samples from an axis aligned Gaussian PDF.
Definition at line 21 of file vpdfl_gaussian_kernel_pdf_sampler.h.
vpdfl_gaussian_kernel_pdf_sampler::vpdfl_gaussian_kernel_pdf_sampler | ( | ) |
Definition at line 19 of file vpdfl_gaussian_kernel_pdf_sampler.cxx.
vpdfl_gaussian_kernel_pdf_sampler::~vpdfl_gaussian_kernel_pdf_sampler | ( | ) | [virtual] |
Definition at line 28 of file vpdfl_gaussian_kernel_pdf_sampler.cxx.
vpdfl_sampler_base * vpdfl_gaussian_kernel_pdf_sampler::clone | ( | ) | const [virtual] |
Create a copy on the heap and return base class pointer.
Implements vpdfl_sampler_base.
Definition at line 55 of file vpdfl_gaussian_kernel_pdf_sampler.cxx.
const vpdfl_gaussian_kernel_pdf & vpdfl_gaussian_kernel_pdf_sampler::gaussian_kernel_pdf | ( | ) | const |
Return a reference to the pdf model.
This is properly cast.
Definition at line 133 of file vpdfl_gaussian_kernel_pdf_sampler.cxx.
void vpdfl_sampler_base::get_samples | ( | vcl_vector< vnl_vector< double > > & | x | ) | [virtual, inherited] |
Fill x with samples drawn from distribution.
Definition at line 48 of file vpdfl_sampler_base.cxx.
vcl_string vpdfl_gaussian_kernel_pdf_sampler::is_a | ( | ) | const [virtual] |
Name of the class.
Reimplemented from vpdfl_sampler_base.
Definition at line 37 of file vpdfl_gaussian_kernel_pdf_sampler.cxx.
bool vpdfl_gaussian_kernel_pdf_sampler::is_class | ( | vcl_string const & | s | ) | const [virtual] |
Does the name of the class match the argument?.
Reimplemented from vpdfl_sampler_base.
Definition at line 46 of file vpdfl_gaussian_kernel_pdf_sampler.cxx.
const vpdfl_pdf_base & vpdfl_sampler_base::model | ( | ) | const [inherited] |
PDF of which this is an instance.
Definition at line 40 of file vpdfl_sampler_base.cxx.
void vpdfl_sampler_base::print_summary | ( | vcl_ostream & | os | ) | const [virtual, inherited] |
Print class to os.
Definition at line 104 of file vpdfl_sampler_base.cxx.
void vpdfl_gaussian_kernel_pdf_sampler::regular_samples | ( | vcl_vector< vnl_vector< double > > & | x | ) | [virtual] |
Fill x with samples possibly chosen so as to represent the distribution.
Sample sequentially from each component.
Reimplemented from vpdfl_sampler_base.
Definition at line 110 of file vpdfl_gaussian_kernel_pdf_sampler.cxx.
void vpdfl_sampler_base::regular_samples_and_prob | ( | vcl_vector< 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])
Definition at line 67 of file vpdfl_sampler_base.cxx.
void vpdfl_gaussian_kernel_pdf_sampler::reseed | ( | unsigned long | seed | ) | [virtual] |
Reseeds the internal random number generator.
To achieve quasi-random initialisation use;
#include <vcl_ctime.h>
..
sampler.reseed(vcl_time(0));
Implements vpdfl_sampler_base.
Definition at line 61 of file vpdfl_gaussian_kernel_pdf_sampler.cxx.
void vpdfl_gaussian_kernel_pdf_sampler::sample | ( | vnl_vector< double > & | x | ) | [virtual] |
Draw random sample from distribution.
Implements vpdfl_sampler_base.
Definition at line 96 of file vpdfl_gaussian_kernel_pdf_sampler.cxx.
void vpdfl_gaussian_kernel_pdf_sampler::sample_component | ( | vnl_vector< double > & | x, |
int | j | ||
) |
Draw random sample from j-th component of distribution.
Definition at line 77 of file vpdfl_gaussian_kernel_pdf_sampler.cxx.
void vpdfl_gaussian_kernel_pdf_sampler::set_model | ( | const vpdfl_pdf_base & | model | ) | [virtual] |
Set model for which this is an instance.
Error check that it is an axis gaussian.
Reimplemented from vpdfl_sampler_base.
Definition at line 69 of file vpdfl_gaussian_kernel_pdf_sampler.cxx.
const vpdfl_pdf_base* vpdfl_sampler_base::pdf_model_ [protected, inherited] |
Definition at line 31 of file vpdfl_sampler_base.h.
vnl_random vpdfl_gaussian_kernel_pdf_sampler::rng_ [protected] |
The random number generator.
Definition at line 25 of file vpdfl_gaussian_kernel_pdf_sampler.h.