#include #include using std::vector; using std::set; DevianceNode::DevianceNode(set const ¶meters) : DeterministicNode(Index(1)) { for (set::const_iterator p = parameters.begin(); p != parameters.end(); ++p) { addParent(*p); _parameters.push_back(*p); } } void DevianceNode::forwardSample() { double deviance = 0; for (vector::const_iterator p = _parameters.begin(); p != _parameters.end(); ++p) { StochasticNode const *snode = *p; deviance -= snode->distribution()->logLikelihood(snode->data, snode->parameters()); } deviance *= 2; this->data.setValue(&deviance, 1); }