void ref();
static void unref(MPI_Group group);
int size() const { return static_cast<int>(rank_to_actor_map_.size()); }
- int compare(MPI_Group group2) const;
+ int compare(const Group* group2) const;
int incl(int n, const int* ranks, MPI_Group* newgroup) const;
int excl(int n, const int* ranks, MPI_Group* newgroup) const;
- int group_union(MPI_Group group2, MPI_Group* newgroup) const;
- int intersection(MPI_Group group2, MPI_Group* newgroup) const;
- int difference(MPI_Group group2, MPI_Group* newgroup) const;
- int range_incl(int n, int ranges[][3], MPI_Group* newgroup) const;
- int range_excl(int n, int ranges[][3], MPI_Group* newgroup) const;
+ int group_union(const Group* group2, MPI_Group* newgroup) const;
+ int intersection(const Group* group2, MPI_Group* newgroup) const;
+ int difference(const Group* group2, MPI_Group* newgroup) const;
+ int range_incl(int n, const int ranges[][3], MPI_Group* newgroup) const;
+ int range_excl(int n, const int ranges[][3], MPI_Group* newgroup) const;
static Group* f2c(int id);
};
}
}
-int Group::compare(MPI_Group group2) const
+int Group::compare(const Group* group2) const
{
int result;
return incl(static_cast<int>(ranks.size()), ranks.data(), newgroup);
}
-int Group::group_union(MPI_Group group2, MPI_Group* newgroup) const
+int Group::group_union(const Group* group2, MPI_Group* newgroup) const
{
std::vector<int> ranks2;
for (int i = 0; i < group2->size(); i++) {
return MPI_SUCCESS;
}
-int Group::intersection(MPI_Group group2, MPI_Group* newgroup) const
+int Group::intersection(const Group* group2, MPI_Group* newgroup) const
{
std::vector<int> ranks2;
for (int i = 0; i < group2->size(); i++) {
return group2->incl(ranks2, newgroup);
}
-int Group::difference(MPI_Group group2, MPI_Group* newgroup) const
+int Group::difference(const Group* group2, MPI_Group* newgroup) const
{
std::vector<int> ranks;
for (int i = 0; i < size(); i++) {
return (first <= rank && rank <= last) || (first >= rank && rank >= last);
}
-int Group::range_incl(int n, int ranges[][3], MPI_Group* newgroup) const
+int Group::range_incl(int n, const int ranges[][3], MPI_Group* newgroup) const
{
std::vector<int> ranks;
for (int i = 0; i < n; i++) {
return this->incl(ranks, newgroup);
}
-int Group::range_excl(int n, int ranges[][3], MPI_Group* newgroup) const
+int Group::range_excl(int n, const int ranges[][3], MPI_Group* newgroup) const
{
std::vector<bool> to_excl(size(), false);
for (int i = 0; i < n; i++) {