aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryye00 <yye00@7daa882c-dc44-4453-834e-278d26b18e6a>2005-09-15 22:06:12 +0000
committeryye00 <yye00@7daa882c-dc44-4453-834e-278d26b18e6a>2005-09-15 22:06:12 +0000
commit9fa2943a4d7a405d0b1720c210ddcc8598d7b990 (patch)
tree347641aa56eaab2e5b90d9bf1ec0e2e66c6b18a5
parent34fcf8de208147376d1774e2e33c78423dd7e03c (diff)
Modification to Max and Min reductions, if the weight is zero they do are not included in the reduction operation. Some minor modification for divide by zero weight sum
git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/LocalReduce/trunk@60 7daa882c-dc44-4453-834e-278d26b18e6a
-rw-r--r--src/MaxFunctions.c252
-rw-r--r--src/MinFunctions.c252
-rw-r--r--src/local_reductions.h1
3 files changed, 253 insertions, 252 deletions
diff --git a/src/MaxFunctions.c b/src/MaxFunctions.c
index a2107fe..b33381e 100644
--- a/src/MaxFunctions.c
+++ b/src/MaxFunctions.c
@@ -38,7 +38,7 @@ int LocalReduce_Max_BYTE(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -111,7 +111,7 @@ int LocalReduce_Max_BYTE(int i, int weight_on, const void * const weight, CCTK_I
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_BYTE, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -124,7 +124,7 @@ int LocalReduce_Max_BYTE(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -151,7 +151,7 @@ int LocalReduce_Max_BYTE(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_BYTE, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -164,7 +164,7 @@ int LocalReduce_Max_BYTE(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -192,7 +192,7 @@ int LocalReduce_Max_BYTE(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -206,7 +206,7 @@ int LocalReduce_Max_BYTE(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -234,7 +234,7 @@ int LocalReduce_Max_BYTE(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -248,7 +248,7 @@ int LocalReduce_Max_BYTE(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
break;
@@ -279,7 +279,7 @@ int LocalReduce_Max_INT(int i, int weight_on, const void * const weight, CCTK_IN
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -351,7 +351,7 @@ int LocalReduce_Max_INT(int i, int weight_on, const void * const weight, CCTK_IN
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -364,7 +364,7 @@ int LocalReduce_Max_INT(int i, int weight_on, const void * const weight, CCTK_IN
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -391,7 +391,7 @@ int LocalReduce_Max_INT(int i, int weight_on, const void * const weight, CCTK_IN
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -404,7 +404,7 @@ int LocalReduce_Max_INT(int i, int weight_on, const void * const weight, CCTK_IN
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -432,7 +432,7 @@ int LocalReduce_Max_INT(int i, int weight_on, const void * const weight, CCTK_IN
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_COMPLEX16, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -445,7 +445,7 @@ int LocalReduce_Max_INT(int i, int weight_on, const void * const weight, CCTK_IN
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -473,7 +473,7 @@ int LocalReduce_Max_INT(int i, int weight_on, const void * const weight, CCTK_IN
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_COMPLEX32, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -486,7 +486,7 @@ int LocalReduce_Max_INT(int i, int weight_on, const void * const weight, CCTK_IN
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
break;
@@ -517,7 +517,7 @@ int LocalReduce_Max_INT1(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -589,7 +589,7 @@ int LocalReduce_Max_INT1(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT1, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -602,7 +602,7 @@ int LocalReduce_Max_INT1(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -629,7 +629,7 @@ int LocalReduce_Max_INT1(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT1, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -642,7 +642,7 @@ int LocalReduce_Max_INT1(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -670,7 +670,7 @@ int LocalReduce_Max_INT1(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -684,7 +684,7 @@ int LocalReduce_Max_INT1(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -712,7 +712,7 @@ int LocalReduce_Max_INT1(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -726,7 +726,7 @@ int LocalReduce_Max_INT1(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
break;
@@ -758,7 +758,7 @@ int LocalReduce_Max_INT2(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -830,7 +830,7 @@ int LocalReduce_Max_INT2(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT2, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -843,7 +843,7 @@ int LocalReduce_Max_INT2(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -870,7 +870,7 @@ int LocalReduce_Max_INT2(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT2, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -883,7 +883,7 @@ int LocalReduce_Max_INT2(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -911,7 +911,7 @@ int LocalReduce_Max_INT2(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -925,7 +925,7 @@ int LocalReduce_Max_INT2(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -953,7 +953,7 @@ int LocalReduce_Max_INT2(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -967,7 +967,7 @@ int LocalReduce_Max_INT2(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
break;
@@ -999,7 +999,7 @@ int LocalReduce_Max_INT4(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -1071,7 +1071,7 @@ int LocalReduce_Max_INT4(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -1084,7 +1084,7 @@ int LocalReduce_Max_INT4(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -1111,7 +1111,7 @@ int LocalReduce_Max_INT4(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -1124,7 +1124,7 @@ int LocalReduce_Max_INT4(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -1152,7 +1152,7 @@ int LocalReduce_Max_INT4(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -1166,7 +1166,7 @@ int LocalReduce_Max_INT4(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -1194,7 +1194,7 @@ int LocalReduce_Max_INT4(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -1208,7 +1208,7 @@ int LocalReduce_Max_INT4(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
break;
@@ -1240,7 +1240,7 @@ int LocalReduce_Max_INT8(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -1312,7 +1312,7 @@ int LocalReduce_Max_INT8(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT8, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -1325,7 +1325,7 @@ int LocalReduce_Max_INT8(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -1352,7 +1352,7 @@ int LocalReduce_Max_INT8(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT8, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -1365,7 +1365,7 @@ int LocalReduce_Max_INT8(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -1393,7 +1393,7 @@ int LocalReduce_Max_INT8(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -1407,7 +1407,7 @@ int LocalReduce_Max_INT8(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -1435,7 +1435,7 @@ int LocalReduce_Max_INT8(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -1449,7 +1449,7 @@ int LocalReduce_Max_INT8(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
break;
@@ -1480,7 +1480,7 @@ int LocalReduce_Max_REAL(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -1552,7 +1552,7 @@ int LocalReduce_Max_REAL(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_REAL, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -1565,7 +1565,7 @@ int LocalReduce_Max_REAL(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -1592,7 +1592,7 @@ int LocalReduce_Max_REAL(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_REAL, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -1605,7 +1605,7 @@ int LocalReduce_Max_REAL(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -1633,7 +1633,7 @@ int LocalReduce_Max_REAL(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -1647,7 +1647,7 @@ int LocalReduce_Max_REAL(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -1675,7 +1675,7 @@ int LocalReduce_Max_REAL(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -1689,7 +1689,7 @@ int LocalReduce_Max_REAL(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
break;
@@ -1720,7 +1720,7 @@ int LocalReduce_Max_REAL4(int i, int weight_on, const void * const weight, CCTK_
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -1792,7 +1792,7 @@ int LocalReduce_Max_REAL4(int i, int weight_on, const void * const weight, CCTK_
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_REAL4, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -1805,7 +1805,7 @@ int LocalReduce_Max_REAL4(int i, int weight_on, const void * const weight, CCTK_
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -1832,7 +1832,7 @@ int LocalReduce_Max_REAL4(int i, int weight_on, const void * const weight, CCTK_
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_REAL4, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -1845,7 +1845,7 @@ int LocalReduce_Max_REAL4(int i, int weight_on, const void * const weight, CCTK_
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -1873,7 +1873,7 @@ int LocalReduce_Max_REAL4(int i, int weight_on, const void * const weight, CCTK_
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -1887,7 +1887,7 @@ int LocalReduce_Max_REAL4(int i, int weight_on, const void * const weight, CCTK_
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -1915,7 +1915,7 @@ int LocalReduce_Max_REAL4(int i, int weight_on, const void * const weight, CCTK_
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -1929,7 +1929,7 @@ int LocalReduce_Max_REAL4(int i, int weight_on, const void * const weight, CCTK_
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
break;
@@ -1961,7 +1961,7 @@ int LocalReduce_Max_REAL8(int i, int weight_on, const void * const weight, CCTK_
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -2033,7 +2033,7 @@ int LocalReduce_Max_REAL8(int i, int weight_on, const void * const weight, CCTK_
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_REAL8, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -2046,7 +2046,7 @@ int LocalReduce_Max_REAL8(int i, int weight_on, const void * const weight, CCTK_
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -2073,7 +2073,7 @@ int LocalReduce_Max_REAL8(int i, int weight_on, const void * const weight, CCTK_
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_REAL8, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -2086,7 +2086,7 @@ int LocalReduce_Max_REAL8(int i, int weight_on, const void * const weight, CCTK_
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -2114,7 +2114,7 @@ int LocalReduce_Max_REAL8(int i, int weight_on, const void * const weight, CCTK_
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -2128,7 +2128,7 @@ int LocalReduce_Max_REAL8(int i, int weight_on, const void * const weight, CCTK_
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -2156,7 +2156,7 @@ int LocalReduce_Max_REAL8(int i, int weight_on, const void * const weight, CCTK_
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -2171,7 +2171,7 @@ int LocalReduce_Max_REAL8(int i, int weight_on, const void * const weight, CCTK_
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
break;
@@ -2203,7 +2203,7 @@ int LocalReduce_Max_REAL16(int i, int weight_on, const void * const weight, CCTK
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -2275,7 +2275,7 @@ int LocalReduce_Max_REAL16(int i, int weight_on, const void * const weight, CCTK
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_REAL16, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -2288,7 +2288,7 @@ int LocalReduce_Max_REAL16(int i, int weight_on, const void * const weight, CCTK
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -2315,7 +2315,7 @@ int LocalReduce_Max_REAL16(int i, int weight_on, const void * const weight, CCTK
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_REAL16, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -2328,7 +2328,7 @@ int LocalReduce_Max_REAL16(int i, int weight_on, const void * const weight, CCTK
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -2356,7 +2356,7 @@ int LocalReduce_Max_REAL16(int i, int weight_on, const void * const weight, CCTK
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -2370,7 +2370,7 @@ int LocalReduce_Max_REAL16(int i, int weight_on, const void * const weight, CCTK
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -2398,7 +2398,7 @@ int LocalReduce_Max_REAL16(int i, int weight_on, const void * const weight, CCTK
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -2412,7 +2412,7 @@ int LocalReduce_Max_REAL16(int i, int weight_on, const void * const weight, CCTK
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
break;
@@ -2454,7 +2454,7 @@ int LocalReduce_Max_COMPLEX(int i, int weight_on, const void * const weight, CCT
#endif
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -2516,7 +2516,7 @@ int LocalReduce_Max_COMPLEX(int i, int weight_on, const void * const weight, CCT
(inval).Re = (CCTK_REAL) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_COMPLEX, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -2540,7 +2540,7 @@ int LocalReduce_Max_COMPLEX(int i, int weight_on, const void * const weight, CCT
#endif
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -2557,7 +2557,7 @@ int LocalReduce_Max_COMPLEX(int i, int weight_on, const void * const weight, CCT
(inval).Re = (CCTK_REAL4) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL4) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_COMPLEX, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -2581,7 +2581,7 @@ int LocalReduce_Max_COMPLEX(int i, int weight_on, const void * const weight, CCT
#endif
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -2599,7 +2599,7 @@ int LocalReduce_Max_COMPLEX(int i, int weight_on, const void * const weight, CCT
(inval).Re = (CCTK_REAL8) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL8) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -2624,7 +2624,7 @@ int LocalReduce_Max_COMPLEX(int i, int weight_on, const void * const weight, CCT
#endif
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -2642,7 +2642,7 @@ int LocalReduce_Max_COMPLEX(int i, int weight_on, const void * const weight, CCT
(inval).Re = (CCTK_REAL16) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL16) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -2667,7 +2667,7 @@ int LocalReduce_Max_COMPLEX(int i, int weight_on, const void * const weight, CCT
#endif
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
break;
@@ -2710,7 +2710,7 @@ int LocalReduce_Max_COMPLEX8(int i, int weight_on, const void * const weight, CC
#endif
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -2772,7 +2772,7 @@ int LocalReduce_Max_COMPLEX8(int i, int weight_on, const void * const weight, CC
(inval).Re = (CCTK_REAL) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_COMPLEX8, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -2796,7 +2796,7 @@ int LocalReduce_Max_COMPLEX8(int i, int weight_on, const void * const weight, CC
#endif
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -2813,7 +2813,7 @@ int LocalReduce_Max_COMPLEX8(int i, int weight_on, const void * const weight, CC
(inval).Re = (CCTK_REAL4) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL4) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_COMPLEX8, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -2837,7 +2837,7 @@ int LocalReduce_Max_COMPLEX8(int i, int weight_on, const void * const weight, CC
#endif
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -2855,7 +2855,7 @@ int LocalReduce_Max_COMPLEX8(int i, int weight_on, const void * const weight, CC
(inval).Re = (CCTK_REAL8) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL8) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -2880,7 +2880,7 @@ int LocalReduce_Max_COMPLEX8(int i, int weight_on, const void * const weight, CC
#endif
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -2898,7 +2898,7 @@ int LocalReduce_Max_COMPLEX8(int i, int weight_on, const void * const weight, CC
(inval).Re = (CCTK_REAL16) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL16) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -2923,7 +2923,7 @@ int LocalReduce_Max_COMPLEX8(int i, int weight_on, const void * const weight, CC
#endif
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
break;
@@ -2966,7 +2966,7 @@ int LocalReduce_Max_COMPLEX16(int i, int weight_on, const void * const weight, C
#endif
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -3028,7 +3028,7 @@ int LocalReduce_Max_COMPLEX16(int i, int weight_on, const void * const weight, C
(inval).Re = (CCTK_REAL) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_COMPLEX16, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -3052,7 +3052,7 @@ int LocalReduce_Max_COMPLEX16(int i, int weight_on, const void * const weight, C
#endif
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -3069,7 +3069,7 @@ int LocalReduce_Max_COMPLEX16(int i, int weight_on, const void * const weight, C
(inval).Re = (CCTK_REAL4) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL4) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_COMPLEX16, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -3093,7 +3093,7 @@ int LocalReduce_Max_COMPLEX16(int i, int weight_on, const void * const weight, C
#endif
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -3111,7 +3111,7 @@ int LocalReduce_Max_COMPLEX16(int i, int weight_on, const void * const weight, C
(inval).Re = (CCTK_REAL8) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL8) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -3136,7 +3136,7 @@ int LocalReduce_Max_COMPLEX16(int i, int weight_on, const void * const weight, C
#endif
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -3154,7 +3154,7 @@ int LocalReduce_Max_COMPLEX16(int i, int weight_on, const void * const weight, C
(inval).Re = (CCTK_REAL16) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL16) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -3179,7 +3179,7 @@ int LocalReduce_Max_COMPLEX16(int i, int weight_on, const void * const weight, C
#endif
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
break;
@@ -3222,7 +3222,7 @@ int LocalReduce_Max_COMPLEX32(int i, int weight_on, const void * const weight, C
#endif
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -3284,7 +3284,7 @@ int LocalReduce_Max_COMPLEX32(int i, int weight_on, const void * const weight, C
(inval).Re = (CCTK_REAL) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_COMPLEX32, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -3308,7 +3308,7 @@ int LocalReduce_Max_COMPLEX32(int i, int weight_on, const void * const weight, C
#endif
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -3325,7 +3325,7 @@ int LocalReduce_Max_COMPLEX32(int i, int weight_on, const void * const weight, C
(inval).Re = (CCTK_REAL4) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL4) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_COMPLEX32, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -3349,7 +3349,7 @@ int LocalReduce_Max_COMPLEX32(int i, int weight_on, const void * const weight, C
#endif
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -3367,7 +3367,7 @@ int LocalReduce_Max_COMPLEX32(int i, int weight_on, const void * const weight, C
(inval).Re = (CCTK_REAL8) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL8) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -3392,7 +3392,7 @@ int LocalReduce_Max_COMPLEX32(int i, int weight_on, const void * const weight, C
#endif
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
@@ -3410,7 +3410,7 @@ int LocalReduce_Max_COMPLEX32(int i, int weight_on, const void * const weight, C
(inval).Re = (CCTK_REAL16) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL16) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Max, scalar) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Max).Re < (scalar).Re) (Max).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = 0.0; (num).Im = 0.0;
#define EXTRA_STEP(a, b)
@@ -3435,7 +3435,7 @@ int LocalReduce_Max_COMPLEX32(int i, int weight_on, const void * const weight, C
#endif
#define REDUCTION_OPERATION(Max, scalar) if (Max < scalar) Max = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (Max < scalar) Max = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Max, scalar, weight) if (ABS(weight)> SMALL_NUMBER) {if (Max < scalar) Max = scalar;} ;
#define REDUCTION_INITIAL(num) num = 0;
#define EXTRA_STEP(a, b)
break;
diff --git a/src/MinFunctions.c b/src/MinFunctions.c
index 752f810..ec3ef10 100644
--- a/src/MinFunctions.c
+++ b/src/MinFunctions.c
@@ -36,7 +36,7 @@ int LocalReduce_Min_BYTE(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -109,7 +109,7 @@ int LocalReduce_Min_BYTE(int i, int weight_on, const void * const weight, CCTK_I
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_BYTE, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -122,7 +122,7 @@ int LocalReduce_Min_BYTE(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -149,7 +149,7 @@ int LocalReduce_Min_BYTE(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_BYTE, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -162,7 +162,7 @@ int LocalReduce_Min_BYTE(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -190,7 +190,7 @@ int LocalReduce_Min_BYTE(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
@@ -204,7 +204,7 @@ int LocalReduce_Min_BYTE(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -232,7 +232,7 @@ int LocalReduce_Min_BYTE(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
@@ -246,7 +246,7 @@ int LocalReduce_Min_BYTE(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
break;
@@ -276,7 +276,7 @@ int LocalReduce_Min_INT(int i, int weight_on, const void * const weight, CCTK_IN
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -348,7 +348,7 @@ int LocalReduce_Min_INT(int i, int weight_on, const void * const weight, CCTK_IN
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -361,7 +361,7 @@ int LocalReduce_Min_INT(int i, int weight_on, const void * const weight, CCTK_IN
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -388,7 +388,7 @@ int LocalReduce_Min_INT(int i, int weight_on, const void * const weight, CCTK_IN
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -401,7 +401,7 @@ int LocalReduce_Min_INT(int i, int weight_on, const void * const weight, CCTK_IN
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -429,7 +429,7 @@ int LocalReduce_Min_INT(int i, int weight_on, const void * const weight, CCTK_IN
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_COMPLEX16, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -442,7 +442,7 @@ int LocalReduce_Min_INT(int i, int weight_on, const void * const weight, CCTK_IN
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -470,7 +470,7 @@ int LocalReduce_Min_INT(int i, int weight_on, const void * const weight, CCTK_IN
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_COMPLEX32, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -483,7 +483,7 @@ int LocalReduce_Min_INT(int i, int weight_on, const void * const weight, CCTK_IN
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
break;
@@ -512,7 +512,7 @@ int LocalReduce_Min_INT1(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -584,7 +584,7 @@ int LocalReduce_Min_INT1(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT1, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -597,7 +597,7 @@ int LocalReduce_Min_INT1(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -624,7 +624,7 @@ int LocalReduce_Min_INT1(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT1, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -637,7 +637,7 @@ int LocalReduce_Min_INT1(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -665,7 +665,7 @@ int LocalReduce_Min_INT1(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
@@ -679,7 +679,7 @@ int LocalReduce_Min_INT1(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -707,7 +707,7 @@ int LocalReduce_Min_INT1(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
@@ -721,7 +721,7 @@ int LocalReduce_Min_INT1(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
break;
@@ -751,7 +751,7 @@ int LocalReduce_Min_INT2(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -823,7 +823,7 @@ int LocalReduce_Min_INT2(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT2, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -836,7 +836,7 @@ int LocalReduce_Min_INT2(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -863,7 +863,7 @@ int LocalReduce_Min_INT2(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT2, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -876,7 +876,7 @@ int LocalReduce_Min_INT2(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -904,7 +904,7 @@ int LocalReduce_Min_INT2(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
@@ -918,7 +918,7 @@ int LocalReduce_Min_INT2(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -946,7 +946,7 @@ int LocalReduce_Min_INT2(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
@@ -960,7 +960,7 @@ int LocalReduce_Min_INT2(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
break;
@@ -990,7 +990,7 @@ int LocalReduce_Min_INT4(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -1062,7 +1062,7 @@ int LocalReduce_Min_INT4(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -1075,7 +1075,7 @@ int LocalReduce_Min_INT4(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -1102,7 +1102,7 @@ int LocalReduce_Min_INT4(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -1115,7 +1115,7 @@ int LocalReduce_Min_INT4(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -1143,7 +1143,7 @@ int LocalReduce_Min_INT4(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
@@ -1157,7 +1157,7 @@ int LocalReduce_Min_INT4(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -1185,7 +1185,7 @@ int LocalReduce_Min_INT4(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
@@ -1199,7 +1199,7 @@ int LocalReduce_Min_INT4(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
break;
@@ -1229,7 +1229,7 @@ int LocalReduce_Min_INT8(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -1301,7 +1301,7 @@ int LocalReduce_Min_INT8(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT8, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -1314,7 +1314,7 @@ int LocalReduce_Min_INT8(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -1341,7 +1341,7 @@ int LocalReduce_Min_INT8(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_INT8, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -1354,7 +1354,7 @@ int LocalReduce_Min_INT8(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -1382,7 +1382,7 @@ int LocalReduce_Min_INT8(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
@@ -1396,7 +1396,7 @@ int LocalReduce_Min_INT8(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -1424,7 +1424,7 @@ int LocalReduce_Min_INT8(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
@@ -1438,7 +1438,7 @@ int LocalReduce_Min_INT8(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
break;
@@ -1467,7 +1467,7 @@ int LocalReduce_Min_REAL(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -1539,7 +1539,7 @@ int LocalReduce_Min_REAL(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_REAL, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -1552,7 +1552,7 @@ int LocalReduce_Min_REAL(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -1579,7 +1579,7 @@ int LocalReduce_Min_REAL(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_REAL, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -1592,7 +1592,7 @@ int LocalReduce_Min_REAL(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -1620,7 +1620,7 @@ int LocalReduce_Min_REAL(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
@@ -1634,7 +1634,7 @@ int LocalReduce_Min_REAL(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -1662,7 +1662,7 @@ int LocalReduce_Min_REAL(int i, int weight_on, const void * const weight, CCTK_I
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
@@ -1676,7 +1676,7 @@ int LocalReduce_Min_REAL(int i, int weight_on, const void * const weight, CCTK_I
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
break;
@@ -1705,7 +1705,7 @@ int LocalReduce_Min_REAL4(int i, int weight_on, const void * const weight, CCTK_
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -1777,7 +1777,7 @@ int LocalReduce_Min_REAL4(int i, int weight_on, const void * const weight, CCTK_
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_REAL4, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -1790,7 +1790,7 @@ int LocalReduce_Min_REAL4(int i, int weight_on, const void * const weight, CCTK_
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -1817,7 +1817,7 @@ int LocalReduce_Min_REAL4(int i, int weight_on, const void * const weight, CCTK_
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_REAL4, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -1830,7 +1830,7 @@ int LocalReduce_Min_REAL4(int i, int weight_on, const void * const weight, CCTK_
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -1858,7 +1858,7 @@ int LocalReduce_Min_REAL4(int i, int weight_on, const void * const weight, CCTK_
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
@@ -1872,7 +1872,7 @@ int LocalReduce_Min_REAL4(int i, int weight_on, const void * const weight, CCTK_
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -1900,7 +1900,7 @@ int LocalReduce_Min_REAL4(int i, int weight_on, const void * const weight, CCTK_
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
@@ -1914,7 +1914,7 @@ int LocalReduce_Min_REAL4(int i, int weight_on, const void * const weight, CCTK_
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
break;
@@ -1944,7 +1944,7 @@ int LocalReduce_Min_REAL8(int i, int weight_on, const void * const weight, CCTK_
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -2016,7 +2016,7 @@ int LocalReduce_Min_REAL8(int i, int weight_on, const void * const weight, CCTK_
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_REAL8, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -2029,7 +2029,7 @@ int LocalReduce_Min_REAL8(int i, int weight_on, const void * const weight, CCTK_
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -2056,7 +2056,7 @@ int LocalReduce_Min_REAL8(int i, int weight_on, const void * const weight, CCTK_
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_REAL8, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -2069,7 +2069,7 @@ int LocalReduce_Min_REAL8(int i, int weight_on, const void * const weight, CCTK_
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -2097,7 +2097,7 @@ int LocalReduce_Min_REAL8(int i, int weight_on, const void * const weight, CCTK_
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
@@ -2111,7 +2111,7 @@ int LocalReduce_Min_REAL8(int i, int weight_on, const void * const weight, CCTK_
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -2139,7 +2139,7 @@ int LocalReduce_Min_REAL8(int i, int weight_on, const void * const weight, CCTK_
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
@@ -2154,7 +2154,7 @@ int LocalReduce_Min_REAL8(int i, int weight_on, const void * const weight, CCTK_
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
break;
@@ -2184,7 +2184,7 @@ int LocalReduce_Min_REAL16(int i, int weight_on, const void * const weight, CCTK
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -2256,7 +2256,7 @@ int LocalReduce_Min_REAL16(int i, int weight_on, const void * const weight, CCTK
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_REAL16, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -2269,7 +2269,7 @@ int LocalReduce_Min_REAL16(int i, int weight_on, const void * const weight, CCTK
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -2296,7 +2296,7 @@ int LocalReduce_Min_REAL16(int i, int weight_on, const void * const weight, CCTK
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_REAL16, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -2309,7 +2309,7 @@ int LocalReduce_Min_REAL16(int i, int weight_on, const void * const weight, CCTK
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -2337,7 +2337,7 @@ int LocalReduce_Min_REAL16(int i, int weight_on, const void * const weight, CCTK
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
@@ -2351,7 +2351,7 @@ int LocalReduce_Min_REAL16(int i, int weight_on, const void * const weight, CCTK
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -2379,7 +2379,7 @@ int LocalReduce_Min_REAL16(int i, int weight_on, const void * const weight, CCTK
inval.Re = (CCTK_REAL16) typed_vdata[sum_indices];
#endif
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0]; (num).Im = 0;
#define EXTRA_STEP(a, b)
@@ -2393,7 +2393,7 @@ int LocalReduce_Min_REAL16(int i, int weight_on, const void * const weight, CCTK
#define REDUCTION_PREOP_CAST(inval, typed_vdata,sum_indices, out_type) \
inval = (out_type) typed_vdata[sum_indices];
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
break;
@@ -2433,7 +2433,7 @@ int LocalReduce_Min_COMPLEX(int i, int weight_on, const void * const weight, CCT
#endif
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0].Re;
#define EXTRA_STEP(a, b)
@@ -2495,7 +2495,7 @@ int LocalReduce_Min_COMPLEX(int i, int weight_on, const void * const weight, CCT
(inval).Re = (CCTK_REAL) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0].Re; (num).Im = typed_vdata[0].Im;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_COMPLEX, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -2519,7 +2519,7 @@ int LocalReduce_Min_COMPLEX(int i, int weight_on, const void * const weight, CCT
#endif
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0].Re;
#define EXTRA_STEP(a, b)
@@ -2536,7 +2536,7 @@ int LocalReduce_Min_COMPLEX(int i, int weight_on, const void * const weight, CCT
(inval).Re = (CCTK_REAL4) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL4) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0].Re; (num).Im = typed_vdata[0].Im;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_COMPLEX, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -2560,7 +2560,7 @@ int LocalReduce_Min_COMPLEX(int i, int weight_on, const void * const weight, CCT
#endif
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0].Re;
#define EXTRA_STEP(a, b)
@@ -2578,7 +2578,7 @@ int LocalReduce_Min_COMPLEX(int i, int weight_on, const void * const weight, CCT
(inval).Re = (CCTK_REAL8) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL8) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0].Re; (num).Im = typed_vdata[0].Im;
#define EXTRA_STEP(a, b)
@@ -2603,7 +2603,7 @@ int LocalReduce_Min_COMPLEX(int i, int weight_on, const void * const weight, CCT
#endif
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0].Re;
#define EXTRA_STEP(a, b)
@@ -2621,7 +2621,7 @@ int LocalReduce_Min_COMPLEX(int i, int weight_on, const void * const weight, CCT
(inval).Re = (CCTK_REAL16) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL16) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0].Re; (num).Im = typed_vdata[0].Im;
#define EXTRA_STEP(a, b)
@@ -2646,7 +2646,7 @@ int LocalReduce_Min_COMPLEX(int i, int weight_on, const void * const weight, CCT
#endif
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0].Re;
#define EXTRA_STEP(a, b)
break;
@@ -2687,7 +2687,7 @@ int LocalReduce_Min_COMPLEX8(int i, int weight_on, const void * const weight, CC
#endif
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0].Re;
#define EXTRA_STEP(a, b)
@@ -2749,7 +2749,7 @@ int LocalReduce_Min_COMPLEX8(int i, int weight_on, const void * const weight, CC
(inval).Re = (CCTK_REAL) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0].Re; (num).Im = typed_vdata[0].Im;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_COMPLEX8, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -2773,7 +2773,7 @@ int LocalReduce_Min_COMPLEX8(int i, int weight_on, const void * const weight, CC
#endif
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0].Re;
#define EXTRA_STEP(a, b)
@@ -2790,7 +2790,7 @@ int LocalReduce_Min_COMPLEX8(int i, int weight_on, const void * const weight, CC
(inval).Re = (CCTK_REAL4) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL4) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0].Re; (num).Im = typed_vdata[0].Im;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_COMPLEX8, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -2814,7 +2814,7 @@ int LocalReduce_Min_COMPLEX8(int i, int weight_on, const void * const weight, CC
#endif
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0].Re;
#define EXTRA_STEP(a, b)
@@ -2832,7 +2832,7 @@ int LocalReduce_Min_COMPLEX8(int i, int weight_on, const void * const weight, CC
(inval).Re = (CCTK_REAL8) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL8) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0].Re; (num).Im = typed_vdata[0].Im;
#define EXTRA_STEP(a, b)
@@ -2857,7 +2857,7 @@ int LocalReduce_Min_COMPLEX8(int i, int weight_on, const void * const weight, CC
#endif
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0].Re;
#define EXTRA_STEP(a, b)
@@ -2875,7 +2875,7 @@ int LocalReduce_Min_COMPLEX8(int i, int weight_on, const void * const weight, CC
(inval).Re = (CCTK_REAL16) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL16) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0].Re; (num).Im = typed_vdata[0].Im;
#define EXTRA_STEP(a, b)
@@ -2900,7 +2900,7 @@ int LocalReduce_Min_COMPLEX8(int i, int weight_on, const void * const weight, CC
#endif
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0].Re;
#define EXTRA_STEP(a, b)
break;
@@ -2941,7 +2941,7 @@ int LocalReduce_Min_COMPLEX16(int i, int weight_on, const void * const weight, C
#endif
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0].Re;
#define EXTRA_STEP(a, b)
@@ -3003,7 +3003,7 @@ int LocalReduce_Min_COMPLEX16(int i, int weight_on, const void * const weight, C
(inval).Re = (CCTK_REAL) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0].Re; (num).Im = typed_vdata[0].Im;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_COMPLEX16, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -3027,7 +3027,7 @@ int LocalReduce_Min_COMPLEX16(int i, int weight_on, const void * const weight, C
#endif
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0].Re;
#define EXTRA_STEP(a, b)
@@ -3044,7 +3044,7 @@ int LocalReduce_Min_COMPLEX16(int i, int weight_on, const void * const weight, C
(inval).Re = (CCTK_REAL4) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL4) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0].Re; (num).Im = typed_vdata[0].Im;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_COMPLEX16, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -3068,7 +3068,7 @@ int LocalReduce_Min_COMPLEX16(int i, int weight_on, const void * const weight, C
#endif
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0].Re;
#define EXTRA_STEP(a, b)
@@ -3086,7 +3086,7 @@ int LocalReduce_Min_COMPLEX16(int i, int weight_on, const void * const weight, C
(inval).Re = (CCTK_REAL8) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL8) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0].Re; (num).Im = typed_vdata[0].Im;
#define EXTRA_STEP(a, b)
@@ -3111,7 +3111,7 @@ int LocalReduce_Min_COMPLEX16(int i, int weight_on, const void * const weight, C
#endif
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0].Re;
#define EXTRA_STEP(a, b)
@@ -3129,7 +3129,7 @@ int LocalReduce_Min_COMPLEX16(int i, int weight_on, const void * const weight, C
(inval).Re = (CCTK_REAL16) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL16) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0].Re; (num).Im = typed_vdata[0].Im;
#define EXTRA_STEP(a, b)
@@ -3154,7 +3154,7 @@ int LocalReduce_Min_COMPLEX16(int i, int weight_on, const void * const weight, C
#endif
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0].Re;
#define EXTRA_STEP(a, b)
break;
@@ -3195,7 +3195,7 @@ int LocalReduce_Min_COMPLEX32(int i, int weight_on, const void * const weight, C
#endif
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0].Re;
#define EXTRA_STEP(a, b)
@@ -3257,7 +3257,7 @@ int LocalReduce_Min_COMPLEX32(int i, int weight_on, const void * const weight, C
(inval).Re = (CCTK_REAL) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0].Re; (num).Im = typed_vdata[0].Im;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_COMPLEX32, input_arrays[i], CCTK_COMPLEX, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -3281,7 +3281,7 @@ int LocalReduce_Min_COMPLEX32(int i, int weight_on, const void * const weight, C
#endif
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0];
#define EXTRA_STEP(a, b)
@@ -3298,7 +3298,7 @@ int LocalReduce_Min_COMPLEX32(int i, int weight_on, const void * const weight, C
(inval).Re = (CCTK_REAL4) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL4) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0].Re; (num).Im = typed_vdata[0].Im;
#define EXTRA_STEP(a, b)
ITERATE_ON_ARRAY(i,CCTK_COMPLEX32, input_arrays[i], CCTK_COMPLEX8, output_numbers[i], weight_on, weight, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,input_array_dims,product)
@@ -3322,7 +3322,7 @@ int LocalReduce_Min_COMPLEX32(int i, int weight_on, const void * const weight, C
#endif
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0].Re;
#define EXTRA_STEP(a, b)
@@ -3340,7 +3340,7 @@ int LocalReduce_Min_COMPLEX32(int i, int weight_on, const void * const weight, C
(inval).Re = (CCTK_REAL8) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL8) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0].Re; (num).Im = typed_vdata[0].Im;
#define EXTRA_STEP(a, b)
@@ -3365,7 +3365,7 @@ int LocalReduce_Min_COMPLEX32(int i, int weight_on, const void * const weight, C
#endif
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0].Re;
#define EXTRA_STEP(a, b)
@@ -3383,7 +3383,7 @@ int LocalReduce_Min_COMPLEX32(int i, int weight_on, const void * const weight, C
(inval).Re = (CCTK_REAL16) (typed_vdata[sum_indices]).Re; (inval).Im = (CCTK_REAL16) (typed_vdata[sum_indices]).Im;
#define REDUCTION_OPERATION(Min, scalar) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if ((Min).Re > (scalar).Re) (Min).Re = (scalar).Re;};
#define REDUCTION_INITIAL(num) (num).Re = typed_vdata[0].Re; (num).Im = typed_vdata[0].Im;
#define EXTRA_STEP(a, b)
@@ -3408,7 +3408,7 @@ int LocalReduce_Min_COMPLEX32(int i, int weight_on, const void * const weight, C
#endif
#define REDUCTION_OPERATION(Min, scalar) if (Min > scalar) Min = scalar;
-#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if (Min > scalar) Min = scalar;
+#define WEIGHTED_REDUCTION_OPERATION(Min, scalar, weight) if(ABS(weight)>SMALL_NUMBER){if (Min > scalar) Min = scalar;};
#define REDUCTION_INITIAL(num) num = typed_vdata[0].Re;
#define EXTRA_STEP(a, b)
break;
diff --git a/src/local_reductions.h b/src/local_reductions.h
index 6316063..57e2b47 100644
--- a/src/local_reductions.h
+++ b/src/local_reductions.h
@@ -17,6 +17,7 @@
#include "cctk_Reduction.h"
#define ABS(x) ((x) < 0 ? -(x) : (x))
+#define SMALL_NUMBER 0
#ifdef __cplusplus
extern "C" {