# mprod Class Reference

Chain rule decomposition of epdf. More...

`#include <emix.h>`

Inheritance diagram for mprod:

[legend]
Collaboration diagram for mprod:

[legend]

List of all members.

## Public Member Functions
| mprod (Array< mpdf * > mFacs)
| Constructor from list of mFacs,.
double | evallogcond (const vec &val, const vec &cond)
| Shortcut for conditioning and evaluation of the internal epdf. In some cases, this operation can be implemented efficiently.
vec | samplecond (const vec &cond, double &ll)
| Returns the required moment of the epdf.
mat | samplecond (const vec &cond, vec &ll, int N)
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 mat | samplecond_m (const vec &cond, vec &ll, int N)
| Returns.
virtual void | condition (const vec &cond)
| Update `ep` so that it represents this mpdf conditioned on `rvc` = cond.
virtual vec | evallogcond_m (const mat &Dt, const vec &cond)
| Matrix version of evallogcond.
RV | _rvc () const
| access function
RV | _rv () const
| access function
epdf & | _epdf ()
| access function
## Protected Attributes
Array< epdf * > | epdfs
| pointers to epdfs - shortcut to mpdfs()._epdf()
Array< datalink_m2m * > | dls
| Data link for each mpdfs.
int | n
| Number of mpdfs in the composite.
Array< mpdf * > | mpdfs
| Elements of composition.
RV | rv
| modeled random variable
RV | rvc
| random variable in condition
epdf * | ep
| pointer to internal epdf

## Detailed Description

Chain rule decomposition of epdf.

Probability density in the form of Chain-rule decomposition: \[ f(x_1,x_2,x_3) = f(x_1|x_2,x_3)f(x_2,x_3)f(x_3) \] Note that

## Member Function Documentation

vec mprod::samplecond | ( | const vec & | cond,
|  | double & | ll |
| ) |  |  | `[inline, virtual]`

Returns the required moment of the epdf.

Returns a sample from the density conditioned on `cond`, .

Parameters:

  | cond | is numeric value of `rv`
  | ll | is a return value of log-likelihood of the sample.

Reimplemented from mpdf.

References RV::count(), dls, epdfs, compositepdf::mpdfs, compositepdf::n, and mpdf::rv.

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

find common rv, flag

Parameters:

  | checkoverlap | modifies whether overlaps are acceptable

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

virtual mat mpdf::samplecond_m | ( | const vec & | cond,
|  | vec & | ll,
|  | int | N |
| ) |  |  | `[inline, virtual, inherited]`

Returns.

Parameters:

  | N | samples from the density conditioned on `cond`, .
  | cond | is numeric value of `rv`
  | ll | is a return value of log-likelihood of the sample.

References mpdf::condition(), RV::count(), mpdf::ep, epdf::evallog(), mpdf::rv, and epdf::sample().

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

- work/git/mixpp/bdm/stat/emix.h