Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

pdf1d_gaussian_kernel_pdf Class Reference

#include <pdf1d_gaussian_kernel_pdf.h>

Inheritance diagram for pdf1d_gaussian_kernel_pdf:

Inheritance graph
[legend]
List of all members.

Detailed Description

Class for univariate gaussian kernel based PDF.

Definition at line 15 of file pdf1d_gaussian_kernel_pdf.h.

Public Member Functions

 pdf1d_gaussian_kernel_pdf ()
 Dflt ctor.
 pdf1d_gaussian_kernel_pdf (int n, double sep, double width)
 Define n kernels centred at i*sep (i=0.
virtual ~pdf1d_gaussian_kernel_pdf ()
 Destructor.
virtual pdf1d_samplernew_sampler () const
 Create a sampler object on the heap.
virtual double operator() (double x) const
 Probability density at x.
virtual double log_p (double x) const
 Log of probability density at x.
virtual double cdf (double x) const
 Cumulative Probability (P(x'<x) for x' drawn from the distribution).
virtual bool cdf_is_analytic () const
 Return true if cdf() uses an analytic implementation.
virtual double gradient (double x, double &p) const
 Gradient of PDF at x.
virtual double nearest_plausible (double x, double log_p_min) const
 Compute nearest point to x which has a density above a threshold.
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_pdfclone () const
 Create a copy on the heap and return base class pointer.
virtual void print_summary (vcl_ostream &os) const
 Print class to os.
virtual void b_write (vsl_b_ostream &bfs) const
 Save class to binary file stream.
virtual void b_read (vsl_b_istream &bfs)
 Load class from binary file stream.
virtual void set_centres (const vnl_vector< double > &x, double width)
 Initialise so all kernels have the same width.
virtual void set_centres (const vnl_vector< double > &x, const vnl_vector< double > &width)
 Initialise so all kernels have given width.
const vnl_vector< double > & centre () const
 Position of kernel centres.
const vnl_vector< double > & width () const
 Width of each kernel.
bool all_same_width () const
 True if all kernels have the same width.
virtual double inverse_cdf (double P) const
 The inverse cdf.
double mean () const
 Mean of distribution.
double variance () const
 Variance of each dimension.
virtual int n_peaks () const
 Number of peaks of distribution.
virtual double peak (int) const
 Position of the i'th peak.
virtual double log_prob_thresh (double pass_proportion) const
 Compute threshold for PDF to pass a given proportion.
virtual bool is_valid_pdf () const
 Return true if the object represents a valid PDF.
void get_samples (vnl_vector< double > &x) const
 Fill x with samples drawn from distribution.
bool write_plot_file (const vcl_string &plot_file, double min_x, double max_x, int n) const
 Write values (x,p(x)) to text file suitable for plotting.

Protected Member Functions

void set_mean (double m)
void set_variance (double v)

Protected Attributes

vnl_vector< double > x_
 Position of kernel centres.
vnl_vector< double > width_
 Width of each kernel.
vcl_vector< int > index_
 Workspace.
bool all_same_width_
 True if all kernels have the same width.


Constructor & Destructor Documentation

pdf1d_gaussian_kernel_pdf::pdf1d_gaussian_kernel_pdf  ) 
 

Dflt ctor.

Definition at line 22 of file pdf1d_gaussian_kernel_pdf.cxx.

pdf1d_gaussian_kernel_pdf::pdf1d_gaussian_kernel_pdf int  n,
double  sep,
double  width
 

Define n kernels centred at i*sep (i=0.

.n-1).

Definition at line 27 of file pdf1d_gaussian_kernel_pdf.cxx.

pdf1d_gaussian_kernel_pdf::~pdf1d_gaussian_kernel_pdf  )  [virtual]
 

Destructor.

Definition at line 37 of file pdf1d_gaussian_kernel_pdf.cxx.


Member Function Documentation

bool pdf1d_kernel_pdf::all_same_width  )  const [inline, inherited]
 

True if all kernels have the same width.

Definition at line 61 of file pdf1d_kernel_pdf.h.

void pdf1d_gaussian_kernel_pdf::b_read vsl_b_istream bfs  )  [virtual]
 

Load class from binary file stream.

Reimplemented from pdf1d_kernel_pdf.

Definition at line 195 of file pdf1d_gaussian_kernel_pdf.cxx.

void pdf1d_gaussian_kernel_pdf::b_write vsl_b_ostream bfs  )  const [virtual]
 

Save class to binary file stream.

Reimplemented from pdf1d_kernel_pdf.

Definition at line 186 of file pdf1d_gaussian_kernel_pdf.cxx.

double pdf1d_gaussian_kernel_pdf::cdf double  x  )  const [virtual]
 

Cumulative Probability (P(x'<x) for x' drawn from the distribution).

Reimplemented from pdf1d_pdf.

Definition at line 80 of file pdf1d_gaussian_kernel_pdf.cxx.

bool pdf1d_gaussian_kernel_pdf::cdf_is_analytic  )  const [virtual]
 

Return true if cdf() uses an analytic implementation.

Reimplemented from pdf1d_pdf.

Definition at line 106 of file pdf1d_gaussian_kernel_pdf.cxx.

const vnl_vector<double>& pdf1d_kernel_pdf::centre  )  const [inline, inherited]
 

Position of kernel centres.

Definition at line 55 of file pdf1d_kernel_pdf.h.

pdf1d_pdf * pdf1d_gaussian_kernel_pdf::clone  )  const [virtual]
 

Create a copy on the heap and return base class pointer.

Implements pdf1d_pdf.

Definition at line 171 of file pdf1d_gaussian_kernel_pdf.cxx.

void pdf1d_pdf::get_samples vnl_vector< double > &  x  )  const [inherited]
 

Fill x with samples drawn from distribution.

Utility function. This calls new_sampler() to do the work, then deletes the sampler again. If you intend calling this repeatedly, create a sampler yourself.

Definition at line 131 of file pdf1d_pdf.cxx.

double pdf1d_gaussian_kernel_pdf::gradient double  x,
double &  p
const [virtual]
 

Gradient of PDF at x.

Implements pdf1d_pdf.

Definition at line 114 of file pdf1d_gaussian_kernel_pdf.cxx.

double pdf1d_kernel_pdf::inverse_cdf double  P  )  const [virtual, inherited]
 

The inverse cdf.

The value of x: P(x'<x) = P for x' drawn from distribution pdf. Uses Newton-Raphson.

Reimplemented from pdf1d_pdf.

Definition at line 68 of file pdf1d_kernel_pdf.cxx.

vcl_string pdf1d_gaussian_kernel_pdf::is_a  )  const [virtual]
 

Name of the class.

Reimplemented from pdf1d_kernel_pdf.

Definition at line 149 of file pdf1d_gaussian_kernel_pdf.cxx.

bool pdf1d_gaussian_kernel_pdf::is_class vcl_string const &  s  )  const [virtual]
 

Does the name of the class match the argument?.

Reimplemented from pdf1d_kernel_pdf.

Definition at line 157 of file pdf1d_gaussian_kernel_pdf.cxx.

bool pdf1d_pdf::is_valid_pdf  )  const [virtual, inherited]
 

Return true if the object represents a valid PDF.

This will return false, if n_dims() is 0, for example just ofter default construction.

Reimplemented in pdf1d_mixture.

Definition at line 125 of file pdf1d_pdf.cxx.

double pdf1d_gaussian_kernel_pdf::log_p double  x  )  const [virtual]
 

Log of probability density at x.

Implements pdf1d_pdf.

Definition at line 74 of file pdf1d_gaussian_kernel_pdf.cxx.

double pdf1d_pdf::log_prob_thresh double  pass_proportion  )  const [virtual, inherited]
 

Compute threshold for PDF to pass a given proportion.

Reimplemented in pdf1d_exponential, pdf1d_flat, and pdf1d_gaussian.

Definition at line 67 of file pdf1d_pdf.cxx.

double pdf1d_pdf::mean  )  const [inline, inherited]
 

Mean of distribution.

Definition at line 42 of file pdf1d_pdf.h.

virtual int pdf1d_pdf::n_peaks  )  const [inline, virtual, inherited]
 

Number of peaks of distribution.

Definition at line 48 of file pdf1d_pdf.h.

double pdf1d_gaussian_kernel_pdf::nearest_plausible double  x,
double  log_p_min
const [virtual]
 

Compute nearest point to x which has a density above a threshold.

If log_p(x)>log_p_min then x returned unchanged. Otherwise x is moved (typically up the gradient) until log_p(x)>=log_p_min.

Parameters:
x This may be modified to the nearest plausible position.
log_p_min lower threshold for log_p(x)

Implements pdf1d_pdf.

Definition at line 140 of file pdf1d_gaussian_kernel_pdf.cxx.

pdf1d_sampler * pdf1d_gaussian_kernel_pdf::new_sampler  )  const [virtual]
 

Create a sampler object on the heap.

Caller is responsible for deletion.

Implements pdf1d_pdf.

Definition at line 44 of file pdf1d_gaussian_kernel_pdf.cxx.

double pdf1d_gaussian_kernel_pdf::operator() double  x  )  const [virtual]
 

Probability density at x.

Reimplemented from pdf1d_pdf.

Definition at line 53 of file pdf1d_gaussian_kernel_pdf.cxx.

virtual double pdf1d_pdf::peak int   )  const [inline, virtual, inherited]
 

Position of the i'th peak.

Definition at line 51 of file pdf1d_pdf.h.

void pdf1d_gaussian_kernel_pdf::print_summary vcl_ostream &  os  )  const [virtual]
 

Print class to os.

Reimplemented from pdf1d_kernel_pdf.

Definition at line 178 of file pdf1d_gaussian_kernel_pdf.cxx.

void pdf1d_kernel_pdf::set_centres const vnl_vector< double > &  x,
const vnl_vector< double > &  width
[virtual, inherited]
 

Initialise so all kernels have given width.

Reimplemented in pdf1d_weighted_kernel_pdf.

Definition at line 49 of file pdf1d_kernel_pdf.cxx.

void pdf1d_kernel_pdf::set_centres const vnl_vector< double > &  x,
double  width
[virtual, inherited]
 

Initialise so all kernels have the same width.

Reimplemented in pdf1d_weighted_kernel_pdf.

Definition at line 34 of file pdf1d_kernel_pdf.cxx.

void pdf1d_pdf::set_mean double  m  )  [inline, protected, inherited]
 

Reimplemented in pdf1d_gaussian.

Definition at line 31 of file pdf1d_pdf.h.

void pdf1d_pdf::set_variance double  v  )  [inline, protected, inherited]
 

Definition at line 32 of file pdf1d_pdf.h.

double pdf1d_pdf::variance  )  const [inline, inherited]
 

Variance of each dimension.

Definition at line 45 of file pdf1d_pdf.h.

short pdf1d_gaussian_kernel_pdf::version_no  )  const
 

Version number for I/O.

Reimplemented from pdf1d_kernel_pdf.

Definition at line 164 of file pdf1d_gaussian_kernel_pdf.cxx.

const vnl_vector<double>& pdf1d_kernel_pdf::width  )  const [inline, inherited]
 

Width of each kernel.

Definition at line 58 of file pdf1d_kernel_pdf.h.

bool pdf1d_pdf::write_plot_file const vcl_string &  plot_file,
double  min_x,
double  max_x,
int  n
const [inherited]
 

Write values (x,p(x)) to text file suitable for plotting.

Evaluate pdf at n points in range [min_x,max_x] and write a text file, each line of which is {x p(x)}, suitable for plotting with many graph packages

Definition at line 141 of file pdf1d_pdf.cxx.


Member Data Documentation

bool pdf1d_kernel_pdf::all_same_width_ [protected, inherited]
 

True if all kernels have the same width.

Definition at line 38 of file pdf1d_kernel_pdf.h.

vcl_vector<int> pdf1d_kernel_pdf::index_ [mutable, protected, inherited]
 

Workspace.

If non-empty x_(index[i]) <= x_(index[i+1])

Definition at line 35 of file pdf1d_kernel_pdf.h.

vnl_vector<double> pdf1d_kernel_pdf::width_ [protected, inherited]
 

Width of each kernel.

Definition at line 31 of file pdf1d_kernel_pdf.h.

vnl_vector<double> pdf1d_kernel_pdf::x_ [protected, inherited]
 

Position of kernel centres.

Definition at line 28 of file pdf1d_kernel_pdf.h.


The documentation for this class was generated from the following files:
Generated on Thu Jan 10 14:43:22 2008 for contrib/mul/pdf1d by  doxygen 1.4.4