#include <merger.h>
Public Member Functions | |
void | set_elements (Array< mpdf * > A0, bool own=false) |
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 | to_setting (Setting &set) const |
This method save all the instance properties into the Setting structure. | |
Constructors | |
merger_base () | |
Empty constructor. | |
merger_base (const Array< mpdf * > &S, bool own=false) | |
Constructor from sources. | |
void | set_sources (const Array< mpdf * > &Sources, bool own) |
Function setting the main internal structures. | |
void | set_support (const Array< vec > &XYZ, const int dimsize) |
Rectangular support each vector of XYZ specifies (begining-end) interval for each dimension. Same number of points, dimsize , in each dimension. | |
void | set_support (const Array< vec > &XYZ, const ivec &gridsize) |
Rectangular support each vector of XYZ specifies (begining-end) interval for each dimension. gridsize specifies number of points is each dimension. | |
void | set_debug_file (const string fname) |
set debug file | |
void | set_method (MERGER_METHOD MTH=DFLT_METHOD, double beta0=DFLT_beta) |
Set internal parameters used in approximation. | |
void | set_support (const epdf &overall, int N) |
Set support points from a pdf by drawing N samples. | |
virtual | ~merger_base () |
Destructor. | |
Mathematical operations | |
virtual 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. | |
void | from_setting (const Setting &set) |
load from setting | |
void | validate () |
This method TODO. | |
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 vec | evallog_m (const Array< vec > &Avec) 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 | Npoints |
number of support points | |
int | Nsources |
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_file |
debugging file | |
Array< mpdf * > | mpdfs |
Elements of composition. | |
bool | owning_mpdfs |
int | dim |
dimension of the random variable | |
RV | rv |
Description of the random variable. | |
Static Protected Attributes | |
static const MERGER_METHOD | DFLT_METHOD = LOGNORMAL |
Default for METHOD. | |
static const double | DFLT_beta = 1.2 |
default for beta |
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 Npoints.
Referenced by variance().