void drwnFactor::addVariables(const drwnClique& c) { for (drwnClique::const_iterator it = c.begin(); it != c.end(); ++it) { if (_varIndex.find(*it) == _varIndex.end()) { addVariable(*it); } } }
// find a clique containing the subclique int findSuperset(const vector<drwnClique>& cliques, const drwnClique& subclique) { for (int i = 0; i < (int)cliques.size(); i++) { drwnClique s; set_intersection(cliques[i].begin(), cliques[i].end(), subclique.begin(), subclique.end(), insert_iterator<drwnClique>(s, s.begin())); if (s.size() == subclique.size()) { return i; } } return -1; }