| 78 | 
  | 
    } | 
| 79 | 
  | 
  } | 
| 80 | 
  | 
 | 
| 81 | 
+ | 
void Exclude::addPairs(std::set<int>& set1, std::set<int>& set2) { | 
| 82 | 
+ | 
    for (std::set<int>::iterator iter1 = set1.begin(); iter1 !=  set1.end(); ++ iter1) { | 
| 83 | 
+ | 
        for(std::set<int>::iterator iter2 = set2.begin(); iter2 != set2.end(); ++ iter2) { | 
| 84 | 
+ | 
            this->addPair(*iter1, * iter2); | 
| 85 | 
+ | 
        } | 
| 86 | 
+ | 
    }     | 
| 87 | 
+ | 
} | 
| 88 | 
+ | 
 | 
| 89 | 
+ | 
template<typename IterType1, typename IterType2> | 
| 90 | 
+ | 
void Exclude::addPairs(IterType1 iter1_first, IterType1 iter1_last, IterType2 iter2_first, IterType2 iter2_last) { | 
| 91 | 
+ | 
    for (IterType1 iter1 = iter1_first; iter1 != iter1_last; ++ iter1) { | 
| 92 | 
+ | 
        for(IterType2 iter2 = iter2_first; iter2 != iter2_last; ++ iter2) { | 
| 93 | 
+ | 
            this->addPair(*iter1, * iter2); | 
| 94 | 
+ | 
        } | 
| 95 | 
+ | 
    } | 
| 96 | 
+ | 
} | 
| 97 | 
+ | 
 | 
| 98 | 
  | 
  void Exclude::removePair(int i, int j) { | 
| 99 | 
  | 
 | 
| 100 | 
  | 
    if (i == j) { | 
| 112 | 
  | 
    } | 
| 113 | 
  | 
  } | 
| 114 | 
  | 
 | 
| 115 | 
+ | 
void Exclude::removePairs(std::set<int>& set1, std::set<int>& set2) { | 
| 116 | 
+ | 
    for (std::set<int>::iterator iter1 = set1.begin(); iter1 !=  set1.end(); ++ iter1) { | 
| 117 | 
+ | 
        for(std::set<int>::iterator iter2 = set2.begin(); iter2 != set2.end(); ++ iter2) { | 
| 118 | 
+ | 
            this->removePair(*iter1, * iter2); | 
| 119 | 
+ | 
        } | 
| 120 | 
+ | 
    }     | 
| 121 | 
+ | 
} | 
| 122 | 
+ | 
 | 
| 123 | 
+ | 
template<typename IterType1, typename IterType2> | 
| 124 | 
+ | 
void Exclude::removePairs(IterType1 iter1_first, IterType1 iter1_last, IterType2 iter2_first, IterType2 iter2_last) { | 
| 125 | 
+ | 
    for (IterType1 iter1 = iter1_first; iter1 != iter1_last; ++ iter1) { | 
| 126 | 
+ | 
        for(IterType2 iter2 = iter2_first; iter2 != iter2_last; ++ iter2) { | 
| 127 | 
+ | 
            this->removePair(*iter1, * iter2); | 
| 128 | 
+ | 
        } | 
| 129 | 
+ | 
    } | 
| 130 | 
+ | 
} | 
| 131 | 
+ | 
 | 
| 132 | 
  | 
  bool Exclude::hasPair(int i, int j) { | 
| 133 | 
  | 
 | 
| 134 | 
  | 
    if (i == j) { |