bdm::enorm< sq_T > Class Template Reference

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, $ x $ from density $ f_x()$.
double evallog_nn (const vec &val) const
 Evaluate normalized log-probability.
double lognc () const
 logarithm of the normalizing constant, $\mathcal{I}$
vec mean () const
 return expected value
vec variance () const
 return expected variance (not covariance!)
shared_ptr< mpdfcondition (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< epdfmarginal (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, $ [x_1 , x_2 , \ldots \ $ from density $ f_x(rv)$.
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.


Detailed Description

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

Gaussian density with positive definite (decomposed) covariance matrix.

More?...


Member Function Documentation

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

Create Normal density

\[ f(rv) = N(\mu, R) \]

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:

Generated on Wed Oct 7 17:34:48 2009 for mixpp by  doxygen 1.5.9