#include <merger.h>
Mixtures of Gaussian densities are used internally. Switching to other densities should be trivial.
Public Member Functions | |
merger (const Array< mpdf * > &S) | |
Default constructor. | |
void | set_parameters (double beta0, int Ns0, int Nc0) |
Set internal parameters used in approximation. | |
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. | |
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 | |
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 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. | |
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. | |
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. |
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().
RV bdm::compositepdf::getrv | ( | bool | checkoverlap = false |
) | [inherited] |
find common rv, flag
checkoverlap | modifies whether overlaps are acceptable |
References bdm::RV::add(), bdm::compositepdf::mpdfs, and bdm::compositepdf::n.
Referenced by bdm::mprod::mprod().