diff options
Diffstat (limited to 'src/ReductionNorm3.c')
-rw-r--r-- | src/ReductionNorm3.c | 112 |
1 files changed, 60 insertions, 52 deletions
diff --git a/src/ReductionNorm3.c b/src/ReductionNorm3.c index e94cfa6..261b04c 100644 --- a/src/ReductionNorm3.c +++ b/src/ReductionNorm3.c @@ -194,14 +194,14 @@ static int ReductionL3 (int N_dims, int operator_handle, /* for strides and subscripts get values from param table (it they exist) */ if ( Util_TableQueryNKeys(param_table_handle) != 0) { - ierr = Util_TableGetGenericArray(param_table_handle, CCTK_VARIABLE_INT, - N_input_arrays, input_array_offsets, "input_array_offsets"); - ierr = Util_TableGetGenericArray(param_table_handle, CCTK_VARIABLE_INT, - N_dims, input_array_strides, "input_array_strides"); - ierr = Util_TableGetGenericArray(param_table_handle, CCTK_VARIABLE_INT, - N_dims, input_array_min_subscripts, "input_array_min_subscripts"); - ierr = Util_TableGetGenericArray(param_table_handle, CCTK_VARIABLE_INT, - N_dims, input_array_min_subscripts, "input_array_min_subscripts"); + ierr = Util_TableGetGenericArray(param_table_handle, CCTK_VARIABLE_INT, + N_input_arrays, input_array_offsets, "input_array_offsets"); + ierr = Util_TableGetGenericArray(param_table_handle, CCTK_VARIABLE_INT, + N_dims, input_array_strides, "input_array_strides"); + ierr = Util_TableGetGenericArray(param_table_handle, CCTK_VARIABLE_INT, + N_dims, input_array_min_subscripts, "input_array_min_subscripts"); + ierr = Util_TableGetGenericArray(param_table_handle, CCTK_VARIABLE_INT, + N_dims, input_array_max_subscripts, "input_array_max_subscripts"); } /* for masks get values from param table (it they exist) */ @@ -300,9 +300,9 @@ static int ReductionL3 (int N_dims, int operator_handle, ITERATE_ON_ARRAY(i,CCTK_BYTE, input_arrays[i], CCTK_REAL8, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif - #ifdef CCTK_REAL6 - case CCTK_VARIABLE_REAL6: - ITERATE_ON_ARRAY(i,CCTK_BYTE, input_arrays[i], CCTK_REAL6, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) + #ifdef CCTK_REAL16 + case CCTK_VARIABLE_REAL16: + ITERATE_ON_ARRAY(i,CCTK_BYTE, input_arrays[i], CCTK_REAL16, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif case CCTK_VARIABLE_COMPLEX: @@ -372,9 +372,9 @@ static int ReductionL3 (int N_dims, int operator_handle, ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_REAL8, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif - #ifdef CCTK_REAL6 - case CCTK_VARIABLE_REAL6: - ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_REAL6, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) + #ifdef CCTK_REAL16 + case CCTK_VARIABLE_REAL16: + ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_REAL16, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif case CCTK_VARIABLE_COMPLEX: @@ -445,9 +445,9 @@ static int ReductionL3 (int N_dims, int operator_handle, ITERATE_ON_ARRAY(i,CCTK_INT1, input_arrays[i], CCTK_REAL8, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif - #ifdef CCTK_REAL6 - case CCTK_VARIABLE_REAL6: - ITERATE_ON_ARRAY(i,CCTK_INT1, input_arrays[i], CCTK_REAL6, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) + #ifdef CCTK_REAL16 + case CCTK_VARIABLE_REAL16: + ITERATE_ON_ARRAY(i,CCTK_INT1, input_arrays[i], CCTK_REAL16, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif case CCTK_VARIABLE_COMPLEX: @@ -519,9 +519,9 @@ static int ReductionL3 (int N_dims, int operator_handle, ITERATE_ON_ARRAY(i,CCTK_INT2, input_arrays[i], CCTK_REAL8, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif - #ifdef CCTK_REAL6 - case CCTK_VARIABLE_REAL6: - ITERATE_ON_ARRAY(i,CCTK_INT2, input_arrays[i], CCTK_REAL6, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) + #ifdef CCTK_REAL16 + case CCTK_VARIABLE_REAL16: + ITERATE_ON_ARRAY(i,CCTK_INT2, input_arrays[i], CCTK_REAL16, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif case CCTK_VARIABLE_COMPLEX: @@ -593,9 +593,9 @@ static int ReductionL3 (int N_dims, int operator_handle, ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_REAL8, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif - #ifdef CCTK_REAL6 - case CCTK_VARIABLE_REAL6: - ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_REAL6, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) + #ifdef CCTK_REAL16 + case CCTK_VARIABLE_REAL16: + ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_REAL16, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif case CCTK_VARIABLE_COMPLEX: @@ -667,9 +667,9 @@ static int ReductionL3 (int N_dims, int operator_handle, ITERATE_ON_ARRAY(i,CCTK_INT8, input_arrays[i], CCTK_REAL8, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif - #ifdef CCTK_REAL6 - case CCTK_VARIABLE_REAL6: - ITERATE_ON_ARRAY(i,CCTK_INT8, input_arrays[i], CCTK_REAL6, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) + #ifdef CCTK_REAL16 + case CCTK_VARIABLE_REAL16: + ITERATE_ON_ARRAY(i,CCTK_INT8, input_arrays[i], CCTK_REAL16, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif case CCTK_VARIABLE_COMPLEX: @@ -740,9 +740,9 @@ static int ReductionL3 (int N_dims, int operator_handle, ITERATE_ON_ARRAY(i,CCTK_REAL, input_arrays[i], CCTK_REAL8, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif - #ifdef CCTK_REAL6 - case CCTK_VARIABLE_REAL6: - ITERATE_ON_ARRAY(i,CCTK_REAL, input_arrays[i], CCTK_REAL6, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) + #ifdef CCTK_REAL16 + case CCTK_VARIABLE_REAL16: + ITERATE_ON_ARRAY(i,CCTK_REAL, input_arrays[i], CCTK_REAL16, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif case CCTK_VARIABLE_COMPLEX: @@ -813,9 +813,9 @@ static int ReductionL3 (int N_dims, int operator_handle, ITERATE_ON_ARRAY(i,CCTK_REAL4, input_arrays[i], CCTK_REAL8, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif - #ifdef CCTK_REAL6 - case CCTK_VARIABLE_REAL6: - ITERATE_ON_ARRAY(i,CCTK_REAL4, input_arrays[i], CCTK_REAL6, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) + #ifdef CCTK_REAL16 + case CCTK_VARIABLE_REAL16: + ITERATE_ON_ARRAY(i,CCTK_REAL4, input_arrays[i], CCTK_REAL16, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif case CCTK_VARIABLE_COMPLEX: @@ -887,9 +887,9 @@ static int ReductionL3 (int N_dims, int operator_handle, ITERATE_ON_ARRAY(i,CCTK_REAL8, input_arrays[i], CCTK_REAL8, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif - #ifdef CCTK_REAL6 - case CCTK_VARIABLE_REAL6: - ITERATE_ON_ARRAY(i,CCTK_REAL8, input_arrays[i], CCTK_REAL6, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) + #ifdef CCTK_REAL16 + case CCTK_VARIABLE_REAL16: + ITERATE_ON_ARRAY(i,CCTK_REAL8, input_arrays[i], CCTK_REAL16, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif case CCTK_VARIABLE_COMPLEX: @@ -913,8 +913,8 @@ static int ReductionL3 (int N_dims, int operator_handle, } break; #endif - #ifdef CCTK_REAL6 - case CCTK_VARIABLE_REAL6: + #ifdef CCTK_REAL16 + case CCTK_VARIABLE_REAL16: switch (output_number_type_codes[i]) { /* out values type switches*/ @@ -957,9 +957,9 @@ static int ReductionL3 (int N_dims, int operator_handle, ITERATE_ON_ARRAY(i,CCTK_REAL16, input_arrays[i], CCTK_REAL8, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif - #ifdef CCTK_REAL6 - case CCTK_VARIABLE_REAL6: - ITERATE_ON_ARRAY(i,CCTK_REAL16, input_arrays[i], CCTK_REAL6, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) + #ifdef CCTK_REAL16 + case CCTK_VARIABLE_REAL16: + ITERATE_ON_ARRAY(i,CCTK_REAL16, input_arrays[i], CCTK_REAL16, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif case CCTK_VARIABLE_COMPLEX: @@ -1028,9 +1028,9 @@ static int ReductionL3 (int N_dims, int operator_handle, /* ITERATE_ON_ARRAY(i,CCTK_COMPLEX, input_arrays[i], CCTK_REAL8, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)*/ break; #endif - #ifdef CCTK_REAL6 - case CCTK_VARIABLE_REAL6: -/* ITERATE_ON_ARRAY(i,CCTK_COMPLEX, input_arrays[i], CCTK_REAL6, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)*/ + #ifdef CCTK_REAL16 + case CCTK_VARIABLE_REAL16: +/* ITERATE_ON_ARRAY(i,CCTK_COMPLEX, input_arrays[i], CCTK_REAL16, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)*/ break; #endif case CCTK_VARIABLE_COMPLEX: @@ -1097,9 +1097,9 @@ static int ReductionL3 (int N_dims, int operator_handle, ITERATE_ON_ARRAY(i,CCTK_COMPLEX8, input_arrays[i], CCTK_REAL8, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif - #ifdef CCTK_REAL6 - case CCTK_VARIABLE_REAL6: - ITERATE_ON_ARRAY(i,CCTK_COMPLEX8, input_arrays[i], CCTK_REAL6, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) + #ifdef CCTK_REAL16 + case CCTK_VARIABLE_REAL16: + ITERATE_ON_ARRAY(i,CCTK_COMPLEX8, input_arrays[i], CCTK_REAL16, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif case CCTK_VARIABLE_COMPLEX: @@ -1167,9 +1167,9 @@ static int ReductionL3 (int N_dims, int operator_handle, ITERATE_ON_ARRAY(i,CCTK_COMPLEX16, input_arrays[i], CCTK_REAL8, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif - #ifdef CCTK_REAL6 - case CCTK_VARIABLE_REAL6: - ITERATE_ON_ARRAY(i,CCTK_COMPLEX16, input_arrays[i], CCTK_REAL6, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) + #ifdef CCTK_REAL16 + case CCTK_VARIABLE_REAL16: + ITERATE_ON_ARRAY(i,CCTK_COMPLEX16, input_arrays[i], CCTK_REAL16, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif case CCTK_VARIABLE_COMPLEX: @@ -1237,9 +1237,9 @@ static int ReductionL3 (int N_dims, int operator_handle, ITERATE_ON_ARRAY(i,CCTK_COMPLEX32, input_arrays[i], CCTK_REAL8, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif - #ifdef CCTK_REAL6 - case CCTK_VARIABLE_REAL6: - ITERATE_ON_ARRAY(i,CCTK_COMPLEX32, input_arrays[i], CCTK_REAL6, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) + #ifdef CCTK_REAL16 + case CCTK_VARIABLE_REAL16: + ITERATE_ON_ARRAY(i,CCTK_COMPLEX32, input_arrays[i], CCTK_REAL16, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product) break; #endif case CCTK_VARIABLE_COMPLEX: @@ -1266,6 +1266,14 @@ static int ReductionL3 (int N_dims, int operator_handle, } } + /* store the number of points in the paramater table */ + if ( Util_TableQueryNKeys(param_table_handle) != 0) + { + ierr = Util_TableSetInt(param_table_handle, num_points, "num_points"); + ierr = Util_TableSetInt(param_table_handle, 3,"mpi_operation"); + ierr = Util_TableSetInt(param_table_handle, 0,"perform_division"); + } + /* free memory */ free (iters_per_dim); free (indices); |