From 099b127f7e4b55be516586cc0ef239b844f25c45 Mon Sep 17 00:00:00 2001 From: yye00 Date: Wed, 26 Jan 2005 16:22:23 +0000 Subject: fixed file version, was CCTDevelopment now is CactusBase, made localreduce match globalreduce in terms of using the new complex power function git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/LocalReduce/trunk@54 7daa882c-dc44-4453-834e-278d26b18e6a --- src/ReductionAvg.c | 2 +- src/ReductionCount.c | 2 +- src/ReductionMax.c | 2 +- src/ReductionMin.c | 2 +- src/ReductionNorm1.c | 2 +- src/ReductionNorm2.c | 50 +++++++++++++++++++++++++++++++++++++++++++++----- src/ReductionNorm3.c | 46 ++++++++++++++++++++++++++++++++++++++++++++-- src/ReductionNorm4.c | 48 +++++++++++++++++++++++++++++++++++++++++++++--- src/ReductionSum.c | 2 +- 9 files changed, 140 insertions(+), 16 deletions(-) diff --git a/src/ReductionAvg.c b/src/ReductionAvg.c index 57302ed..0018e3b 100644 --- a/src/ReductionAvg.c +++ b/src/ReductionAvg.c @@ -17,7 +17,7 @@ static const char *rcsid = "$Id$"; -CCTK_FILEVERSION(CCTDevelopment_LocalReduce_ReductionAvg_c); +CCTK_FILEVERSION(CactusBase_LocalReduce_ReductionAvg_c); /* Define the reduction operations */ diff --git a/src/ReductionCount.c b/src/ReductionCount.c index 7be0d36..6df4a38 100644 --- a/src/ReductionCount.c +++ b/src/ReductionCount.c @@ -17,7 +17,7 @@ static const char *rcsid = "$Id$"; -CCTK_FILEVERSION(CCTDevelopment_LocalReduce_ReductionCount_c); +CCTK_FILEVERSION(CactusBase_LocalReduce_ReductionCount_c); /* Define the reduction operations */ diff --git a/src/ReductionMax.c b/src/ReductionMax.c index 4b11890..2862531 100644 --- a/src/ReductionMax.c +++ b/src/ReductionMax.c @@ -17,7 +17,7 @@ static const char *rcsid = "$Id$"; -CCTK_FILEVERSION(CCTDevelopment_LocalReduce_ReductionMax_c); +CCTK_FILEVERSION(CactusBase_LocalReduce_ReductionMax_c); /* Define the reduction operations */ diff --git a/src/ReductionMin.c b/src/ReductionMin.c index e630c38..f96e7c1 100644 --- a/src/ReductionMin.c +++ b/src/ReductionMin.c @@ -17,7 +17,7 @@ static const char *rcsid = "$Id$"; -CCTK_FILEVERSION(CCTDevelopment_LocalReduce_ReductionMin_c); +CCTK_FILEVERSION(CactusBase_LocalReduce_ReductionMin_c); /* Define the reduction operations */ diff --git a/src/ReductionNorm1.c b/src/ReductionNorm1.c index d47d2d0..59652e6 100644 --- a/src/ReductionNorm1.c +++ b/src/ReductionNorm1.c @@ -17,7 +17,7 @@ static const char *rcsid = "$Id$"; -CCTK_FILEVERSION(CCTDevelopment_LocalReduce_ReductionNorm1_c); +CCTK_FILEVERSION(CactusBase_LocalReduce_ReductionNorm1_c); /* Define the reduction operations */ diff --git a/src/ReductionNorm2.c b/src/ReductionNorm2.c index 6876db5..f04397f 100644 --- a/src/ReductionNorm2.c +++ b/src/ReductionNorm2.c @@ -17,7 +17,7 @@ static const char *rcsid = "$Id$"; -CCTK_FILEVERSION(CCTDevelopment_LocalReduce_ReductionNorm2_c); +CCTK_FILEVERSION(CactusBase_LocalReduce_ReductionNorm2_c); /* Define the reduction operations */ @@ -159,6 +159,18 @@ static int ReductionL2 (int N_dims, int operator_handle, CCTK_INT mask_offset; CCTK_INT mask_time_level; + /* temporary complex variables*/ + CCTK_COMPLEX cmplx_tmp; + #ifdef CCTK_COMPLEX8 + CCTK_COMPLEX8 cmplx_tmp8; + #endif + #ifdef CCTK_COMPLEX16 + CCTK_COMPLEX16 cmplx_tmp16; + #endif + #ifdef CCTK_COMPLEX32 + CCTK_COMPLEX32 cmplx_tmp32; + #endif + /* prevent warnings for unused vars */ (void)(mask_array); (void)(mask_offset + 0); @@ -345,74 +357,104 @@ static int ReductionL2 (int N_dims, int operator_handle, /* out values type switches*/ case CCTK_VARIABLE_CHAR: *( (CCTK_CHAR *) output_numbers[i]) = *( (CCTK_CHAR *) output_numbers[i]) / num_points; + *( (CCTK_CHAR *) output_numbers[i]) = sqrt(*( (CCTK_CHAR *) output_numbers[i])); break; case CCTK_VARIABLE_INT: *( (CCTK_INT *) output_numbers[i]) = *( (CCTK_INT *) output_numbers[i]) / num_points; + *( (CCTK_INT *) output_numbers[i]) = sqrt( *( (CCTK_INT *) output_numbers[i])); break; #ifdef CCTK_INT1 case CCTK_VARIABLE_INT1: *( (CCTK_INT1 *) output_numbers[i]) = *( (CCTK_INT1 *) output_numbers[i]) / num_points; + *( (CCTK_INT1 *) output_numbers[i]) = sqrt(*( (CCTK_INT1 *) output_numbers[i])); break; #endif #ifdef CCTK_INT2 case CCTK_VARIABLE_INT2: *( (CCTK_INT2 *) output_numbers[i]) = *( (CCTK_INT2 *) output_numbers[i]) / num_points; + *( (CCTK_INT2 *) output_numbers[i]) = sqrt(*( (CCTK_INT2 *) output_numbers[i])); break; #endif #ifdef CCTK_INT4 case CCTK_VARIABLE_INT4: *( (CCTK_INT4 *) output_numbers[i]) = *( (CCTK_INT4 *) output_numbers[i]) / num_points; + *( (CCTK_INT4 *) output_numbers[i]) = sqrt( *( (CCTK_INT4 *) output_numbers[i])); break; #endif #ifdef CCTK_INT8 case CCTK_VARIABLE_INT8: *( (CCTK_INT8 *) output_numbers[i]) = *( (CCTK_INT8 *) output_numbers[i]) / num_points; + *( (CCTK_INT8 *) output_numbers[i]) = sqrt(*( (CCTK_INT8 *) output_numbers[i])); break; #endif case CCTK_VARIABLE_REAL: *( (CCTK_REAL *) output_numbers[i]) = *( (CCTK_REAL *) output_numbers[i]) / num_points; + *( (CCTK_REAL *) output_numbers[i]) = sqrt(*( (CCTK_REAL *) output_numbers[i])); break; #ifdef CCTK_REAL4 case CCTK_VARIABLE_REAL4: *( (CCTK_REAL4 *) output_numbers[i]) = *( (CCTK_REAL4 *) output_numbers[i]) / num_points; + *( (CCTK_REAL4 *) output_numbers[i]) = sqrt(*( (CCTK_REAL4 *) output_numbers[i])); break; #endif #ifdef CCTK_REAL8 case CCTK_VARIABLE_REAL8: *( (CCTK_REAL8 *) output_numbers[i]) = *( (CCTK_REAL8 *) output_numbers[i]) / num_points; + *( (CCTK_REAL8 *) output_numbers[i]) = sqrt(*( (CCTK_REAL8 *) output_numbers[i])); break; #endif #ifdef CCTK_REAL16 case CCTK_VARIABLE_REAL16: *( (CCTK_REAL16 *) output_numbers[i]) = *( (CCTK_REAL16 *) output_numbers[i]) / num_points; + *( (CCTK_REAL16 *) output_numbers[i]) = sqrt(*( (CCTK_REAL16 *) output_numbers[i])); break; #endif case CCTK_VARIABLE_COMPLEX: (*( (CCTK_COMPLEX *) output_numbers[i])).Re = (*( (CCTK_COMPLEX *) output_numbers[i])).Re / num_points; (*( (CCTK_COMPLEX *) output_numbers[i])).Im = (*( (CCTK_COMPLEX *) output_numbers[i])).Im / num_points; + cmplx_tmp.Re = (*( (CCTK_COMPLEX *) output_numbers[i])).Re; + cmplx_tmp.Im = (*( (CCTK_COMPLEX *) output_numbers[i])).Im; + cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/2.0); + (*( (CCTK_COMPLEX *) output_numbers[i])).Re = cmplx_tmp.Re; + (*( (CCTK_COMPLEX *) output_numbers[i])).Im = cmplx_tmp.Im; break; #ifdef CCTK_COMPLEX8 case CCTK_VARIABLE_COMPLEX8: (*( (CCTK_COMPLEX8 *) output_numbers[i])).Re = (*( (CCTK_COMPLEX8 *) output_numbers[i])).Re / num_points; (*( (CCTK_COMPLEX8 *) output_numbers[i])).Im = (*( (CCTK_COMPLEX8 *) output_numbers[i])).Im / num_points; + cmplx_tmp8.Re = (*( (CCTK_COMPLEX8 *) output_numbers[i])).Re; + cmplx_tmp8.Im = (*( (CCTK_COMPLEX8 *) output_numbers[i])).Im; + cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/2.0); + (*( (CCTK_COMPLEX8 *) output_numbers[i])).Re = cmplx_tmp8.Re; + (*( (CCTK_COMPLEX8 *) output_numbers[i])).Im = cmplx_tmp8.Im; break; #endif #ifdef CCTK_COMPLEX16 case CCTK_VARIABLE_COMPLEX16: (*( (CCTK_COMPLEX16 *) output_numbers[i])).Re = (*( (CCTK_COMPLEX16 *) output_numbers[i])).Re / num_points; (*( (CCTK_COMPLEX16 *) output_numbers[i])).Im = (*( (CCTK_COMPLEX16 *) output_numbers[i])).Im / num_points; + cmplx_tmp16.Re = (*( (CCTK_COMPLEX16 *) output_numbers[i])).Re; + cmplx_tmp16.Im = (*( (CCTK_COMPLEX16 *) output_numbers[i])).Im; + cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/2.0); + (*( (CCTK_COMPLEX16 *) output_numbers[i])).Re = cmplx_tmp16.Re; + (*( (CCTK_COMPLEX16 *) output_numbers[i])).Im = cmplx_tmp16.Im; break; #endif #ifdef CCTK_COMPLEX32 case CCTK_VARIABLE_COMPLEX32: (*( (CCTK_COMPLEX32 *) output_numbers[i])).Re = (*( (CCTK_COMPLEX32 *) output_numbers[i])).Re / num_points; (*( (CCTK_COMPLEX32 *) output_numbers[i])).Im = (*( (CCTK_COMPLEX32 *) output_numbers[i])).Im / num_points; + cmplx_tmp32.Re = (*( (CCTK_COMPLEX32 *) output_numbers[i])).Re; + cmplx_tmp32.Im = (*( (CCTK_COMPLEX32 *) output_numbers[i])).Im; + cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/2.0); + (*( (CCTK_COMPLEX32 *) output_numbers[i])).Re = cmplx_tmp32.Re; + (*( (CCTK_COMPLEX32 *) output_numbers[i])).Im = cmplx_tmp32.Im; break; #endif } } } - + /* free memory */ free (iters_per_dim); free (indices); @@ -424,6 +466,4 @@ static int ReductionL2 (int N_dims, int operator_handle, free (input_array_max_subscripts); return (0); -} - - +} \ No newline at end of file diff --git a/src/ReductionNorm3.c b/src/ReductionNorm3.c index b201136..bb54b82 100644 --- a/src/ReductionNorm3.c +++ b/src/ReductionNorm3.c @@ -17,7 +17,7 @@ static const char *rcsid = "$Id$"; -CCTK_FILEVERSION(CCTDevelopment_LocalReduce_ReductionNorm3_c); +CCTK_FILEVERSION(CactusBase_LocalReduce_ReductionNorm3_c); /* Define the reduction operations */ @@ -159,6 +159,18 @@ static int ReductionL3 (int N_dims, int operator_handle, CCTK_INT mask_offset; CCTK_INT mask_time_level; + /* temporary complex variables*/ + CCTK_COMPLEX cmplx_tmp; + #ifdef CCTK_COMPLEX8 + CCTK_COMPLEX8 cmplx_tmp8; + #endif + #ifdef CCTK_COMPLEX16 + CCTK_COMPLEX16 cmplx_tmp16; + #endif + #ifdef CCTK_COMPLEX32 + CCTK_COMPLEX32 cmplx_tmp32; + #endif + /* prevent warnings for unused vars */ (void)(mask_array); (void)(mask_offset + 0); @@ -342,74 +354,104 @@ static int ReductionL3 (int N_dims, int operator_handle, /* out values type switches*/ case CCTK_VARIABLE_CHAR: *( (CCTK_CHAR *) output_numbers[i]) = *( (CCTK_CHAR *) output_numbers[i]) / num_points; + *( (CCTK_CHAR *) output_numbers[i]) = pow(*( (CCTK_CHAR *) output_numbers[i]), 1.0/3.0); break; case CCTK_VARIABLE_INT: *( (CCTK_INT *) output_numbers[i]) = *( (CCTK_INT *) output_numbers[i]) / num_points; + *( (CCTK_INT *) output_numbers[i]) = pow(*( (CCTK_INT *) output_numbers[i]), 1.0/3.0); break; #ifdef CCTK_INT1 case CCTK_VARIABLE_INT1: *( (CCTK_INT1 *) output_numbers[i]) = *( (CCTK_INT1 *) output_numbers[i]) / num_points; + *( (CCTK_INT1 *) output_numbers[i]) = pow(*( (CCTK_INT1 *) output_numbers[i]), 1.0/3.0); break; #endif #ifdef CCTK_INT2 case CCTK_VARIABLE_INT2: *( (CCTK_INT2 *) output_numbers[i]) = *( (CCTK_INT2 *) output_numbers[i]) / num_points; + *( (CCTK_INT2 *) output_numbers[i]) = pow(*( (CCTK_INT2 *) output_numbers[i]), 1.0/3.0); break; #endif #ifdef CCTK_INT4 case CCTK_VARIABLE_INT4: *( (CCTK_INT4 *) output_numbers[i]) = *( (CCTK_INT4 *) output_numbers[i]) / num_points; + *( (CCTK_INT4 *) output_numbers[i]) = pow( *( (CCTK_INT4 *) output_numbers[i]), 1.0/3.0); break; #endif #ifdef CCTK_INT8 case CCTK_VARIABLE_INT8: *( (CCTK_INT8 *) output_numbers[i]) = *( (CCTK_INT8 *) output_numbers[i]) / num_points; + *( (CCTK_INT8 *) output_numbers[i]) = pow(*( (CCTK_INT8 *) output_numbers[i]), 1.0/3.0); break; #endif case CCTK_VARIABLE_REAL: *( (CCTK_REAL *) output_numbers[i]) = *( (CCTK_REAL *) output_numbers[i]) / num_points; + *( (CCTK_REAL *) output_numbers[i]) = pow(*( (CCTK_REAL *) output_numbers[i]), 1.0/3.0); break; #ifdef CCTK_REAL4 case CCTK_VARIABLE_REAL4: *( (CCTK_REAL4 *) output_numbers[i]) = *( (CCTK_REAL4 *) output_numbers[i]) / num_points; + *( (CCTK_REAL4 *) output_numbers[i]) = pow(*( (CCTK_REAL4 *) output_numbers[i]), 1.0/3.0); break; #endif #ifdef CCTK_REAL8 case CCTK_VARIABLE_REAL8: *( (CCTK_REAL8 *) output_numbers[i]) = *( (CCTK_REAL8 *) output_numbers[i]) / num_points; + *( (CCTK_REAL8 *) output_numbers[i]) = pow(*( (CCTK_REAL8 *) output_numbers[i]), 1.0/3.0); break; #endif #ifdef CCTK_REAL16 case CCTK_VARIABLE_REAL16: *( (CCTK_REAL16 *) output_numbers[i]) = *( (CCTK_REAL16 *) output_numbers[i]) / num_points; + *( (CCTK_REAL16 *) output_numbers[i]) = pow(*( (CCTK_REAL16 *) output_numbers[i]), 1.0/3.0); break; #endif case CCTK_VARIABLE_COMPLEX: (*( (CCTK_COMPLEX *) output_numbers[i])).Re = (*( (CCTK_COMPLEX *) output_numbers[i])).Re / num_points; (*( (CCTK_COMPLEX *) output_numbers[i])).Im = (*( (CCTK_COMPLEX *) output_numbers[i])).Im / num_points; + cmplx_tmp.Re = (*( (CCTK_COMPLEX *) output_numbers[i])).Re; + cmplx_tmp.Im = (*( (CCTK_COMPLEX *) output_numbers[i])).Im; + cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/3.0); + (*( (CCTK_COMPLEX *) output_numbers[i])).Re = cmplx_tmp.Re; + (*( (CCTK_COMPLEX *) output_numbers[i])).Im = cmplx_tmp.Im; break; #ifdef CCTK_COMPLEX8 case CCTK_VARIABLE_COMPLEX8: (*( (CCTK_COMPLEX8 *) output_numbers[i])).Re = (*( (CCTK_COMPLEX8 *) output_numbers[i])).Re / num_points; (*( (CCTK_COMPLEX8 *) output_numbers[i])).Im = (*( (CCTK_COMPLEX8 *) output_numbers[i])).Im / num_points; + cmplx_tmp8.Re = (*( (CCTK_COMPLEX8 *) output_numbers[i])).Re; + cmplx_tmp8.Im = (*( (CCTK_COMPLEX8 *) output_numbers[i])).Im; + cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/3.0); + (*( (CCTK_COMPLEX8 *) output_numbers[i])).Re = cmplx_tmp8.Re; + (*( (CCTK_COMPLEX8 *) output_numbers[i])).Im = cmplx_tmp8.Im; break; #endif #ifdef CCTK_COMPLEX16 case CCTK_VARIABLE_COMPLEX16: (*( (CCTK_COMPLEX16 *) output_numbers[i])).Re = (*( (CCTK_COMPLEX16 *) output_numbers[i])).Re / num_points; (*( (CCTK_COMPLEX16 *) output_numbers[i])).Im = (*( (CCTK_COMPLEX16 *) output_numbers[i])).Im / num_points; + cmplx_tmp16.Re = (*( (CCTK_COMPLEX16 *) output_numbers[i])).Re; + cmplx_tmp16.Im = (*( (CCTK_COMPLEX16 *) output_numbers[i])).Im; + cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/3.0); + (*( (CCTK_COMPLEX16 *) output_numbers[i])).Re = cmplx_tmp16.Re; + (*( (CCTK_COMPLEX16 *) output_numbers[i])).Im = cmplx_tmp16.Im; break; #endif #ifdef CCTK_COMPLEX32 case CCTK_VARIABLE_COMPLEX32: (*( (CCTK_COMPLEX32 *) output_numbers[i])).Re = (*( (CCTK_COMPLEX32 *) output_numbers[i])).Re / num_points; (*( (CCTK_COMPLEX32 *) output_numbers[i])).Im = (*( (CCTK_COMPLEX32 *) output_numbers[i])).Im / num_points; + cmplx_tmp32.Re = (*( (CCTK_COMPLEX32 *) output_numbers[i])).Re; + cmplx_tmp32.Im = (*( (CCTK_COMPLEX32 *) output_numbers[i])).Im; + cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/3.0); + (*( (CCTK_COMPLEX32 *) output_numbers[i])).Re = cmplx_tmp32.Re; + (*( (CCTK_COMPLEX32 *) output_numbers[i])).Im = cmplx_tmp32.Im; break; #endif } } } - + /* free memory */ free (iters_per_dim); free (indices); diff --git a/src/ReductionNorm4.c b/src/ReductionNorm4.c index 37b6afa..376ef3e 100644 --- a/src/ReductionNorm4.c +++ b/src/ReductionNorm4.c @@ -17,7 +17,7 @@ static const char *rcsid = "$Id$"; -CCTK_FILEVERSION(CCTDevelopment_LocalReduce_ReductionNorm4_c); +CCTK_FILEVERSION(CactusBase_LocalReduce_ReductionNorm4_c); /* Define the reduction operations */ @@ -158,7 +158,19 @@ static int ReductionL4 (int N_dims, int operator_handle, CCTK_INT mask_type_code; /* one of the CCTK_VARIABLE_* codes */ CCTK_INT mask_offset; CCTK_INT mask_time_level; - + + /* temporary complex variables*/ + CCTK_COMPLEX cmplx_tmp; + #ifdef CCTK_COMPLEX8 + CCTK_COMPLEX8 cmplx_tmp8; + #endif + #ifdef CCTK_COMPLEX16 + CCTK_COMPLEX16 cmplx_tmp16; + #endif + #ifdef CCTK_COMPLEX32 + CCTK_COMPLEX32 cmplx_tmp32; + #endif + /* prevent warnings for unused vars */ (void)(mask_array); (void)(mask_offset + 0); @@ -342,68 +354,98 @@ static int ReductionL4 (int N_dims, int operator_handle, /* out values type switches*/ case CCTK_VARIABLE_CHAR: *( (CCTK_CHAR *) output_numbers[i]) = *( (CCTK_CHAR *) output_numbers[i]) / num_points; + *( (CCTK_CHAR *) output_numbers[i]) = pow(*( (CCTK_CHAR *) output_numbers[i]), 1.0/4.0); break; case CCTK_VARIABLE_INT: *( (CCTK_INT *) output_numbers[i]) = *( (CCTK_INT *) output_numbers[i]) / num_points; + *( (CCTK_INT *) output_numbers[i]) = pow(*( (CCTK_INT *) output_numbers[i]), 1.0/4.0); break; #ifdef CCTK_INT1 case CCTK_VARIABLE_INT1: *( (CCTK_INT1 *) output_numbers[i]) = *( (CCTK_INT1 *) output_numbers[i]) / num_points; + *( (CCTK_INT1 *) output_numbers[i]) = pow(*( (CCTK_INT1 *) output_numbers[i]), 1.0/4.0); break; #endif #ifdef CCTK_INT2 case CCTK_VARIABLE_INT2: *( (CCTK_INT2 *) output_numbers[i]) = *( (CCTK_INT2 *) output_numbers[i]) / num_points; + *( (CCTK_INT2 *) output_numbers[i]) = pow(*( (CCTK_INT2 *) output_numbers[i]), 1.0/4.0); break; #endif #ifdef CCTK_INT4 case CCTK_VARIABLE_INT4: *( (CCTK_INT4 *) output_numbers[i]) = *( (CCTK_INT4 *) output_numbers[i]) / num_points; + *( (CCTK_INT4 *) output_numbers[i]) = pow( *( (CCTK_INT4 *) output_numbers[i]), 1.0/4.0); break; #endif #ifdef CCTK_INT8 case CCTK_VARIABLE_INT8: *( (CCTK_INT8 *) output_numbers[i]) = *( (CCTK_INT8 *) output_numbers[i]) / num_points; + *( (CCTK_INT8 *) output_numbers[i]) = pow(*( (CCTK_INT8 *) output_numbers[i]), 1.0/4.0); break; #endif case CCTK_VARIABLE_REAL: *( (CCTK_REAL *) output_numbers[i]) = *( (CCTK_REAL *) output_numbers[i]) / num_points; + *( (CCTK_REAL *) output_numbers[i]) = pow(*( (CCTK_REAL *) output_numbers[i]), 1.0/4.0); break; #ifdef CCTK_REAL4 case CCTK_VARIABLE_REAL4: *( (CCTK_REAL4 *) output_numbers[i]) = *( (CCTK_REAL4 *) output_numbers[i]) / num_points; + *( (CCTK_REAL4 *) output_numbers[i]) = pow(*( (CCTK_REAL4 *) output_numbers[i]), 1.0/4.0); break; #endif #ifdef CCTK_REAL8 case CCTK_VARIABLE_REAL8: *( (CCTK_REAL8 *) output_numbers[i]) = *( (CCTK_REAL8 *) output_numbers[i]) / num_points; + *( (CCTK_REAL8 *) output_numbers[i]) = pow(*( (CCTK_REAL8 *) output_numbers[i]), 1.0/4.0); break; #endif #ifdef CCTK_REAL16 case CCTK_VARIABLE_REAL16: *( (CCTK_REAL16 *) output_numbers[i]) = *( (CCTK_REAL16 *) output_numbers[i]) / num_points; + *( (CCTK_REAL16 *) output_numbers[i]) = pow(*( (CCTK_REAL16 *) output_numbers[i]), 1.0/4.0); break; #endif case CCTK_VARIABLE_COMPLEX: (*( (CCTK_COMPLEX *) output_numbers[i])).Re = (*( (CCTK_COMPLEX *) output_numbers[i])).Re / num_points; (*( (CCTK_COMPLEX *) output_numbers[i])).Im = (*( (CCTK_COMPLEX *) output_numbers[i])).Im / num_points; + cmplx_tmp.Re = (*( (CCTK_COMPLEX *) output_numbers[i])).Re; + cmplx_tmp.Im = (*( (CCTK_COMPLEX *) output_numbers[i])).Im; + cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/4.0); + (*( (CCTK_COMPLEX *) output_numbers[i])).Re = cmplx_tmp.Re; + (*( (CCTK_COMPLEX *) output_numbers[i])).Im = cmplx_tmp.Im; break; #ifdef CCTK_COMPLEX8 case CCTK_VARIABLE_COMPLEX8: (*( (CCTK_COMPLEX8 *) output_numbers[i])).Re = (*( (CCTK_COMPLEX8 *) output_numbers[i])).Re / num_points; (*( (CCTK_COMPLEX8 *) output_numbers[i])).Im = (*( (CCTK_COMPLEX8 *) output_numbers[i])).Im / num_points; + cmplx_tmp8.Re = (*( (CCTK_COMPLEX8 *) output_numbers[i])).Re; + cmplx_tmp8.Im = (*( (CCTK_COMPLEX8 *) output_numbers[i])).Im; + cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/4.0); + (*( (CCTK_COMPLEX8 *) output_numbers[i])).Re = cmplx_tmp8.Re; + (*( (CCTK_COMPLEX8 *) output_numbers[i])).Im = cmplx_tmp8.Im; break; #endif #ifdef CCTK_COMPLEX16 case CCTK_VARIABLE_COMPLEX16: (*( (CCTK_COMPLEX16 *) output_numbers[i])).Re = (*( (CCTK_COMPLEX16 *) output_numbers[i])).Re / num_points; - (*( (CCTK_COMPLEX16 *) output_numbers[i])).Im = (*( (CCTK_COMPLEX16 *) output_numbers[i])).Im / num_points; + (*( (CCTK_COMPLEX16 *) output_numbers[i])).Im = (*( (CCTK_COMPLEX16 *) output_numbers[i])).Im / num_points; + cmplx_tmp16.Re = (*( (CCTK_COMPLEX16 *) output_numbers[i])).Re; + cmplx_tmp16.Im = (*( (CCTK_COMPLEX16 *) output_numbers[i])).Im; + cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/4.0); + (*( (CCTK_COMPLEX16 *) output_numbers[i])).Re = cmplx_tmp16.Re; + (*( (CCTK_COMPLEX16 *) output_numbers[i])).Im = cmplx_tmp16.Im; break; #endif #ifdef CCTK_COMPLEX32 case CCTK_VARIABLE_COMPLEX32: (*( (CCTK_COMPLEX32 *) output_numbers[i])).Re = (*( (CCTK_COMPLEX32 *) output_numbers[i])).Re / num_points; (*( (CCTK_COMPLEX32 *) output_numbers[i])).Im = (*( (CCTK_COMPLEX32 *) output_numbers[i])).Im / num_points; + cmplx_tmp32.Re = (*( (CCTK_COMPLEX32 *) output_numbers[i])).Re; + cmplx_tmp32.Im = (*( (CCTK_COMPLEX32 *) output_numbers[i])).Im; + cmplx_tmp = CCTK_CmplxPow(cmplx_tmp, 1.0/4.0); + (*( (CCTK_COMPLEX32 *) output_numbers[i])).Re = cmplx_tmp32.Re; + (*( (CCTK_COMPLEX32 *) output_numbers[i])).Im = cmplx_tmp32.Im; break; #endif } diff --git a/src/ReductionSum.c b/src/ReductionSum.c index 95f957c..831e52b 100644 --- a/src/ReductionSum.c +++ b/src/ReductionSum.c @@ -17,7 +17,7 @@ static const char *rcsid = "$Id$"; -CCTK_FILEVERSION(CCTDevelopment_LocalReduce_ReductionSum_c); +CCTK_FILEVERSION(CactusBase_LocalReduce_ReductionSum_c); /* Define the reduction operations */ -- cgit v1.2.3