#include <exp_family.h>
Public Member Functions | |
double | evallog (const vec &val) const |
Evaluate normalized log-probability. | |
double | lognc () const |
logarithm of the normalizing constant, | |
vec & | _alpha () |
Returns pointer to internal alpha. Potentially dengerous: use with care! | |
vec & | _beta () |
Returns pointer to internal beta. Potentially dengerous: use with care! | |
void | from_setting (const Setting &set) |
void | validate () |
This method TODO. | |
virtual double | evallog_nn (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. | |
All constructors are inherited | |
vec | sample () const |
Returns a sample, from density . | |
vec | mean () const |
Returns poiter to alpha and beta. Potentially dangerous: use with care! | |
vec | variance () const |
return expected variance (not covariance!) | |
Constructors | |
void | set_parameters (const vec &a, const vec &b) |
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 shared_ptr< mpdf > | condition (const RV &rv) const |
Return conditional density on the given RV, the remaining rvs will be in conditioning. | |
virtual shared_ptr< 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 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 | alpha |
Vector . | |
vec | beta |
Vector . | |
int | dim |
dimension of the random variable | |
RV | rv |
Description of the random variable. |
Multivariate inverse-Gamma density as product of independent univariate densities.
Vector has different meaning (in fact it is 1/beta as used in definition of iG)
Inverse Gamma can be converted to Gamma using
This relation is used in sampling.
void bdm::egamma::from_setting | ( | const Setting & | set | ) | [inline, virtual, inherited] |
Create Gamma density
from structure
class = 'egamma'; alpha = [...]; // vector of alpha beta = [...]; // vector of beta rv = RV({'name'}) // description of RV
Reimplemented from bdm::epdf.
References bdm::egamma::alpha, bdm::UI::get(), and bdm::egamma::validate().