surplus 8 ompi/mca/topo/treematch/treematch/k-partitioning.c void initialization(int * const part, double ** const matrice, PriorityQueue * const Qpart, PriorityQueue * const Q, PriorityQueue * const Qinst, double ** const D, int n, int k, int * const deficit, int * const surplus); surplus 9 ompi/mca/topo/treematch/treematch/k-partitioning.c void algo(int * const part, double ** const matrice, PriorityQueue * const Qpart, PriorityQueue * const Q, PriorityQueue * const Qinst, double ** const D, int n, int * const deficit, int * const surplus); surplus 10 ompi/mca/topo/treematch/treematch/k-partitioning.c double nextGain(PriorityQueue * const Qpart, PriorityQueue * const Q, int * const deficit, int * const surplus); surplus 11 ompi/mca/topo/treematch/treematch/k-partitioning.c void balancing(int n, int deficit, int surplus, double ** const D, int * const part); surplus 25 ompi/mca/topo/treematch/treematch/k-partitioning.c int deficit, surplus, *part = NULL; surplus 34 ompi/mca/topo/treematch/treematch/k-partitioning.c initialization(part, comm, &Qpart, Q, Qinst, D, real_n, k, &deficit, &surplus); surplus 37 ompi/mca/topo/treematch/treematch/k-partitioning.c while((nextGain(&Qpart, Q, &deficit, &surplus))>0) surplus 39 ompi/mca/topo/treematch/treematch/k-partitioning.c algo(part, comm, &Qpart, Q, Qinst, D, real_n, &deficit, &surplus); surplus 43 ompi/mca/topo/treematch/treematch/k-partitioning.c balancing(real_n, deficit, surplus, D, part); /*if partition isn't balanced we have to make one last move*/ surplus 61 ompi/mca/topo/treematch/treematch/k-partitioning.c void initialization(int * const part, double ** const matrice, PriorityQueue * const Qpart, PriorityQueue * const Q, PriorityQueue * const Qinst, double ** const D, int n, int k, int * const deficit, int * const surplus) surplus 103 ompi/mca/topo/treematch/treematch/k-partitioning.c *surplus = *deficit = 0; surplus 106 ompi/mca/topo/treematch/treematch/k-partitioning.c void algo(int * const part, double ** const matrice, PriorityQueue * const Qpart, PriorityQueue * const Q, PriorityQueue * const Qinst, double ** const D, int n, int * const deficit, int * const surplus) surplus 110 ompi/mca/topo/treematch/treematch/k-partitioning.c if(*deficit == *surplus) /*if the current partition is balanced*/ surplus 118 ompi/mca/topo/treematch/treematch/k-partitioning.c u = PQ_deleteMax(&Q[*surplus]); /*we get the vertex with the highest possible gain in surplus and remove it from Q[surplus] */ surplus 129 ompi/mca/topo/treematch/treematch/k-partitioning.c *surplus = j; /*this subset becomes surplus*/ surplus 136 ompi/mca/topo/treematch/treematch/k-partitioning.c j = *surplus; /*we put back the arrival subset in j*/ surplus 144 ompi/mca/topo/treematch/treematch/k-partitioning.c part[u] = *surplus; /*we move u from i to j (here surplus has the value of j the arrival subset)*/ surplus 152 ompi/mca/topo/treematch/treematch/k-partitioning.c double nextGain(PriorityQueue * const Qpart, PriorityQueue * const Q, int * const deficit, int * const surplus) surplus 155 ompi/mca/topo/treematch/treematch/k-partitioning.c if(*deficit == *surplus) /*if the current partition is balanced*/ surplus 158 ompi/mca/topo/treematch/treematch/k-partitioning.c res = PQ_findMaxKey(&Q[*surplus]); /*we get the highest possible gain from surplus*/ surplus 162 ompi/mca/topo/treematch/treematch/k-partitioning.c void balancing(int n, int deficit, int surplus, double ** const D, int * const part) surplus 164 ompi/mca/topo/treematch/treematch/k-partitioning.c if(surplus != deficit) /*if the current partition is not balanced*/ surplus 171 ompi/mca/topo/treematch/treematch/k-partitioning.c if(part[i] == surplus) /*if i is from surplus*/ surplus 172 ompi/mca/topo/treematch/treematch/k-partitioning.c PQ_insert(&moves, i, D[i][deficit]-D[i][surplus]); /*we insert i in moves with the gain we get from moving i from surplus to deficit as key */