bdm::emix Class Reference

#include <emix.h>

Inheritance diagram for bdm::emix:

bdm::epdf bdm::bdmroot

List of all members.


Detailed Description

Mixture of epdfs.

Density function:

\[ f(x) = \sum_{i=1}^{n} w_{i} f_i(x), \quad \sum_{i=1}^n w_i = 1. \]

where $f_i(x)$ is any density on random variable $x$, called component,

Public Member Functions

 emix ()
 Default constructor.
void set_parameters (const vec &w, const Array< epdf * > &Coms, bool copy=false)
vec sample () const
 Returns a sample, $ x $ from density $ f_x()$.
vec mean () const
 return expected value
vec variance () const
 return expected variance (not covariance!)
double evallog (const vec &val) const
 Compute log-probability of argument val.
vec evallog_m (const mat &Val) const
 Compute log-probability of multiple values argument val.
mat evallog_M (const mat &Val) const
 Auxiliary function that returns pdflog for each component.
emixmarginal (const RV &rv) const
 Return marginal density on the given RV, the remainig rvs are intergrated out.
mratiocondition (const RV &rv) const
 Return conditional density on the given RV, the remaining rvs will be in conditioning.
vec & _w ()
 returns a pointer to the internal mean value. Use with Care!
void ownComs ()
 Auxiliary function for taking ownership of the Coms().
epdf_Coms (int i)
 access function
Constructors
Construction of each epdf should support two types of constructors:
  • empty constructor,
  • copy constructor,
The following constructors should be supported for convenience: 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)$.
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 w
 weights of the components
Array< epdf * > Coms
 Component (epdfs).
bool destroyComs
 Flag if owning Coms.
int dim
 dimension of the random variable
RV rv
 Description of the random variable.


Member Function Documentation

void bdm::emix::set_parameters ( const vec &  w,
const Array< epdf * > &  Coms,
bool  copy = false 
)

Set weights w and components Coms By default Coms are copied inside. Parameter copy can be set to false if Coms live externally. Use method ownComs() if Coms should be destroyed by the destructor.

References Coms, destroyComs, bdm::epdf::dim, bdm::epdf::dimension(), and w.

Referenced by bdm::MixEF::epredictor(), marginal(), and bdm::mmix::set_parameters().


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

Generated on Mon Feb 16 10:06:36 2009 for mixpp by  doxygen 1.5.6