#include <sampler/GibbsFactory.h>
#include <sampler/GibbsSampler.h>
#include <graph/StochasticNode.h>
#include <sampler/Sampler.h>
using std::vector;
using std::set;
void GibbsFactory::makeSampler(set<StochasticNode*> &nodes,
Graph const &graph,
vector<Sampler*> &samplers) const
{
for (set<StochasticNode*>::iterator p(nodes.begin()); p != nodes.end(); )
{
if (canSample(*p, graph)) {
samplers.push_back(makeGibbsSampler(*p, graph));
nodes.erase(p++); //Avoid invalidating the iterator
}
else {
++p;
}
}
}
syntax highlighted by Code2HTML, v. 0.9.1