aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ReductionNormInf.c43
1 files changed, 42 insertions, 1 deletions
diff --git a/src/ReductionNormInf.c b/src/ReductionNormInf.c
index 02ac097..6af73ad 100644
--- a/src/ReductionNormInf.c
+++ b/src/ReductionNormInf.c
@@ -265,7 +265,11 @@ static int ReductionLInf (int N_dims, int operator_handle,
{
/* out values type switches*/
case CCTK_VARIABLE_CHAR:
+#undef REDUCTION_OPERATION
+#define REDUCTION_OPERATION(norm_inf, scalar) norm_inf = MAX(norm_inf, scalar);
ITERATE_ON_ARRAY(i,CCTK_BYTE, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+#undef REDUCTION_OPERATION
+#define REDUCTION_OPERATION(norm_inf, scalar) norm_inf = MAX(norm_inf, ABS(scalar));
break;
case CCTK_VARIABLE_INT:
ITERATE_ON_ARRAY(i,CCTK_BYTE, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
@@ -333,7 +337,11 @@ static int ReductionLInf (int N_dims, int operator_handle,
{
/* out values type switches*/
case CCTK_VARIABLE_CHAR:
+#undef REDUCTION_OPERATION
+#define REDUCTION_OPERATION(norm_inf, scalar) norm_inf = MAX(norm_inf, scalar);
ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+#undef REDUCTION_OPERATION
+#define REDUCTION_OPERATION(norm_inf, scalar) norm_inf = MAX(norm_inf,ABS(scalar));
break;
case CCTK_VARIABLE_INT:
ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
@@ -402,7 +410,11 @@ static int ReductionLInf (int N_dims, int operator_handle,
{
/* out values type switches*/
case CCTK_VARIABLE_CHAR:
+#undef REDUCTION_OPERATION
+#define REDUCTION_OPERATION(norm_inf, scalar) norm_inf = MAX(norm_inf, scalar);
ITERATE_ON_ARRAY(i,CCTK_INT1, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+#undef REDUCTION_OPERATION
+#define REDUCTION_OPERATION(norm_inf, scalar) norm_inf = MAX(norm_inf, ABS(scalar));
break;
case CCTK_VARIABLE_INT:
ITERATE_ON_ARRAY(i,CCTK_INT1, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
@@ -472,7 +484,11 @@ static int ReductionLInf (int N_dims, int operator_handle,
{
/* out values type switches*/
case CCTK_VARIABLE_CHAR:
+#undef REDUCTION_OPERATION
+#define REDUCTION_OPERATION(norm_inf, scalar) norm_inf = MAX(norm_inf, scalar);
ITERATE_ON_ARRAY(i,CCTK_INT2, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+#undef REDUCTION_OPERATION
+#define REDUCTION_OPERATION(norm_inf, scalar) norm_inf = MAX(norm_inf, ABS(scalar));
break;
case CCTK_VARIABLE_INT:
ITERATE_ON_ARRAY(i,CCTK_INT2, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
@@ -542,7 +558,11 @@ static int ReductionLInf (int N_dims, int operator_handle,
{
/* out values type switches*/
case CCTK_VARIABLE_CHAR:
+#undef REDUCTION_OPERATION
+#define REDUCTION_OPERATION(norm_inf, scalar) norm_inf = MAX(norm_inf, scalar);
ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+#undef REDUCTION_OPERATION
+#define REDUCTION_OPERATION(norm_inf, scalar) norm_inf = MAX(norm_inf, ABS(scalar));
break;
case CCTK_VARIABLE_INT:
ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
@@ -603,7 +623,7 @@ static int ReductionLInf (int N_dims, int operator_handle,
ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_COMPLEX32, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
break;
#endif
- }
+ }
break;
#endif
#ifdef CCTK_INT8
@@ -612,7 +632,11 @@ static int ReductionLInf (int N_dims, int operator_handle,
{
/* out values type switches*/
case CCTK_VARIABLE_CHAR:
+#undef REDUCTION_OPERATION
+#define REDUCTION_OPERATION(norm_inf, scalar) norm_inf = MAX(norm_inf, scalar);
ITERATE_ON_ARRAY(i,CCTK_INT8, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+#undef REDUCTION_OPERATION
+#define REDUCTION_OPERATION(norm_inf, scalar) norm_inf = MAX(norm_inf, ABS(scalar));
break;
case CCTK_VARIABLE_INT:
ITERATE_ON_ARRAY(i,CCTK_INT8, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
@@ -681,7 +705,11 @@ static int ReductionLInf (int N_dims, int operator_handle,
{
/* out values type switches*/
case CCTK_VARIABLE_CHAR:
+#undef REDUCTION_OPERATION
+#define REDUCTION_OPERATION(norm_inf, scalar) norm_inf = MAX(norm_inf, scalar);
ITERATE_ON_ARRAY(i,CCTK_REAL, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+#undef REDUCTION_OPERATION
+#define REDUCTION_OPERATION(norm_inf, scalar) norm_inf = MAX(norm_inf, ABS(scalar));
break;
case CCTK_VARIABLE_INT:
ITERATE_ON_ARRAY(i,CCTK_REAL, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
@@ -750,7 +778,11 @@ static int ReductionLInf (int N_dims, int operator_handle,
{
/* out values type switches*/
case CCTK_VARIABLE_CHAR:
+#undef REDUCTION_OPERATION
+#define REDUCTION_OPERATION(norm_inf, scalar) norm_inf = MAX(norm_inf, scalar);
ITERATE_ON_ARRAY(i,CCTK_REAL4, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+#undef REDUCTION_OPERATION
+#define REDUCTION_OPERATION(norm_inf, scalar) norm_inf = MAX(norm_inf, ABS(scalar));
break;
case CCTK_VARIABLE_INT:
ITERATE_ON_ARRAY(i,CCTK_REAL4, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
@@ -820,7 +852,11 @@ static int ReductionLInf (int N_dims, int operator_handle,
{
/* out values type switches*/
case CCTK_VARIABLE_CHAR:
+#undef REDUCTION_OPERATION
+#define REDUCTION_OPERATION(norm_inf, scalar) norm_inf = MAX(norm_inf, scalar);
ITERATE_ON_ARRAY(i,CCTK_REAL8, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+#undef REDUCTION_OPERATION
+#define REDUCTION_OPERATION(norm_inf, scalar) norm_inf = MAX(norm_inf, ABS(scalar));
break;
case CCTK_VARIABLE_INT:
ITERATE_ON_ARRAY(i,CCTK_REAL8, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
@@ -890,7 +926,11 @@ static int ReductionLInf (int N_dims, int operator_handle,
{
/* out values type switches*/
case CCTK_VARIABLE_CHAR:
+#undef REDUCTION_OPERATION
+#define REDUCTION_OPERATION(norm_inf, scalar) norm_inf = MAX(norm_inf, scalar);
ITERATE_ON_ARRAY(i,CCTK_REAL16, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+#undef REDUCTION_OPERATION
+#define REDUCTION_OPERATION(norm_inf, scalar) norm_inf = MAX(norm_inf, ABS(scalar));
break;
case CCTK_VARIABLE_INT:
ITERATE_ON_ARRAY(i,CCTK_REAL16, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
@@ -1238,6 +1278,7 @@ static int ReductionLInf (int N_dims, int operator_handle,
}
}
+
/* free memory */
free (iters_per_dim);
free (indices);