#ifndef CONJUGATE_NORMAL_H_
#define CONJUGATE_NORMAL_H_

#include <sampler/ConjugateSampler.h>

/**
 * Conjugate sampler for the normal distribution.
 * A conjugate sampler can be created for a stochastic node "snode"
 * if it has a normal distribution, all of its marginal stochastic
 * children are normal, they depend only on snode through the mean
 * (and not the precision) and the mean is a linear function of
 * snode.
 */
class ConjugateNormal : public ConjugateSampler {
 public:
  ConjugateNormal(StochasticNode *snode, Graph const &graph);
  ~ConjugateNormal();

  static bool canSample(StochasticNode *snode, Graph const &graph);
  void update();
};

#endif /* CONJUGATE_NORMAL_H_ */


syntax highlighted by Code2HTML, v. 0.9.1