# bdm::enorm< sq_T > Class Template Reference

Gaussian density with positive definite (decomposed) covariance matrix. More...

## Detailed Description

### template<class sq_T>
class bdm::enorm< sq_T >

Gaussian density with positive definite (decomposed) covariance matrix.

More?...

`#include <exp_family.h>`

List of all members.

## Public Member Functions
virtual double | evallog (const vec &val) const
| Evaluate normalized log-probability.
virtual vec | evallog_m (const mat &Val) const
| Evaluate normalized log-probability for many samples.
virtual vec | evallog_m (const Array< vec > &Val) const
| Evaluate normalized log-probability for many samples.
virtual void | pow (double p)
| Power of the density, used e.g. to flatten the density.
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
| enorm ()
| enorm (const vec &mu, const sq_T &R)
void | set_parameters (const vec &mu, const sq_T &R)
void | from_setting (const Setting &root)
void | validate ()
| This method TODO.
Mathematical operations
void | dupdate (mat &v, double nu=1.0)
| dupdate in exponential form (not really handy)
vec | sample () const
| Returns a sample, from density .
double | evallog_nn (const vec &val) const
| Evaluate normalized log-probability.
double | lognc () const
| logarithm of the normalizing constant,
vec | mean () const
| return expected value
vec | variance () const
| return expected variance (not covariance!)
shared_ptr< mpdf > | condition (const RV &rvn) const
| Return conditional density on the given RV, the remaining rvs will be in conditioning.
void | condition (const RV &rvn, mpdf &target) const
shared_ptr< epdf > | marginal (const RV &rvn) const
| Return marginal density on the given RV, the remainig rvs are intergrated out.
void | marginal (const RV &rvn, enorm< sq_T > &target) const
Access to attributes
vec & | _mu ()
const vec & | _mu () const
void | set_mu (const vec mu0)
sq_T & | _R ()
const sq_T & | _R () const
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 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
vec | mu
| mean value
sq_T | R
| Covariance matrix in decomposed form.
int | dim
| dimension of the random variable
RV | rv
| Description of the random variable.

## Member Function Documentation

template<class sq_T >

void bdm::enorm< sq_T >::from_setting | ( | const Setting & | root | ) | `[inline, virtual]`

Create Normal density

from structure

                    class = 'enorm<ldmat>', (OR) 'enorm<chmat>', (OR) 'enorm<fsqmat>';
                    mu    = [];                  // mean value
                    R     = [];                  // variance, square matrix of appropriate dimension

Reimplemented from bdm::epdf.

References bdm::UI::get(), bdm::enorm< sq_T >::mu, bdm::enorm< sq_T >::R, and bdm::enorm< sq_T >::validate().

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

- exp_family.h