30 std::map<int32_t, std::set<int32_t> > iAdjMap;
31 std::map<int32_t, std::set<int32_t> >::iterator iAdjMapIt;
40 int32_t keyCounter = 0;
44 for (
size_t i = 0; i < factors.size(); i++) {
46 for(
const Key& key: *factors[i]) {
47 keySet.insert(keySet.end(), key);
48 if (intKeyBMap_.left.find(key) == intKeyBMap_.left.end()) {
49 intKeyBMap_.insert(key, keyCounter);
57 for (
size_t i = 0; i < factors.size(); i++) {
59 for(
const Key& k1: *factors[i])
60 for(
const Key& k2: *factors[i])
63 int i = intKeyBMap_.left.at(k1);
64 int j = intKeyBMap_.left.at(k2);
65 iAdjMap[i].insert(iAdjMap[i].end(), j);
71 nKeys_ = keySet.size();
74 for (iAdjMapIt = iAdjMap.begin(); iAdjMapIt != iAdjMap.end(); ++iAdjMapIt) {
75 std::vector<int32_t> temp;
77 std::copy(iAdjMapIt->second.begin(), iAdjMapIt->second.end(),
78 std::back_inserter(temp));
80 adj_.insert(adj_.end(), temp.begin(), temp.end());
82 xadj_.push_back((int32_t) adj_.size());