+ return this->incl(ranks, newgroup);
+}
+
+int Group::excl(int n, const int* ranks, MPI_Group* newgroup) const
+{
+ std::vector<bool> to_excl(size(), false);
+ for (int i = 0; i < n; i++)
+ to_excl[ranks[i]] = true;
+ return this->excl(to_excl, newgroup);
+}
+
+static bool is_rank_in_range(int rank, int first, int last)
+{
+ return (first <= rank && rank <= last) || (first >= rank && rank >= last);
+}
+
+int Group::range_incl(int n, const int ranges[][3], MPI_Group* newgroup) const
+{
+ std::vector<int> ranks;