#include <InverseGamma.h>
Defines the inverse gamma distribution, which has probability density function
\[ \pi(x) = \frac{\beta^\alpha}{\Gamma(\alpha)}x^{-\alpha-1}\exp\left(-\frac{\beta}{x}\right), \]
where \(\alpha\) and \(\beta\) are parameters in the distribution. For multivariate \(x\), it is assumed that all components of \(x\) are independent. However, each component can have different parameters \(\alpha\) and \(\beta\).
Definition at line 17 of file InverseGamma.h.
Public Member Functions | |
InverseGamma (double alphaIn, double betaIn) | |
InverseGamma (Eigen::VectorXd const &alphaIn, Eigen::VectorXd const &betaIn) | |
virtual | ~InverseGamma ()=default |
Public Member Functions inherited from muq::Modeling::Distribution | |
Distribution (unsigned int varSizeIn, Eigen::VectorXi const &hyperSizesIn=Eigen::VectorXi()) | |
virtual | ~Distribution ()=default |
virtual double | LogDensity (ref_vector< Eigen::VectorXd > const &inputs) |
Evaluate the log-density. More... | |
virtual double | LogDensity (std::vector< Eigen::VectorXd > const &inputs) |
VARIADIC_TO_REFVECTOR (LogDensity, Eigen::VectorXd, double) | |
virtual Eigen::VectorXd | GradLogDensity (unsigned int wrt, std::vector< Eigen::VectorXd > const &inputs) |
virtual Eigen::VectorXd | GradLogDensity (unsigned int wrt, ref_vector< Eigen::VectorXd > const &inputs) |
template<typename... Args> | |
Eigen::VectorXd | GradLogDensity (unsigned int wrt, Args... args) |
virtual Eigen::VectorXd | ApplyLogDensityHessian (unsigned int const inWrt1, unsigned int const inWrt2, ref_vector< Eigen::VectorXd > const &input, Eigen::VectorXd const &vec) |
virtual Eigen::VectorXd | ApplyLogDensityHessian (unsigned int const inWrt1, unsigned int const inWrt2, std::vector< Eigen::VectorXd > const &input, Eigen::VectorXd const &vec) |
Eigen::VectorXd | Sample (ref_vector< Eigen::VectorXd > const &inputs) |
Sample the distribution. More... | |
Eigen::VectorXd | Sample (std::vector< Eigen::VectorXd > const &inputs) |
Eigen::VectorXd | Sample () |
Sample the distribution with no inputs. More... | |
VARIADIC_TO_REFVECTOR (Sample, Eigen::VectorXd, Eigen::VectorXd) | |
std::shared_ptr< Density > | AsDensity () |
Returns a density built from this distribution. More... | |
std::shared_ptr< RandomVariable > | AsVariable () |
Returns a random variable built from this distribution. More... | |
Public Attributes | |
const Eigen::VectorXd | alpha |
const Eigen::VectorXd | beta |
Public Attributes inherited from muq::Modeling::Distribution | |
const unsigned int | varSize |
const Eigen::VectorXi | hyperSizes |
InverseGamma::InverseGamma | ( | double | alphaIn, |
double | betaIn | ||
) |
Definition at line 15 of file InverseGamma.cpp.
InverseGamma::InverseGamma | ( | Eigen::VectorXd const & | alphaIn, |
Eigen::VectorXd const & | betaIn | ||
) |
Definition at line 8 of file InverseGamma.cpp.
|
virtualdefault |
|
staticprivate |
Definition at line 19 of file InverseGamma.cpp.
References logConst.
|
overrideprivatevirtual |
Implement the log-density.
If known, the log-density should be implemented by a child. If it is not overridden then the default behavior is to return negative infinity (-1.0*std::numeric_limits<double>::infinity()).
[in] | inputs | the vector of inputs to the log-density |
Reimplemented from muq::Modeling::Distribution.
Definition at line 29 of file InverseGamma.cpp.
|
overrideprivatevirtual |
Sample the distribution.
Reimplemented from muq::Modeling::Distribution.
Definition at line 40 of file InverseGamma.cpp.
const Eigen::VectorXd muq::Modeling::InverseGamma::alpha |
Definition at line 30 of file InverseGamma.h.
Referenced by LogDensityImpl(), and SampleImpl().
const Eigen::VectorXd muq::Modeling::InverseGamma::beta |
Definition at line 31 of file InverseGamma.h.
Referenced by LogDensityImpl(), and SampleImpl().
|
private |
Definition at line 38 of file InverseGamma.h.
Referenced by ComputeConstant(), and LogDensityImpl().