bdm::eEmp Class Reference

Weighted empirical density. More...


Detailed Description

Weighted empirical density.

Used e.g. in particle filters.

#include <exp_family.h>

List of all members.

Public Member Functions

void set_statistics (const vec &w0, const epdf &pdf0)
 Set samples and weights.
void set_statistics (const epdf &pdf0, int n)
 Set samples and weights.
void set_samples (const epdf *pdf0)
 Set sample.
void set_parameters (int n0, bool copy=true)
 Set sample.
void set_parameters (const Array< vec > &Av)
 Set samples.
vec & _w ()
 Potentially dangerous, use with care.
const vec & _w () const
 Potentially dangerous, use with care.
Array< vec > & _samples ()
 access function
const Array< vec > & _samples () const
 access function
ivec resample (RESAMPLING_METHOD method=SYSTEMATIC)
 Function performs resampling, i.e. removal of low-weight samples and duplication of high-weight samples such that the new samples represent the same density.
vec sample () const
 inherited operation : NOT implemented
double evallog (const vec &val) const
 inherited operation : NOT implemented
vec mean () const
 return expected value
vec variance () const
 return expected variance (not covariance!)
void qbounds (vec &lb, vec &ub, double perc=0.95) const
 For this class, qbounds are minimum and maximum value of the population!
void from_setting (const Setting &set)
 Load from structure with elements:.
virtual string to_string ()
 This method returns a basic info about the current instance.
virtual void to_setting (Setting &set) const
 This method save all the instance properties into the Setting structure.
virtual void validate ()
 This method TODO.
Constructors



 eEmp ()
 eEmp (const eEmp &e)
 copy constructor
Constructors

Construction of each epdf should support two types of constructors:

  • empty constructor,
  • copy constructor,

The following constructors should be supported for convenience:

All internal data structures are constructed as empty. Their values (including sizes) will be set by method set_parameters(). This way references can be initialized in constructors.



void set_parameters (int dim0)
Matematical Operations



virtual mat sample_m (int N) const
 Returns N samples, $ [x_1 , x_2 , \ldots \ $ from density $ f_x(rv)$.
virtual vec evallog_m (const mat &Val) const
 Compute log-probability of multiple values argument val.
virtual vec evallog_m (const Array< vec > &Avec) const
 Compute log-probability of multiple values argument val.
virtual shared_ptr< mpdfcondition (const RV &rv) const
 Return conditional density on the given RV, the remaining rvs will be in conditioning.
virtual shared_ptr< epdfmarginal (const RV &rv) const
 Return marginal density on the given RV, the remainig rvs are intergrated out.
Connection to other classes

Description of the random quantity via attribute rv is optional. For operations such as sampling rv does not need to be set. However, for marginalization and conditioning rv has to be set. NB:



void set_rv (const RV &rv0)
 Name its rv.
bool isnamed () const
 True if rv is assigned.
const RV_rv () const
 Return name (fails when isnamed is false).
Access to attributes



int dimension () const
 Size of the random variable.

Protected Attributes

int n
 Number of particles.
vec w
 Sample weights $w$.
Array< vec > samples
 Samples $x^{(i)}, i=1..n$.
int dim
 dimension of the random variable
RV rv
 Description of the random variable.

Member Function Documentation

void bdm::epdf::from_setting ( const Setting &  set  )  [inline, virtual, inherited]

Load from structure with elements:.

         { rv = {class="RV", names=(...),}; // RV describing meaning of random variable
           // elements of offsprings
         }

Reimplemented from bdm::root.

Reimplemented in bdm::mexEpdf, bdm::enorm< sq_T >, bdm::egiw, bdm::egamma, bdm::euni, bdm::merger_base, bdm::merger_mix, bdm::enorm< ldmat >, bdm::enorm< chmat >, and bdm::enorm< fsqmat >.

References bdm::epdf::set_rv().


The documentation for this class was generated from the following files:

Generated on Sun Sep 13 23:08:56 2009 for mixpp by  doxygen 1.6.1