aboutsummaryrefslogtreecommitdiff
path: root/src/ReduceArraysGlobally.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ReduceArraysGlobally.c')
-rw-r--r--src/ReduceArraysGlobally.c110
1 files changed, 21 insertions, 89 deletions
diff --git a/src/ReduceArraysGlobally.c b/src/ReduceArraysGlobally.c
index 9f0e6e4..8eda7e8 100644
--- a/src/ReduceArraysGlobally.c
+++ b/src/ReduceArraysGlobally.c
@@ -180,18 +180,6 @@ static int ReduceArraysGlobally (const cGH *GH,
CCTK_INT * input_array_dims;
CCTK_INT * input_array_gz;
- /* temporary complex variables*/
- CCTK_COMPLEX cmplx_tmp;
- #ifdef HAVE_CCTK_COMPLEX8
- CCTK_COMPLEX8 cmplx_tmp8;
- #endif
- #ifdef HAVE_CCTK_COMPLEX16
- CCTK_COMPLEX16 cmplx_tmp16;
- #endif
- #ifdef HAVE_CCTK_COMPLEX32
- CCTK_COMPLEX32 cmplx_tmp32;
- #endif
-
#ifdef CCTK_MPI
int nprocs = 0, global_operation = 0;
const pGH *pughGH = NULL;
@@ -831,25 +819,21 @@ static int ReduceArraysGlobally (const cGH *GH,
break;
#endif
case CCTK_VARIABLE_COMPLEX:
- (*( (CCTK_COMPLEX *) output_values[i])).Re = (*( (CCTK_COMPLEX *) output_values[i])).Re / weight_sum;
- (*( (CCTK_COMPLEX *) output_values[i])).Im = (*( (CCTK_COMPLEX *) output_values[i])).Im / weight_sum;
+ *( (CCTK_COMPLEX *) output_values[i]) = *( (CCTK_COMPLEX *) output_values[i]) / weight_sum;
break;
#ifdef HAVE_CCTK_COMPLEX8
case CCTK_VARIABLE_COMPLEX8:
- (*( (CCTK_COMPLEX8 *) output_values[i])).Re = (*( (CCTK_COMPLEX8 *) output_values[i])).Re / weight_sum;
- (*( (CCTK_COMPLEX8 *) output_values[i])).Im = (*( (CCTK_COMPLEX8 *) output_values[i])).Im / weight_sum;
+ *( (CCTK_COMPLEX8 *) output_values[i]) = *( (CCTK_COMPLEX8 *) output_values[i]) / weight_sum;
break;
#endif
#ifdef HAVE_CCTK_COMPLEX16
case CCTK_VARIABLE_COMPLEX16:
- (*( (CCTK_COMPLEX16 *) output_values[i])).Re = (*( (CCTK_COMPLEX16 *) output_values[i])).Re / weight_sum;
- (*( (CCTK_COMPLEX16 *) output_values[i])).Im = (*( (CCTK_COMPLEX16 *) output_values[i])).Im / weight_sum;
+ *( (CCTK_COMPLEX16 *) output_values[i]) = *( (CCTK_COMPLEX16 *) output_values[i]) / weight_sum;
break;
#endif
#ifdef HAVE_CCTK_COMPLEX32
case CCTK_VARIABLE_COMPLEX32:
- (*( (CCTK_COMPLEX32 *) output_values[i])).Re = (*( (CCTK_COMPLEX32 *) output_values[i])).Re / weight_sum;
- (*( (CCTK_COMPLEX32 *) output_values[i])).Im = (*( (CCTK_COMPLEX32 *) output_values[i])).Im / weight_sum;
+ *( (CCTK_COMPLEX32 *) output_values[i]) = *( (CCTK_COMPLEX32 *) output_values[i]) / weight_sum;
break;
#endif
}
@@ -913,25 +897,21 @@ static int ReduceArraysGlobally (const cGH *GH,
break;
#endif
case CCTK_VARIABLE_COMPLEX:
- (*( (CCTK_COMPLEX *) output_values[i])).Re = (*( (CCTK_COMPLEX *) output_values[i])).Re / num_points;
- (*( (CCTK_COMPLEX *) output_values[i])).Im = (*( (CCTK_COMPLEX *) output_values[i])).Im / num_points;
+ *( (CCTK_COMPLEX *) output_values[i]) = *( (CCTK_COMPLEX *) output_values[i]) / num_points;
break;
#ifdef HAVE_CCTK_COMPLEX8
case CCTK_VARIABLE_COMPLEX8:
- (*( (CCTK_COMPLEX8 *) output_values[i])).Re = (*( (CCTK_COMPLEX8 *) output_values[i])).Re / num_points;
- (*( (CCTK_COMPLEX8 *) output_values[i])).Im = (*( (CCTK_COMPLEX8 *) output_values[i])).Im / num_points;
+ *( (CCTK_COMPLEX8 *) output_values[i]) = *( (CCTK_COMPLEX8 *) output_values[i]) / num_points;
break;
#endif
#ifdef HAVE_CCTK_COMPLEX16
case CCTK_VARIABLE_COMPLEX16:
- (*( (CCTK_COMPLEX16 *) output_values[i])).Re = (*( (CCTK_COMPLEX16 *) output_values[i])).Re / num_points;
- (*( (CCTK_COMPLEX16 *) output_values[i])).Im = (*( (CCTK_COMPLEX16 *) output_values[i])).Im / num_points;
+ *( (CCTK_COMPLEX16 *) output_values[i]) = *( (CCTK_COMPLEX16 *) output_values[i]) / num_points;
break;
#endif
#ifdef HAVE_CCTK_COMPLEX32
case CCTK_VARIABLE_COMPLEX32:
- (*( (CCTK_COMPLEX32 *) output_values[i])).Re = (*( (CCTK_COMPLEX32 *) output_values[i])).Re / num_points;
- (*( (CCTK_COMPLEX32 *) output_values[i])).Im = (*( (CCTK_COMPLEX32 *) output_values[i])).Im / num_points;
+ *( (CCTK_COMPLEX32 *) output_values[i]) = *( (CCTK_COMPLEX32 *) output_values[i]) / num_points;
break;
#endif
}
@@ -950,7 +930,7 @@ static int ReduceArraysGlobally (const cGH *GH,
*( (CCTK_BYTE *) output_values[i]) = sqrt(*( (CCTK_BYTE *) output_values[i]));
break;
case CCTK_VARIABLE_INT:
- *( (CCTK_INT *) output_values[i]) = sqrt( *( (CCTK_INT *) output_values[i]));
+ *( (CCTK_INT *) output_values[i]) = sqrt(*( (CCTK_INT *) output_values[i]));
break;
#ifdef HAVE_CCTK_INT1
case CCTK_VARIABLE_INT1:
@@ -991,37 +971,21 @@ static int ReduceArraysGlobally (const cGH *GH,
break;
#endif
case CCTK_VARIABLE_COMPLEX:
- cmplx_tmp.Re = (*( (CCTK_COMPLEX *) output_values[i])).Re;
- cmplx_tmp.Im = (*( (CCTK_COMPLEX *) output_values[i])).Im;
- cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/2.0);
- (*( (CCTK_COMPLEX *) output_values[i])).Re = cmplx_tmp.Re;
- (*( (CCTK_COMPLEX *) output_values[i])).Im = cmplx_tmp.Im;
+ *( (CCTK_COMPLEX *) output_values[i]) = CCTK_CmplxSqrt(*( (CCTK_COMPLEX *) output_values[i]));
break;
#ifdef HAVE_CCTK_COMPLEX8
case CCTK_VARIABLE_COMPLEX8:
- cmplx_tmp8.Re = (*( (CCTK_COMPLEX8 *) output_values[i])).Re;
- cmplx_tmp8.Im = (*( (CCTK_COMPLEX8 *) output_values[i])).Im;
- cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/2.0);
- (*( (CCTK_COMPLEX8 *) output_values[i])).Re = cmplx_tmp8.Re;
- (*( (CCTK_COMPLEX8 *) output_values[i])).Im = cmplx_tmp8.Im;
+ *( (CCTK_COMPLEX8 *) output_values[i]) = CCTK_Cmplx8Sqrt(*( (CCTK_COMPLEX8 *) output_values[i]));
break;
#endif
#ifdef HAVE_CCTK_COMPLEX16
case CCTK_VARIABLE_COMPLEX16:
- cmplx_tmp16.Re = (*( (CCTK_COMPLEX16 *) output_values[i])).Re;
- cmplx_tmp16.Im = (*( (CCTK_COMPLEX16 *) output_values[i])).Im;
- cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/2.0);
- (*( (CCTK_COMPLEX16 *) output_values[i])).Re = cmplx_tmp16.Re;
- (*( (CCTK_COMPLEX16 *) output_values[i])).Im = cmplx_tmp16.Im;
+ *( (CCTK_COMPLEX16 *) output_values[i]) = CCTK_Cmplx16Sqrt(*( (CCTK_COMPLEX16 *) output_values[i]));
break;
#endif
#ifdef HAVE_CCTK_COMPLEX32
case CCTK_VARIABLE_COMPLEX32:
- cmplx_tmp32.Re = (*( (CCTK_COMPLEX32 *) output_values[i])).Re;
- cmplx_tmp32.Im = (*( (CCTK_COMPLEX32 *) output_values[i])).Im;
- cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/2.0);
- (*( (CCTK_COMPLEX32 *) output_values[i])).Re = cmplx_tmp32.Re;
- (*( (CCTK_COMPLEX32 *) output_values[i])).Im = cmplx_tmp32.Im;
+ *( (CCTK_COMPLEX32 *) output_values[i]) = CCTK_Cmplx32Sqrt(*( (CCTK_COMPLEX32 *) output_values[i]));
break;
#endif
}
@@ -1080,37 +1044,21 @@ static int ReduceArraysGlobally (const cGH *GH,
break;
#endif
case CCTK_VARIABLE_COMPLEX:
- cmplx_tmp.Re = (*( (CCTK_COMPLEX *) output_values[i])).Re;
- cmplx_tmp.Im = (*( (CCTK_COMPLEX *) output_values[i])).Im;
- cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/3.0);
- (*( (CCTK_COMPLEX *) output_values[i])).Re = cmplx_tmp.Re;
- (*( (CCTK_COMPLEX *) output_values[i])).Im = cmplx_tmp.Im;
+ *( (CCTK_COMPLEX *) output_values[i]) = CCTK_CmplxPow(*( (CCTK_COMPLEX *) output_values[i]), 1.0/3.0);
break;
#ifdef HAVE_CCTK_COMPLEX8
case CCTK_VARIABLE_COMPLEX8:
- cmplx_tmp8.Re = (*( (CCTK_COMPLEX8 *) output_values[i])).Re;
- cmplx_tmp8.Im = (*( (CCTK_COMPLEX8 *) output_values[i])).Im;
- cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/3.0);
- (*( (CCTK_COMPLEX8 *) output_values[i])).Re = cmplx_tmp8.Re;
- (*( (CCTK_COMPLEX8 *) output_values[i])).Im = cmplx_tmp8.Im;
+ *( (CCTK_COMPLEX8 *) output_values[i]) = CCTK_Cmplx8Pow(*( (CCTK_COMPLEX8 *) output_values[i]), 1.0/3.0);
break;
#endif
#ifdef HAVE_CCTK_COMPLEX16
case CCTK_VARIABLE_COMPLEX16:
- cmplx_tmp16.Re = (*( (CCTK_COMPLEX16 *) output_values[i])).Re;
- cmplx_tmp16.Im = (*( (CCTK_COMPLEX16 *) output_values[i])).Im;
- cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/3.0);
- (*( (CCTK_COMPLEX16 *) output_values[i])).Re = cmplx_tmp16.Re;
- (*( (CCTK_COMPLEX16 *) output_values[i])).Im = cmplx_tmp16.Im;
+ *( (CCTK_COMPLEX16 *) output_values[i]) = CCTK_Cmplx16Pow(*( (CCTK_COMPLEX16 *) output_values[i]), 1.0/3.0);
break;
#endif
#ifdef HAVE_CCTK_COMPLEX32
case CCTK_VARIABLE_COMPLEX32:
- cmplx_tmp32.Re = (*( (CCTK_COMPLEX32 *) output_values[i])).Re;
- cmplx_tmp32.Im = (*( (CCTK_COMPLEX32 *) output_values[i])).Im;
- cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/3.0);
- (*( (CCTK_COMPLEX32 *) output_values[i])).Re = cmplx_tmp32.Re;
- (*( (CCTK_COMPLEX32 *) output_values[i])).Im = cmplx_tmp32.Im;
+ *( (CCTK_COMPLEX32 *) output_values[i]) = CCTK_Cmplx32Pow(*( (CCTK_COMPLEX32 *) output_values[i]), 1.0/3.0);
break;
#endif
}
@@ -1169,37 +1117,21 @@ static int ReduceArraysGlobally (const cGH *GH,
break;
#endif
case CCTK_VARIABLE_COMPLEX:
- cmplx_tmp.Re = (*( (CCTK_COMPLEX *) output_values[i])).Re;
- cmplx_tmp.Im = (*( (CCTK_COMPLEX *) output_values[i])).Im;
- cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/4.0);
- (*( (CCTK_COMPLEX *) output_values[i])).Re = cmplx_tmp.Re;
- (*( (CCTK_COMPLEX *) output_values[i])).Im = cmplx_tmp.Im;
+ *( (CCTK_COMPLEX *) output_values[i]) = CCTK_CmplxPow(*( (CCTK_COMPLEX *) output_values[i]), 1.0/4.0);
break;
#ifdef HAVE_CCTK_COMPLEX8
case CCTK_VARIABLE_COMPLEX8:
- cmplx_tmp8.Re = (*( (CCTK_COMPLEX8 *) output_values[i])).Re;
- cmplx_tmp8.Im = (*( (CCTK_COMPLEX8 *) output_values[i])).Im;
- cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/4.0);
- (*( (CCTK_COMPLEX8 *) output_values[i])).Re = cmplx_tmp8.Re;
- (*( (CCTK_COMPLEX8 *) output_values[i])).Im = cmplx_tmp8.Im;
+ *( (CCTK_COMPLEX8 *) output_values[i]) = CCTK_Cmplx8Pow(*( (CCTK_COMPLEX8 *) output_values[i]), 1.0/4.0);
break;
#endif
#ifdef HAVE_CCTK_COMPLEX16
case CCTK_VARIABLE_COMPLEX16:
- cmplx_tmp16.Re = (*( (CCTK_COMPLEX16 *) output_values[i])).Re;
- cmplx_tmp16.Im = (*( (CCTK_COMPLEX16 *) output_values[i])).Im;
- cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/4.0);
- (*( (CCTK_COMPLEX16 *) output_values[i])).Re = cmplx_tmp16.Re;
- (*( (CCTK_COMPLEX16 *) output_values[i])).Im = cmplx_tmp16.Im;
+ *( (CCTK_COMPLEX16 *) output_values[i]) = CCTK_Cmplx16Pow(*( (CCTK_COMPLEX16 *) output_values[i]), 1.0/4.0);
break;
#endif
#ifdef HAVE_CCTK_COMPLEX32
case CCTK_VARIABLE_COMPLEX32:
- cmplx_tmp32.Re = (*( (CCTK_COMPLEX32 *) output_values[i])).Re;
- cmplx_tmp32.Im = (*( (CCTK_COMPLEX32 *) output_values[i])).Im;
- cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/4.0);
- (*( (CCTK_COMPLEX32 *) output_values[i])).Re = cmplx_tmp32.Re;
- (*( (CCTK_COMPLEX32 *) output_values[i])).Im = cmplx_tmp32.Im;
+ *( (CCTK_COMPLEX32 *) output_values[i]) = CCTK_Cmplx32Pow(*( (CCTK_COMPLEX32 *) output_values[i]), 1.0/4.0);
break;
#endif
}