aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryye00 <yye00@7daa882c-dc44-4453-834e-278d26b18e6a>2005-01-26 16:22:23 +0000
committeryye00 <yye00@7daa882c-dc44-4453-834e-278d26b18e6a>2005-01-26 16:22:23 +0000
commit099b127f7e4b55be516586cc0ef239b844f25c45 (patch)
tree1b0b06f79890847c2b78196048b751581272933c
parent0b121f6dd82443b1adc611507a49fae9232d1ddb (diff)
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
-rw-r--r--src/ReductionAvg.c2
-rw-r--r--src/ReductionCount.c2
-rw-r--r--src/ReductionMax.c2
-rw-r--r--src/ReductionMin.c2
-rw-r--r--src/ReductionNorm1.c2
-rw-r--r--src/ReductionNorm2.c50
-rw-r--r--src/ReductionNorm3.c46
-rw-r--r--src/ReductionNorm4.c48
-rw-r--r--src/ReductionSum.c2
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 */