Fix implementation of absmax
This commit is contained in:
@ -400,11 +400,13 @@ void ComputeReduce::compute_vector()
|
|||||||
if (mode == SUM || mode == SUMSQ || mode == AVEABS) {
|
if (mode == SUM || mode == SUMSQ || mode == AVEABS) {
|
||||||
for (int m = 0; m < nvalues; m++)
|
for (int m = 0; m < nvalues; m++)
|
||||||
MPI_Allreduce(&onevec[m], &vector[m], 1, MPI_DOUBLE, MPI_SUM, world);
|
MPI_Allreduce(&onevec[m], &vector[m], 1, MPI_DOUBLE, MPI_SUM, world);
|
||||||
|
} else if (mode == MINABS || mode == MAXABS) {
|
||||||
|
for (int m = 0; m < nvalues; m++)
|
||||||
|
MPI_Allreduce(&onevec[m], &vector[m], 1, MPI_DOUBLE, this->scalar_reduction_operation, world);
|
||||||
} else if (mode == MINN) {
|
} else if (mode == MINN) {
|
||||||
if (!replace) {
|
if (!replace) {
|
||||||
for (int m = 0; m < nvalues; m++)
|
for (int m = 0; m < nvalues; m++)
|
||||||
MPI_Allreduce(&onevec[m], &vector[m], 1, MPI_DOUBLE, MPI_MIN, world);
|
MPI_Allreduce(&onevec[m], &vector[m], 1, MPI_DOUBLE, this->scalar_reduction_operation, world);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
for (int m = 0; m < nvalues; m++)
|
for (int m = 0; m < nvalues; m++)
|
||||||
@ -421,11 +423,10 @@ void ComputeReduce::compute_vector()
|
|||||||
MPI_Bcast(&vector[m], 1, MPI_DOUBLE, owner[replace[m]], world);
|
MPI_Bcast(&vector[m], 1, MPI_DOUBLE, owner[replace[m]], world);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (mode == MAXX) {
|
} else if (mode == MAXX) {
|
||||||
if (!replace) {
|
if (!replace) {
|
||||||
for (int m = 0; m < nvalues; m++)
|
for (int m = 0; m < nvalues; m++)
|
||||||
MPI_Allreduce(&onevec[m], &vector[m], 1, MPI_DOUBLE, MPI_MAX, world);
|
MPI_Allreduce(&onevec[m], &vector[m], 1, MPI_DOUBLE, this->scalar_reduction_operation, world);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
for (int m = 0; m < nvalues; m++)
|
for (int m = 0; m < nvalues; m++)
|
||||||
|
|||||||
Reference in New Issue
Block a user