#include <libEF.h>

Continuous Dirichlet density of  -dimensional variable
-dimensional variable  
 
![\[ f(x|\beta) = \frac{\Gamma[\gamma]}{\prod_{i=1}^{n}\Gamma(\beta_i)} \prod_{i=1}^{n}x_i^{\beta_i-1} \]](form_57.png) 
 where  .
. 
| Public Member Functions | |
| vec | sample () const | 
| Returns a sample,  from density  . | |
| vec | mean () const | 
| return expected value | |
| vec | variance () const | 
| return expected variance (not covariance!) | |
| double | evallog_nn (const vec &val) const | 
| In this instance, val is ... | |
| double | lognc () const | 
| logarithm of the normalizing constant,   | |
| vec & | _beta () | 
| access function | |
| virtual void | dupdate (mat &v) | 
| TODO decide if it is really needed. | |
| virtual double | evallog (const vec &val) const | 
| Evaluate normalized log-probability. | |
| virtual vec | evallog (const mat &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. | |
| Constructors | |
| eDirich () | |
| eDirich (const eDirich &D0) | |
| eDirich (const vec &beta0) | |
| void | set_parameters (const vec &beta0) | 
| 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. | |
| 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  rvis optional. For operations such as samplingrvdoes not need to be set. However, formarginalizationandconditioningrvhas 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 | beta | 
| sufficient statistics | |
| double | gamma | 
| speedup variable | |
| int | dim | 
| dimension of the random variable | |
| RV | rv | 
| Description of the random variable. | |
 1.5.6
 1.5.6