#ifndef CONJUGATE_M_NORMAL_H_ #define CONJUGATE_M_NORMAL_H_ #include /** * 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_ */