Class prob_cond_mdim_gaussian (o2scl)

O2scl : Class List

template<class vec_t = boost::numeric::ublas::vector<double>, class mat_t = boost::numeric::ublas::matrix<double>>
class o2scl::prob_cond_mdim_gaussian : public o2scl::prob_cond_mdim<boost::numeric::ublas::vector<double>>

A multi-dimensional Gaussian conditional probability density function.

This class is experimental.

Todo:

This should be a symmetric conditional probability, i.e. \( P(x|y) = P(y|x) \). Test this.

Note

Const functions are not thread-safe because mutable storage is used.

Public Functions

prob_cond_mdim_gaussian()

Create an empty distribution.

prob_cond_mdim_gaussian(const prob_cond_mdim_gaussian &pcmg)

Copy constructor.

prob_cond_mdim_gaussian &operator=(const prob_cond_mdim_gaussian &pcmg)

Copy constructor with operator=.

prob_cond_mdim_gaussian(size_t p_ndim, mat_t &covar)

Create a distribution from the covariance matrix.

size_t dim() const

The dimensionality.

void set_seed(unsigned long int s)

Set the seed.

void set(size_t p_ndim, mat_t &covar)

Set the covariance matrix for the distribution.

double pdf(const vec_t &x_B, const vec_t &x_A) const

The conditional probability of x_A given x_B, i.e. \( P(A|B) \).

double log_pdf(const vec_t &x_B, const vec_t &x_A) const

The log of the conditional probability of x_A given x_B i.e. \( \log [P(A|B)] \).

void operator()(const vec_t &x_B, vec_t &x_A) const

Sample the distribution.

Protected Attributes

mat_t chol

Cholesky decomposition.

mat_t covar_inv

Inverse of the covariance matrix.

double norm

Normalization factor.

size_t ndim

Number of dimensions.

vec_t q

Temporary storage 1.

vec_t vtmp

Temporary storage 2.

o2scl::prob_dens_gaussian pdg

Standard normal.