# bdm::eigamma Class Reference

Inverse-Gamma posterior density. More...

`#include <libEF.h>`

List of all members.

## Public Member Functions
double | evallog (const vec &val) const
| TODO: is it used anywhere?
virtual vec | evallog (const mat &Val) const
| Evaluate normalized log-probability for many samples.
double | lognc () const
| logarithm of the normalizing constant,
vec & | _alpha ()
| Returns poiter to alpha and beta. Potentially dengerous: use with care!
vec & | _beta ()
virtual void | dupdate (mat &v)
| TODO decide if it is really needed.
virtual double | evallog_nn (const vec &val) const
| Evaluate normalized log-probability.
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 | from_setting (const Setting &root)
| This method arrange instance properties according the data stored in the Setting structure.
virtual void | to_setting (Setting &root) const
| This method save all the instance properties into the Setting structure.
virtual void | validate ()
| This method TODO.
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: 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 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 `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.

## Detailed Description

Inverse-Gamma posterior density.

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.

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

- libEF.h