# bdm::eEmp Class Reference

Weighted empirical density. More...

`#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 vec & | _sample (int i) const
| access function
const Array< vec > & | _samples () const
| access function
void | resample (ivec &index, RESAMPLING_METHOD method=SYSTEMATIC)
void | resample (RESAMPLING_METHOD method=SYSTEMATIC)
| Resampling without returning index of new particles.
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: constructor followed by calling `set_parameters()` constructor accepting random variables calling `set_rv()` 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, from density .
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< mpdf > | condition (const RV &rv) const
| Return conditional density on the given RV, the remaining rvs will be in conditioning.
virtual shared_ptr< epdf > | marginal (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 .
Array< vec > | samples
| Samples .
int | dim
| dimension of the random variable
RV | rv
| Description of the random variable.

## Detailed Description

Weighted empirical density.

Used e.g. in particle filters.

## 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::enorm< sq_T >, bdm::egiw, bdm::eDirich, 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().

void bdm::eEmp::resample | ( | ivec & | index,
|  | 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. The vector with indeces of new samples is returned in variable `index`.

References bdm_error, n, samples, and w.

Referenced by bdm::PF::bayes(), and bdm::PF::resample().

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

- exp_family.h
- exp_family.cpp