#include <merger.h>
Public Member Functions | |
void | set_elements (const Array< mpdf * > A0) |
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 | |
merger_base () | |
Empty constructor. | |
merger_base (const Array< mpdf * > &S) | |
Constructor from sources. | |
void | set_sources (const Array< mpdf * > &Sources) |
Function setting the main internal structures. | |
void | set_debug_file (const string fname) |
set debug file | |
void | set_parameters (double beta0, MERGER_METHOD MTH) |
Set internal parameters used in approximation. | |
void | set_support (epdf &overall, int N) |
Set support points from a pdf. | |
virtual | ~merger_base () |
Destructor. | |
Mathematical operations | |
void | merge () |
Merge given sources in given points. | |
vec | merge_points (mat &lW) |
Merge log-likelihood values in points using method specified by parameter METHOD. | |
vec | mean () const |
weight w is a | |
mat | covariance () const |
vec | variance () const |
return expected variance (not covariance!) | |
Access to attributes | |
eEmp & | _Smp () |
Access function. | |
Constructors | |
Construction of each epdf should support two types of constructors:
set_parameters() . This way references can be initialized in constructors. | |
void | set_parameters (int dim0) |
Matematical Operations | |
virtual vec | sample () const |
Returns a sample, from density . | |
virtual mat | sample_m (int N) const |
Returns N samples, from density . | |
virtual double | evallog (const vec &val) const |
Compute log-probability of argument val . | |
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 | |
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, . | |
Array< datalink_m2e * > | zdls |
Data Links for extension . | |
int | Ns |
number of sources | |
MERGER_METHOD | METHOD |
switch of the methoh used for merging | |
double | beta |
Prior on the log-normal merging model. | |
eEmp | eSmp |
Projection to empirical density (could also be piece-wise linear). | |
bool | DBG |
debug or not debug | |
it_file * | dbg |
debugging file | |
Array< mpdf * > | mpdfs |
Elements of composition. | |
int | dim |
dimension of the random variable | |
RV | rv |
Description of the random variable. |
Mixtures of Gaussian densities are used internally. Switching to other densities should be trivial.
The merged pdfs are expected to be of the form:
where the resulting merger is a density on . Note that all variables will be joined.
As a result of this feature, each source must be extended to common support
where accumulate variables that were not in the original source. These extensions are calculated on-the-fly.
However, these operations can not be performed in general. Hence, this class merges only sources on common support, . For merging of more general cases, use offsprings merger_mix and merger_grid.
RV bdm::compositepdf::getrv | ( | bool | checkoverlap = false |
) | [inherited] |
find common rv, flag
checkoverlap | modifies whether overlaps are acceptable |
References bdm::RV::add(), and bdm::compositepdf::mpdfs.
Referenced by set_sources().
vec bdm::merger_base::mean | ( | ) | const [inline, virtual] |
weight w is a
sample from merged density
Reimplemented from bdm::epdf.
References bdm::eEmp::_samples(), bdm::eEmp::_w(), bdm::epdf::dim, eSmp, and Ns.
Referenced by variance().