# bdm::merger Class Reference

Function for general combination of pdfs. More...

`#include <merger.h>`

List of all members.

## Public Member Functions
| merger (const Array< mpdf * > &S)
| Default constructor.
void | debug_file (const string fname)
| set debug file
void | set_parameters (double beta0, int Ns0, int Nc0, double effss_coef0=0.5)
| Set internal parameters used in approximation.
void | set_grid (Array< vec > &XYZ)
void | init ()
| Initialize the proposal density. This function must be called before merge()!
void | merge (const epdf *g0)
| Create a mixture density using known proposal.
void | merge ()
| Create a mixture density, make sure to call init() before the first call.
vec | lognorm_merge (mat &lW)
| Merge log-likelihood values.
vec | sample () const
double | evallog (const vec &dt) const
| Compute log-probability of argument `val`.
vec | mean () const
| return expected value
mat | covariance () const
vec | variance () const
| return expected variance (not covariance!)
virtual | ~merger ()
| for future use
MixEF & | _Mix ()
| Access function.
emix * | proposal ()
| Access function.
eEmp & | _Smp ()
| Access function.
RV | getrv (bool checkoverlap=false)
| find common rv, flag
void | setrvc (const RV &rv, RV &rvc)
| common rvc of all mpdfs is written to rvc
virtual string | to_string ()
| This method returns a basic info about the current instance.
virtual void | from_setting (const Setting &root)
| This method arrange instance properties according the data stored in the Setting structure.
virtual void | to_setting (Setting &root) const
| This method save all the instance properties into the Setting structure.
virtual void | validate ()
| This method TODO.
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 mpdf * | condition (const RV &rv) const
| Return conditional density on the given RV, the remaining rvs will be in conditioning.
virtual epdf * | marginal (const RV &rv) const
| Return marginal density on the given RV, the remainig rvs are intergrated out.
virtual void | qbounds (vec &lb, vec &ub, double percentage=0.95) const
| Lower and upper bounds of `percentage` % quantile, returns mean-2*sigma as default.
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
MixEF | Mix
| Internal mixture of EF models.
Array< datalink_m2e * > | dls
| Data link for each mpdf in mpdfs.
Array< RV > | rvzs
| Array of rvs that are not modelled by mpdfs at all (aux).
Array< datalink_m2e * > | zdls
| Data Links of rv0 mpdfs - these will be conditioned the (rv,rvc) of mpdfs.
int | Ns
| Number of samples used in approximation.
int | Nc
| Number of components in a mixture.
double | beta
| Prior on the log-normal merging model.
eEmp | eSmp
| Projection to empirical density.
double | effss_coef
| coefficient of resampling
bool | DBG
| debug or not debug
it_file * | dbg
| debugging file
bool | fix_smp
| Flag if the samples are fixed or not.
int | n
| Number of mpdfs in the composite.
Array< mpdf * > | mpdfs
| Elements of composition.
int | dim
| dimension of the random variable
RV | rv
| Description of the random variable.

## Detailed Description

Function for general combination of pdfs.

Mixtures of Gaussian densities are used internally. Switching to other densities should be trivial.

## Member Function Documentation

RV bdm::compositepdf::getrv | ( | bool | checkoverlap = `false` | ) | `[inherited]`

find common rv, flag

Parameters:

  | checkoverlap | modifies whether overlaps are acceptable

References bdm::RV::add(), bdm::compositepdf::mpdfs, and bdm::compositepdf::n.

Referenced by merger(), and bdm::mprod::mprod().

vec bdm::merger::sample | ( |  | ) | const`[inline, virtual]`

sample from merged density weight w is a

Reimplemented from bdm::epdf.

References Mix, bdm::MixEF::posterior(), and bdm::epdf::sample().

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

- merger.h
- merger.cpp