-/* Copyright (c) 2014-2020. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2014-2022. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
Topo_Cart::Topo_Cart(MPI_Comm comm_old, int ndims, const int dims[], const int periods[], int /*reorder*/, MPI_Comm* comm_cart)
: Topo_Cart(ndims)
{
- MPI_Group newGroup;
- MPI_Group oldGroup;
-
int rank = comm_old->rank();
if(ndims != 0) {
position_[i] = rank / nranks;
rank = rank % nranks;
}
-
+
if(comm_cart != nullptr){
- oldGroup = comm_old->group();
- newGroup = new Group(newSize);
+ const Group* oldGroup = comm_old->group();
+ auto* newGroup = new Group(newSize);
for (int i = 0 ; i < newSize ; i++) {
newGroup->set_mapping(oldGroup->actor(i), i);
}
factors.push_back(2);
}
/* determine all occurrences of uneven prime numbers up to sqrt(num) */
- for (int d = 3; (num > 1) && (d * d < num); d += 2) {
+ int d = 3;
+ while ((num > 1) && (d * d < num)) {
while((num % d) == 0) {
num /= d;
factors.push_back(d);
}
+ d += 2;
}
/* as we looped only up to sqrt(num) one factor > sqrt(num) may be left over */
if(num != 1) {