diff options
Diffstat (limited to 'src/ReduceGA.c')
-rw-r--r-- | src/ReduceGA.c | 108 |
1 files changed, 20 insertions, 88 deletions
diff --git a/src/ReduceGA.c b/src/ReduceGA.c index 72c74f3..32664e5 100644 --- a/src/ReduceGA.c +++ b/src/ReduceGA.c @@ -161,18 +161,6 @@ static int ReduceGridArrays (const cGH *GH, CCTK_INT * input_array_type_codes; 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; @@ -835,25 +823,21 @@ static int ReduceGridArrays (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 } @@ -917,25 +901,21 @@ static int ReduceGridArrays (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 } @@ -995,37 +975,21 @@ static int ReduceGridArrays (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 } @@ -1084,37 +1048,21 @@ static int ReduceGridArrays (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 } @@ -1173,37 +1121,21 @@ static int ReduceGridArrays (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 } |