aboutsummaryrefslogtreecommitdiff
path: root/src/ReductionNorm1.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ReductionNorm1.c')
-rw-r--r--src/ReductionNorm1.c281
1 files changed, 181 insertions, 100 deletions
diff --git a/src/ReductionNorm1.c b/src/ReductionNorm1.c
index 1b5eb3c..bc2fd02 100644
--- a/src/ReductionNorm1.c
+++ b/src/ReductionNorm1.c
@@ -152,17 +152,12 @@ static int ReductionL1 (int N_dims, int operator_handle,
CCTK_INT * input_array_min_subscripts;
CCTK_INT * input_array_max_subscripts;
- /* excesion variables declared here */
- int mask_on = 1; /* mask is by default off=1 */
- void * mask_array; /* same dimensions/indexing as input arrays */
- CCTK_INT mask_type_code; /* one of the CCTK_VARIABLE_* codes */
- CCTK_INT mask_offset;
- CCTK_INT mask_time_level;
+ /* weight variables declared here */
+ int weight_on = 0; /* weight is by default off=0 */
+ void const * weight; /* pointer to the weight variable */
+ CCTK_REAL weight_sum;
/* prevent warnings for unused vars */
- (void)(mask_array);
- (void)(mask_offset + 0);
- (void)(mask_time_level + 0);
(void)(operator_handle + 0);
/* set the number of points */
@@ -208,20 +203,16 @@ static int ReductionL1 (int N_dims, int operator_handle,
N_dims, input_array_max_subscripts, "input_array_max_subscripts");
}
- /* for masks get values from param table (it they exist) */
+ /* for weights get values from param table (it they exist) */
if ( Util_TableQueryNKeys(param_table_handle) != 0)
{
ierr = 0;
- ierr = Util_TableGetInt(param_table_handle, &mask_type_code, "mask_type_code");
-
- /* mask_valid_min, mask_valid_max;
- ierr = Util_TableGetGeneric(param_table_handle, mask_type_code,
- mask_range, "mask_valid_min");
- ierr = Util_TableGetGeneric(param_table_handle, mask_type_code,
- mask_range, "mask_valid_max");
- ierr = Util_TableGetGeneric(param_table_handle, mask_type_code,
- mask_array, "mask_array"); */
+ /* Get the weight_on parameter and the weight_var_index parameter */
+ ierr = Util_TableGetInt(param_table_handle, &weight_on, "weight_on");
+ ierr = Util_TableGetPointerToConst(param_table_handle, &weight, "weight");
+ /* Need to add more checking here for size, storage */
}
+
/* reduction maps an array to a single value of the same type */
if (M_output_numbers != N_input_arrays)
{
@@ -260,70 +251,73 @@ static int ReductionL1 (int N_dims, int operator_handle,
{
/* in values type switches*/
case CCTK_VARIABLE_BYTE:
- num_points = LocalReduce_Norm1_BYTE(i, mask_on, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers);
+ ierr = LocalReduce_Norm1_BYTE(i, weight_on, weight, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers, param_table_handle);
break;
case CCTK_VARIABLE_INT:
- num_points = LocalReduce_Norm1_INT(i, mask_on, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers);
+ ierr = LocalReduce_Norm1_INT(i, weight_on, weight, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers, param_table_handle);
break;
#ifdef CCTK_INT1
case CCTK_VARIABLE_INT1:
- num_points = LocalReduce_Norm1_INT1(i, mask_on, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers);
+ ierr = LocalReduce_Norm1_INT1(i, weight_on, weight, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers, param_table_handle);
break;
#endif
#ifdef CCTK_INT2
case CCTK_VARIABLE_INT2:
- num_points = LocalReduce_Norm1_INT2(i, mask_on, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers);
+ ierr = LocalReduce_Norm1_INT2(i, weight_on, weight, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers, param_table_handle);
break;
#endif
#ifdef CCTK_INT4
case CCTK_VARIABLE_INT4:
- num_points = LocalReduce_Norm1_INT4(i, mask_on, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers);
+ ierr = LocalReduce_Norm1_INT4(i, weight_on, weight, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers, param_table_handle);
break;
#endif
#ifdef CCTK_INT8
case CCTK_VARIABLE_INT8:
- num_points = LocalReduce_Norm1_INT8(i, mask_on, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers);
+ ierr = LocalReduce_Norm1_INT8(i, weight_on, weight, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers, param_table_handle);
break;
#endif
case CCTK_VARIABLE_REAL:
- num_points = LocalReduce_Norm1_REAL(i, mask_on, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers);
+ ierr = LocalReduce_Norm1_REAL(i, weight_on, weight, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers, param_table_handle);
break;
#ifdef CCTK_REAL4
case CCTK_VARIABLE_REAL4:
- num_points = LocalReduce_Norm1_REAL4(i, mask_on, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers);
+ ierr = LocalReduce_Norm1_REAL4(i, weight_on, weight, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers, param_table_handle);
break;
#endif
#ifdef CCTK_REAL8
case CCTK_VARIABLE_REAL8:
- num_points = LocalReduce_Norm1_REAL8(i, mask_on, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers);
+ ierr = LocalReduce_Norm1_REAL8(i, weight_on, weight, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers, param_table_handle);
break;
#endif
#ifdef CCTK_REAL16
case CCTK_VARIABLE_REAL16:
- num_points = LocalReduce_Norm1_REAL16(i, mask_on, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers);
+ ierr = LocalReduce_Norm1_REAL16(i, weight_on, weight, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers, param_table_handle);
break;
#endif
case CCTK_VARIABLE_COMPLEX:
- num_points = LocalReduce_Norm1_COMPLEX(i, mask_on, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers);
+ ierr = LocalReduce_Norm1_COMPLEX(i, weight_on, weight, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers, param_table_handle);
break;
#ifdef CCTK_COMPLEX8
case CCTK_VARIABLE_COMPLEX8:
- num_points = LocalReduce_Norm1_COMPLEX8(i, mask_on, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers);
+ ierr = LocalReduce_Norm1_COMPLEX8(i, weight_on, weight, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers, param_table_handle);
break;
#endif
#ifdef CCTK_COMPLEX16
case CCTK_VARIABLE_COMPLEX16:
- num_points = LocalReduce_Norm1_COMPLEX16(i, mask_on, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers);
+ ierr = LocalReduce_Norm1_COMPLEX16(i, weight_on, weight, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers, param_table_handle);
break;
#endif
#ifdef CCTK_COMPLEX32
case CCTK_VARIABLE_COMPLEX32:
- num_points = LocalReduce_Norm1_COMPLEX32(i, mask_on, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers);
+ ierr = LocalReduce_Norm1_COMPLEX32(i, weight_on, weight, input_array_offsets, indices, max_iter, actual_indices, input_array_strides, input_array_min_subscripts, input_array_dims, num_points, actual_iters_per_dim, iters_per_dim, N_dims, input_arrays, output_number_type_codes, output_numbers, param_table_handle);
break;
#endif
}
}
+ /* Get the values of num_points and weight_sum */
+ ierr = Util_TableGetInt(param_table_handle, &num_points, "num_points");
+ ierr = Util_TableGetReal(param_table_handle, &weight_sum, "weight_sum");
num_points--;
/* store the number of points in the paramater table and perform division */
@@ -336,77 +330,164 @@ static int ReductionL1 (int N_dims, int operator_handle,
}
else
{
- for (i = 0; i< M_output_numbers; i++)
+ if (weight_on == 1)
+ {
+ if (ABS(weight_sum) > 1e-12)
+ {
+ for (i = 0; i< M_output_numbers; i++)
+ {
+ switch (output_number_type_codes[i])
+ {
+ /* out values type switches*/
+ case CCTK_VARIABLE_BYTE:
+ *( (CCTK_BYTE *) output_numbers[i]) = *( (CCTK_BYTE *) output_numbers[i]) / weight_sum;
+ break;
+ case CCTK_VARIABLE_INT:
+ *( (CCTK_INT *) output_numbers[i]) = *( (CCTK_INT *) output_numbers[i]) / weight_sum;
+ break;
+ #ifdef CCTK_INT1
+ case CCTK_VARIABLE_INT1:
+ *( (CCTK_INT1 *) output_numbers[i]) = *( (CCTK_INT1 *) output_numbers[i]) / weight_sum;
+ break;
+ #endif
+ #ifdef CCTK_INT2
+ case CCTK_VARIABLE_INT2:
+ *( (CCTK_INT2 *) output_numbers[i]) = *( (CCTK_INT2 *) output_numbers[i]) / weight_sum;
+ break;
+ #endif
+ #ifdef CCTK_INT4
+ case CCTK_VARIABLE_INT4:
+ *( (CCTK_INT4 *) output_numbers[i]) = *( (CCTK_INT4 *) output_numbers[i]) / weight_sum;
+ break;
+ #endif
+ #ifdef CCTK_INT8
+ case CCTK_VARIABLE_INT8:
+ *( (CCTK_INT8 *) output_numbers[i]) = *( (CCTK_INT8 *) output_numbers[i]) / weight_sum;
+ break;
+ #endif
+ case CCTK_VARIABLE_REAL:
+ *( (CCTK_REAL *) output_numbers[i]) = *( (CCTK_REAL *) output_numbers[i]) / weight_sum;
+ break;
+ #ifdef CCTK_REAL4
+ case CCTK_VARIABLE_REAL4:
+ *( (CCTK_REAL4 *) output_numbers[i]) = *( (CCTK_REAL4 *) output_numbers[i]) / weight_sum;
+ break;
+ #endif
+ #ifdef CCTK_REAL8
+ case CCTK_VARIABLE_REAL8:
+ *( (CCTK_REAL8 *) output_numbers[i]) = *( (CCTK_REAL8 *) output_numbers[i]) / weight_sum;
+ break;
+ #endif
+ #ifdef CCTK_REAL16
+ case CCTK_VARIABLE_REAL16:
+ *( (CCTK_REAL16 *) output_numbers[i]) = *( (CCTK_REAL16 *) output_numbers[i]) / weight_sum;
+ break;
+ #endif
+ case CCTK_VARIABLE_COMPLEX:
+ (*( (CCTK_COMPLEX *) output_numbers[i])).Re = (*( (CCTK_COMPLEX *) output_numbers[i])).Re / weight_sum;
+ (*( (CCTK_COMPLEX *) output_numbers[i])).Im = (*( (CCTK_COMPLEX *) output_numbers[i])).Im / weight_sum;
+ break;
+ #ifdef CCTK_COMPLEX8
+ case CCTK_VARIABLE_COMPLEX8:
+ (*( (CCTK_COMPLEX8 *) output_numbers[i])).Re = (*( (CCTK_COMPLEX8 *) output_numbers[i])).Re / weight_sum;
+ (*( (CCTK_COMPLEX8 *) output_numbers[i])).Im = (*( (CCTK_COMPLEX8 *) output_numbers[i])).Im / weight_sum;
+ break;
+ #endif
+ #ifdef CCTK_COMPLEX16
+ case CCTK_VARIABLE_COMPLEX16:
+ (*( (CCTK_COMPLEX16 *) output_numbers[i])).Re = (*( (CCTK_COMPLEX16 *) output_numbers[i])).Re / weight_sum;
+ (*( (CCTK_COMPLEX16 *) output_numbers[i])).Im = (*( (CCTK_COMPLEX16 *) output_numbers[i])).Im / weight_sum;
+ break;
+ #endif
+ #ifdef CCTK_COMPLEX32
+ case CCTK_VARIABLE_COMPLEX32:
+ (*( (CCTK_COMPLEX32 *) output_numbers[i])).Re = (*( (CCTK_COMPLEX32 *) output_numbers[i])).Re / weight_sum;
+ (*( (CCTK_COMPLEX32 *) output_numbers[i])).Im = (*( (CCTK_COMPLEX32 *) output_numbers[i])).Im / weight_sum;
+ break;
+ #endif
+ }
+ }
+ }
+ else
+ {
+ CCTK_WARN (1, "The sum of weights in average reduction is zero");
+ return (-1);
+ }
+ }
+ else
{
- switch (output_number_type_codes[i])
+ for (i = 0; i< M_output_numbers; i++)
{
- /* out values type switches*/
- case CCTK_VARIABLE_BYTE:
- *( (CCTK_BYTE *) output_numbers[i]) = *( (CCTK_BYTE *) output_numbers[i]) / num_points;
- break;
- case CCTK_VARIABLE_INT:
- *( (CCTK_INT *) output_numbers[i]) = *( (CCTK_INT *) output_numbers[i]) / num_points;
- break;
- #ifdef CCTK_INT1
- case CCTK_VARIABLE_INT1:
- *( (CCTK_INT1 *) output_numbers[i]) = *( (CCTK_INT1 *) output_numbers[i]) / num_points;
- break;
- #endif
- #ifdef CCTK_INT2
- case CCTK_VARIABLE_INT2:
- *( (CCTK_INT2 *) output_numbers[i]) = *( (CCTK_INT2 *) output_numbers[i]) / num_points;
- break;
- #endif
- #ifdef CCTK_INT4
- case CCTK_VARIABLE_INT4:
- *( (CCTK_INT4 *) output_numbers[i]) = *( (CCTK_INT4 *) output_numbers[i]) / num_points;
- break;
- #endif
- #ifdef CCTK_INT8
- case CCTK_VARIABLE_INT8:
- *( (CCTK_INT8 *) output_numbers[i]) = *( (CCTK_INT8 *) output_numbers[i]) / num_points;
- break;
- #endif
- case CCTK_VARIABLE_REAL:
- *( (CCTK_REAL *) output_numbers[i]) = *( (CCTK_REAL *) output_numbers[i]) / num_points;
- break;
- #ifdef CCTK_REAL4
- case CCTK_VARIABLE_REAL4:
- *( (CCTK_REAL4 *) output_numbers[i]) = *( (CCTK_REAL4 *) output_numbers[i]) / num_points;
- break;
- #endif
- #ifdef CCTK_REAL8
- case CCTK_VARIABLE_REAL8:
- *( (CCTK_REAL8 *) output_numbers[i]) = *( (CCTK_REAL8 *) output_numbers[i]) / num_points;
- break;
- #endif
- #ifdef CCTK_REAL16
- case CCTK_VARIABLE_REAL16:
- *( (CCTK_REAL16 *) output_numbers[i]) = *( (CCTK_REAL16 *) output_numbers[i]) / num_points;
- break;
- #endif
- case CCTK_VARIABLE_COMPLEX:
- (*( (CCTK_COMPLEX *) output_numbers[i])).Re = (*( (CCTK_COMPLEX *) output_numbers[i])).Re / num_points;
- (*( (CCTK_COMPLEX *) output_numbers[i])).Im = (*( (CCTK_COMPLEX *) output_numbers[i])).Im / num_points;
- break;
- #ifdef CCTK_COMPLEX8
- case CCTK_VARIABLE_COMPLEX8:
- (*( (CCTK_COMPLEX8 *) output_numbers[i])).Re = (*( (CCTK_COMPLEX8 *) output_numbers[i])).Re / num_points;
- (*( (CCTK_COMPLEX8 *) output_numbers[i])).Im = (*( (CCTK_COMPLEX8 *) output_numbers[i])).Im / num_points;
- break;
- #endif
- #ifdef CCTK_COMPLEX16
- case CCTK_VARIABLE_COMPLEX16:
+ switch (output_number_type_codes[i])
+ {
+ /* out values type switches*/
+ case CCTK_VARIABLE_BYTE:
+ *( (CCTK_BYTE *) output_numbers[i]) = *( (CCTK_BYTE *) output_numbers[i]) / num_points;
+ break;
+ case CCTK_VARIABLE_INT:
+ *( (CCTK_INT *) output_numbers[i]) = *( (CCTK_INT *) output_numbers[i]) / num_points;
+ break;
+ #ifdef CCTK_INT1
+ case CCTK_VARIABLE_INT1:
+ *( (CCTK_INT1 *) output_numbers[i]) = *( (CCTK_INT1 *) output_numbers[i]) / num_points;
+ break;
+ #endif
+ #ifdef CCTK_INT2
+ case CCTK_VARIABLE_INT2:
+ *( (CCTK_INT2 *) output_numbers[i]) = *( (CCTK_INT2 *) output_numbers[i]) / num_points;
+ break;
+ #endif
+ #ifdef CCTK_INT4
+ case CCTK_VARIABLE_INT4:
+ *( (CCTK_INT4 *) output_numbers[i]) = *( (CCTK_INT4 *) output_numbers[i]) / num_points;
+ break;
+ #endif
+ #ifdef CCTK_INT8
+ case CCTK_VARIABLE_INT8:
+ *( (CCTK_INT8 *) output_numbers[i]) = *( (CCTK_INT8 *) output_numbers[i]) / num_points;
+ break;
+ #endif
+ case CCTK_VARIABLE_REAL:
+ *( (CCTK_REAL *) output_numbers[i]) = *( (CCTK_REAL *) output_numbers[i]) / num_points;
+ break;
+ #ifdef CCTK_REAL4
+ case CCTK_VARIABLE_REAL4:
+ *( (CCTK_REAL4 *) output_numbers[i]) = *( (CCTK_REAL4 *) output_numbers[i]) / num_points;
+ break;
+ #endif
+ #ifdef CCTK_REAL8
+ case CCTK_VARIABLE_REAL8:
+ *( (CCTK_REAL8 *) output_numbers[i]) = *( (CCTK_REAL8 *) output_numbers[i]) / num_points;
+ break;
+ #endif
+ #ifdef CCTK_REAL16
+ case CCTK_VARIABLE_REAL16:
+ *( (CCTK_REAL16 *) output_numbers[i]) = *( (CCTK_REAL16 *) output_numbers[i]) / num_points;
+ break;
+ #endif
+ case CCTK_VARIABLE_COMPLEX:
+ (*( (CCTK_COMPLEX *) output_numbers[i])).Re = (*( (CCTK_COMPLEX *) output_numbers[i])).Re / num_points;
+ (*( (CCTK_COMPLEX *) output_numbers[i])).Im = (*( (CCTK_COMPLEX *) output_numbers[i])).Im / num_points;
+ break;
+ #ifdef CCTK_COMPLEX8
+ case CCTK_VARIABLE_COMPLEX8:
+ (*( (CCTK_COMPLEX8 *) output_numbers[i])).Re = (*( (CCTK_COMPLEX8 *) output_numbers[i])).Re / num_points;
+ (*( (CCTK_COMPLEX8 *) output_numbers[i])).Im = (*( (CCTK_COMPLEX8 *) output_numbers[i])).Im / num_points;
+ break;
+ #endif
+ #ifdef CCTK_COMPLEX16
+ case CCTK_VARIABLE_COMPLEX16:
(*( (CCTK_COMPLEX16 *) output_numbers[i])).Re = (*( (CCTK_COMPLEX16 *) output_numbers[i])).Re / num_points;
(*( (CCTK_COMPLEX16 *) output_numbers[i])).Im = (*( (CCTK_COMPLEX16 *) output_numbers[i])).Im / num_points;
- break;
- #endif
- #ifdef CCTK_COMPLEX32
- case CCTK_VARIABLE_COMPLEX32:
- (*( (CCTK_COMPLEX32 *) output_numbers[i])).Re = (*( (CCTK_COMPLEX32 *) output_numbers[i])).Re / num_points;
- (*( (CCTK_COMPLEX32 *) output_numbers[i])).Im = (*( (CCTK_COMPLEX32 *) output_numbers[i])).Im / num_points;
- break;
- #endif
+ break;
+ #endif
+ #ifdef CCTK_COMPLEX32
+ case CCTK_VARIABLE_COMPLEX32:
+ (*( (CCTK_COMPLEX32 *) output_numbers[i])).Re = (*( (CCTK_COMPLEX32 *) output_numbers[i])).Re / num_points;
+ (*( (CCTK_COMPLEX32 *) output_numbers[i])).Im = (*( (CCTK_COMPLEX32 *) output_numbers[i])).Im / num_points;
+ break;
+ #endif
+ }
}
}
}