#ifndef CONJUGATE_M_NORMAL_H_
#define CONJUGATE_M_NORMAL_H_
#include <sampler/ConjugateSampler.h>
/**
* Conjugate sampler for multivariate normal distribution
*
* ConjugateMNormal is currently rather limited in scope. It can
* sample a multivariate normal node "snode" if all the stochastic
* children of snode in the graph are themselves multivariate normal,
* with mean snode, and where the precision matrix does not depend on
* snode.
*
* This can (and should) be extended to allow marginal stochastic
* children that are normally distribution and where the mean of the
* children is a linear function of (some element of) snode.
*/
class ConjugateMNormal : public ConjugateSampler {
public:
ConjugateMNormal(StochasticNode *snode, Graph const &graph);
~ConjugateMNormal();
static bool canSample(StochasticNode *snode, Graph const &graph);
void update();
};
#endif /* CONJUGATE_M_NORMAL_H_ */
syntax highlighted by Code2HTML, v. 0.9.1