aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryye00 <yye00@7daa882c-dc44-4453-834e-278d26b18e6a>2004-08-25 15:24:47 +0000
committeryye00 <yye00@7daa882c-dc44-4453-834e-278d26b18e6a>2004-08-25 15:24:47 +0000
commit58f1dedd641c2730d92ce7a367712a22bc49c55b (patch)
tree5c1f32f01fea00a64a57417fa4f7d58cfc415007
parent2762a52905efbd4f7bb98efc80444c2b0cee31d4 (diff)
reduction count
git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/LocalReduce/trunk@23 7daa882c-dc44-4453-834e-278d26b18e6a
-rw-r--r--src/ReductionCount.c1246
1 files changed, 993 insertions, 253 deletions
diff --git a/src/ReductionCount.c b/src/ReductionCount.c
index 145b1ee..6a5d445 100644
--- a/src/ReductionCount.c
+++ b/src/ReductionCount.c
@@ -1,10 +1,10 @@
/*@@
@file ReductionCount.c
@date Thu Apr 3 11:54:53 1997
- @author Thomas Radke
+ @author Thomas Radke, Paul Walker, Erik Schnetter
@desc
- Defines the reduction operator "count" to get the number of
- grid points of an arbitrary array.
+ Defines the reduction operator to get the average
+ of an arbitrary array.
@enddesc
@version $Id$
@@*/
@@ -12,15 +12,17 @@
#include <stdlib.h>
#include <string.h>
-#include "cctk.h"
-#include "util_Table.h"
-
#include "local_reductions.h"
static const char *rcsid = "$Id$";
CCTK_FILEVERSION(CCTDevelopment_LocalReduce_ReductionCount_c);
+
+/* Define the reduction operations */
+
+
+
/* local function prototypes */
static int ReductionCount (int N_dims, int operator_handle,
int param_table_handle, int N_input_arrays,
@@ -114,7 +116,7 @@ int LocalReduce_Count (int N_dims, int operator_handle,
/* local functions */
/*****************************************************************************/
/*@@
- @routine ReductionAvg
+ @routine ReductionCount
@date Aug 19 1999
@author Thomas Radke
@desc Returns the average of a distributed array with
@@ -135,10 +137,8 @@ static int ReductionCount (int N_dims, int operator_handle,
int i, j, k, flag, product, num_points;
int ierr;
int * iters_per_dim;
- void * data_pointer;
- void * output_buffer;
-
- output_buffer = (CCTK_REAL *) malloc (M_output_numbers*sizeof(CCTK_REAL));
+ void * data_pointer[10];
+ void * output_buffer[10];
/* indices to hold the temp indices of size N_dims and iteration indices*/
int * indices;
@@ -163,6 +163,9 @@ static int ReductionCount (int N_dims, int operator_handle,
CCTK_INT mask_offset;
CCTK_INT mask_time_level;
+
+
+
/* set the number of points */
num_points = 0;
@@ -238,259 +241,996 @@ static int ReductionCount (int N_dims, int operator_handle,
iters_per_dim [j] = (int) ((input_array_max_subscripts[j] - input_array_min_subscripts[j])/input_array_strides[j]);
max_iter *= iters_per_dim [j];
}
-
+
+#undef REDUCTION_OPERATION
+#undef REDUCTION_INITIAL
+#undef EXTRA_STEP
+
+#define REDUCTION_OPERATION(Count, scalar) Cout = num points;
+#define REDUCTION_INITIAL(num)
+#define EXTRA_STEP(a, b)
+
for (i = 0; i < N_input_arrays; i++)
{
- if ( mask_on == 1)
+ /* Do the type matching */
+ switch (input_array_type_codes[i])
{
- if ( input_array_offsets[i] == 0)
+ /* in values type switches*/
+ case CCTK_VARIABLE_CHAR:
+ switch (output_number_type_codes[i])
{
- output_buffer = 0;
- iter = 0;
- sum_indices = 0;
-
- while (iter < max_iter)
- {
- /* value we want to return is num_points*/
- num_points++;
-
- printf("\nvalue is:%f",((CCTK_REAL* )data_pointer)[sum_indices]);
-
- flag = 0;
- for (k=0;k<N_dims;k++)
- {
- if( indices[k] < iters_per_dim[k]-1)
- {
- if (flag==1)
- {
- actual_indices[k] += input_array_strides[k-1];
- indices[k]++;
- iter++;
- flag = 0;
- break;
- }
- indices[k]++;
- actual_indices[k] += input_array_strides[k];
- iter++;
- break;
- }
- else if (indices[k] == iters_per_dim[k]-1)
- {
- indices[k] = 0;
- actual_indices[k] = input_array_min_subscripts[k];
- flag = 1;
- continue;
- }
- else
- {
- CCTK_WARN(1,"indices out of bounds, this should not happen");
- return -1;
- }
- }
- sum_indices = actual_indices[0];
- for (k=N_dims-1;k>0;k--)
- {
- product = 1;
- for (j=k-1;j>=0;j--)
- {
- product *= actual_iters_per_dim[j];
- }
- sum_indices += actual_indices[k]*product;
- }
- }
+ /* out values type switches*/
+ case CCTK_VARIABLE_CHAR:
+ ITERATE_ON_ARRAY(i,CCTK_BYTE, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ case CCTK_VARIABLE_INT:
+ ITERATE_ON_ARRAY(i,CCTK_BYTE, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #ifdef CCTK_INT1
+ case CCTK_VARIABLE_INT1:
+ ITERATE_ON_ARRAY(i,CCTK_BYTE, input_arrays[i], CCTK_INT1, 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_INT2
+ case CCTK_VARIABLE_INT2:
+ ITERATE_ON_ARRAY(i,CCTK_BYTE, input_arrays[i], CCTK_INT2, 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_INT4
+ case CCTK_VARIABLE_INT4:
+ ITERATE_ON_ARRAY(i,CCTK_BYTE, input_arrays[i], CCTK_INT4, 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_INT8
+ case CCTK_VARIABLE_INT8:
+ ITERATE_ON_ARRAY(i,CCTK_BYTE, input_arrays[i], CCTK_INT8, 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_REAL:
+ ITERATE_ON_ARRAY(i,CCTK_BYTE, input_arrays[i], CCTK_REAL, 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;
+ #ifdef CCTK_REAL4
+ case CCTK_VARIABLE_REAL4:
+ ITERATE_ON_ARRAY(i,CCTK_BYTE, input_arrays[i], CCTK_REAL4, 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_REAL8
+ case CCTK_VARIABLE_REAL8:
+ 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)
+ break;
+ #endif
+ case CCTK_VARIABLE_COMPLEX:
+/* ITERATE_ON_ARRAY(i,CCTK_BYTE, input_arrays[i], CCTK_COMPLEX, 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;
+ #ifdef CCTK_COMPLEX8
+ case CCTK_VARIABLE_COMPLEX8:
+ ITERATE_ON_ARRAY(i,CCTK_BYTE, input_arrays[i], CCTK_COMPLEX8, 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_COMPLEX16
+ case CCTK_VARIABLE_COMPLEX16:
+ ITERATE_ON_ARRAY(i,CCTK_BYTE, input_arrays[i], CCTK_COMPLEX16, 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_COMPLEX32
+ case CCTK_VARIABLE_COMPLEX32:
+ ITERATE_ON_ARRAY(i,CCTK_BYTE, input_arrays[i], CCTK_COMPLEX32, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #endif
}
- else
+ break;
+ case CCTK_VARIABLE_INT:
+ switch (output_number_type_codes[i])
{
- output_buffer = 0;
- iter = 0;
- sum_indices = 0;
-
- while (iter < max_iter)
- {
- /* prevent offset from giving segfaults */
- if (sum_indices >= max_iter)
- {
- CCTK_WARN(1,"offsets and strides access unallocated memory");
- return -1;
- }
-
- /* value we want to return is num_points*/
- num_points++;
-
- printf("\nvalue is:%f",((CCTK_REAL* )data_pointer)[sum_indices]);
-
- flag = 0;
- for (k=0;k<N_dims;k++)
- {
- if( indices[k] < iters_per_dim[k]-1)
- {
- if (flag==1)
- {
- actual_indices[k] += input_array_strides[k-1];
- indices[k]++;
- iter++;
- flag = 0;
- break;
- }
- indices[k]++;
- actual_indices[k] += input_array_strides[k];
- iter++;
- break;
- }
- else if (indices[k] == iters_per_dim[k]-1)
- {
- indices[k] = 0;
- actual_indices[k] = input_array_min_subscripts[k];
- flag = 1;
- continue;
- }
- else
- {
- CCTK_WARN(1,"indices out of bounds, this should not happen");
- return -1;
- }
- }
- sum_indices = actual_indices[0]+input_array_offsets[i];
- for (k=N_dims-1;k>0;k--)
- {
- product = 1;
- for (j=k-1;j>=0;j--)
- {
- product *= actual_iters_per_dim[j];
- }
- sum_indices += actual_indices[k]*product;
- }
- }
- }
- }
- else if (mask_on == 0)
- {
- if ( input_array_offsets[i] == 0)
+ /* out values type switches*/
+ case CCTK_VARIABLE_CHAR:
+ ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ case CCTK_VARIABLE_INT:
+ ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #ifdef CCTK_INT1
+ case CCTK_VARIABLE_INT1:
+ ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_INT1, 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_INT2
+ case CCTK_VARIABLE_INT2:
+ ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_INT2, 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_INT4
+ case CCTK_VARIABLE_INT4:
+ ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_INT4, 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_INT8
+ case CCTK_VARIABLE_INT8:
+ ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_INT8, 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_REAL:
+ ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_REAL, 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;
+ #ifdef CCTK_REAL4
+ case CCTK_VARIABLE_REAL4:
+ ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_REAL4, 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_REAL8
+ case CCTK_VARIABLE_REAL8:
+ 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)
+ break;
+ #endif
+ case CCTK_VARIABLE_COMPLEX:
+/* ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_COMPLEX, 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;
+ #ifdef CCTK_COMPLEX8
+ case CCTK_VARIABLE_COMPLEX8:
+ ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_COMPLEX8, 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_COMPLEX16
+ case CCTK_VARIABLE_COMPLEX16:
+ ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_COMPLEX16, 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_COMPLEX32
+ case CCTK_VARIABLE_COMPLEX32:
+ ITERATE_ON_ARRAY(i,CCTK_INT, input_arrays[i], CCTK_COMPLEX32, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #endif
+ }
+ break;
+ #ifdef CCTK_INT1
+ case CCTK_VARIABLE_INT1:
+ switch (output_number_type_codes[i])
{
- output_buffer = 0;
- iter = 0;
- sum_indices = 0;
-
- while (iter < max_iter)
- {
-
- ((CCTK_REAL *)output_buffer)[i] += ((CCTK_REAL* )data_pointer)[sum_indices];
- num_points++;
-
- printf("\nvalue is:%f",((CCTK_REAL* )data_pointer)[sum_indices]);
-
- flag = 0;
- for (k=0;k<N_dims;k++)
- {
- if( indices[k] < iters_per_dim[k]-1)
- {
- if (flag==1)
- {
- actual_indices[k] += input_array_strides[k-1];
- indices[k]++;
- iter++;
- flag = 0;
- break;
- }
- indices[k]++;
- actual_indices[k] += input_array_strides[k];
- iter++;
- break;
- }
- else if (indices[k] == iters_per_dim[k]-1)
- {
- indices[k] = 0;
- actual_indices[k] = input_array_min_subscripts[k];
- flag = 1;
- continue;
- }
- else
- {
- CCTK_WARN(1,"indices out of bounds, this should not happen");
- return -1;
- }
- }
- sum_indices = actual_indices[0];
- for (k=N_dims-1;k>0;k--)
- {
- product = 1;
- for (j=k-1;j>=0;j--)
- {
- product *= actual_iters_per_dim[j];
- }
- sum_indices += actual_indices[k]*product;
- }
- }
+ /* out values type switches*/
+ case CCTK_VARIABLE_CHAR:
+ ITERATE_ON_ARRAY(i,CCTK_INT1, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ case CCTK_VARIABLE_INT:
+ ITERATE_ON_ARRAY(i,CCTK_INT1, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #ifdef CCTK_INT1
+ case CCTK_VARIABLE_INT1:
+ ITERATE_ON_ARRAY(i,CCTK_INT1, input_arrays[i], CCTK_INT1, 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_INT2
+ case CCTK_VARIABLE_INT2:
+ ITERATE_ON_ARRAY(i,CCTK_INT1, input_arrays[i], CCTK_INT2, 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_INT4
+ case CCTK_VARIABLE_INT4:
+ ITERATE_ON_ARRAY(i,CCTK_INT1, input_arrays[i], CCTK_INT4, 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_INT8
+ case CCTK_VARIABLE_INT8:
+ ITERATE_ON_ARRAY(i,CCTK_INT1, input_arrays[i], CCTK_INT8, 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_REAL:
+ ITERATE_ON_ARRAY(i,CCTK_INT1, input_arrays[i], CCTK_REAL, 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;
+ #ifdef CCTK_REAL4
+ case CCTK_VARIABLE_REAL4:
+ ITERATE_ON_ARRAY(i,CCTK_INT1, input_arrays[i], CCTK_REAL4, 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_REAL8
+ case CCTK_VARIABLE_REAL8:
+ 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)
+ break;
+ #endif
+ case CCTK_VARIABLE_COMPLEX:
+/* ITERATE_ON_ARRAY(i,CCTK_INT1, input_arrays[i], CCTK_COMPLEX, 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;
+ #ifdef CCTK_COMPLEX8
+ case CCTK_VARIABLE_COMPLEX8:
+ ITERATE_ON_ARRAY(i,CCTK_INT1, input_arrays[i], CCTK_COMPLEX8, 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_COMPLEX16
+ case CCTK_VARIABLE_COMPLEX16:
+ ITERATE_ON_ARRAY(i,CCTK_INT1, input_arrays[i], CCTK_COMPLEX16, 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_COMPLEX32
+ case CCTK_VARIABLE_COMPLEX32:
+ ITERATE_ON_ARRAY(i,CCTK_INT1, input_arrays[i], CCTK_COMPLEX32, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #endif
}
- else
+ break;
+ #endif
+ #ifdef CCTK_INT2
+ case CCTK_VARIABLE_INT2:
+ switch (output_number_type_codes[i])
{
- output_buffer = 0;
- iter = 0;
- sum_indices = 0;
-
- while (iter < max_iter)
- {
- /* prevent offset from giving segfaults */
- if (sum_indices >= max_iter)
- {
- CCTK_WARN(1,"offsets and strides access unallocated memory");
- return -1;
- }
-
- ((CCTK_REAL *)output_buffer)[i] += ((CCTK_REAL* )data_pointer)[sum_indices];
- num_points++;
-
- printf("\nvalue is:%f",((CCTK_REAL* )data_pointer)[sum_indices]);
-
- flag = 0;
- for (k=0;k<N_dims;k++)
- {
- if( indices[k] < iters_per_dim[k]-1)
- {
- if (flag==1)
- {
- actual_indices[k] += input_array_strides[k-1];
- indices[k]++;
- iter++;
- flag = 0;
- break;
- }
- indices[k]++;
- actual_indices[k] += input_array_strides[k];
- iter++;
- break;
- }
- else if (indices[k] == iters_per_dim[k]-1)
- {
- indices[k] = 0;
- actual_indices[k] = input_array_min_subscripts[k];
- flag = 1;
- continue;
- }
- else
- {
- CCTK_WARN(1,"indices out of bounds, this should not happen");
- return -1;
- }
- }
- sum_indices = actual_indices[0]+input_array_offsets[i];
- for (k=N_dims-1;k>0;k--)
- {
- product = 1;
- for (j=k-1;j>=0;j--)
- {
- product *= actual_iters_per_dim[j];
- }
- sum_indices += actual_indices[k]*product;
- }
- }
- }
- }
- else
- {
- CCTK_WARN(1, "mask_on is not set to a valid value");
+ /* out values type switches*/
+ case CCTK_VARIABLE_CHAR:
+ ITERATE_ON_ARRAY(i,CCTK_INT2, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ case CCTK_VARIABLE_INT:
+ ITERATE_ON_ARRAY(i,CCTK_INT2, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #ifdef CCTK_INT1
+ case CCTK_VARIABLE_INT1:
+ ITERATE_ON_ARRAY(i,CCTK_INT2, input_arrays[i], CCTK_INT1, 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_INT2
+ case CCTK_VARIABLE_INT2:
+ ITERATE_ON_ARRAY(i,CCTK_INT2, input_arrays[i], CCTK_INT2, 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_INT4
+ case CCTK_VARIABLE_INT4:
+ ITERATE_ON_ARRAY(i,CCTK_INT2, input_arrays[i], CCTK_INT4, 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_INT8
+ case CCTK_VARIABLE_INT8:
+ ITERATE_ON_ARRAY(i,CCTK_INT2, input_arrays[i], CCTK_INT8, 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_REAL:
+ ITERATE_ON_ARRAY(i,CCTK_INT2, input_arrays[i], CCTK_REAL, 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;
+ #ifdef CCTK_REAL4
+ case CCTK_VARIABLE_REAL4:
+ ITERATE_ON_ARRAY(i,CCTK_INT2, input_arrays[i], CCTK_REAL4, 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_REAL8
+ case CCTK_VARIABLE_REAL8:
+ 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)
+ break;
+ #endif
+ case CCTK_VARIABLE_COMPLEX:
+/* ITERATE_ON_ARRAY(i,CCTK_INT2, input_arrays[i], CCTK_COMPLEX, 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;
+ #ifdef CCTK_COMPLEX8
+ case CCTK_VARIABLE_COMPLEX8:
+ ITERATE_ON_ARRAY(i,CCTK_INT2, input_arrays[i], CCTK_COMPLEX8, 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_COMPLEX16
+ case CCTK_VARIABLE_COMPLEX16:
+ ITERATE_ON_ARRAY(i,CCTK_INT2, input_arrays[i], CCTK_COMPLEX16, 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_COMPLEX32
+ case CCTK_VARIABLE_COMPLEX32:
+ ITERATE_ON_ARRAY(i,CCTK_INT2, input_arrays[i], CCTK_COMPLEX32, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #endif
+ }
+ break;
+ #endif
+ #ifdef CCTK_INT4
+ case CCTK_VARIABLE_INT4:
+ switch (output_number_type_codes[i])
+ {
+ /* out values type switches*/
+ case CCTK_VARIABLE_CHAR:
+ ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ case CCTK_VARIABLE_INT:
+ ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #ifdef CCTK_INT1
+ case CCTK_VARIABLE_INT1:
+ ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_INT1, 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_INT2
+ case CCTK_VARIABLE_INT2:
+ ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_INT2, 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_INT4
+ case CCTK_VARIABLE_INT4:
+ ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_INT4, 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_INT8
+ case CCTK_VARIABLE_INT8:
+ ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_INT8, 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_REAL:
+ ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_REAL, 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;
+ #ifdef CCTK_REAL4
+ case CCTK_VARIABLE_REAL4:
+ ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_REAL4, 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_REAL8
+ case CCTK_VARIABLE_REAL8:
+ 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)
+ break;
+ #endif
+ case CCTK_VARIABLE_COMPLEX:
+/* ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_COMPLEX, 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;
+ #ifdef CCTK_COMPLEX8
+ case CCTK_VARIABLE_COMPLEX8:
+ ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_COMPLEX8, 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_COMPLEX16
+ case CCTK_VARIABLE_COMPLEX16:
+ ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_COMPLEX16, 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_COMPLEX32
+ case CCTK_VARIABLE_COMPLEX32:
+ ITERATE_ON_ARRAY(i,CCTK_INT4, input_arrays[i], CCTK_COMPLEX32, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #endif
+ }
+ break;
+ #endif
+ #ifdef CCTK_INT8
+ case CCTK_VARIABLE_INT8:
+ switch (output_number_type_codes[i])
+ {
+ /* out values type switches*/
+ case CCTK_VARIABLE_CHAR:
+ ITERATE_ON_ARRAY(i,CCTK_INT8, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ case CCTK_VARIABLE_INT:
+ ITERATE_ON_ARRAY(i,CCTK_INT8, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #ifdef CCTK_INT1
+ case CCTK_VARIABLE_INT1:
+ ITERATE_ON_ARRAY(i,CCTK_INT8, input_arrays[i], CCTK_INT1, 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_INT2
+ case CCTK_VARIABLE_INT2:
+ ITERATE_ON_ARRAY(i,CCTK_INT8, input_arrays[i], CCTK_INT2, 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_INT4
+ case CCTK_VARIABLE_INT4:
+ ITERATE_ON_ARRAY(i,CCTK_INT8, input_arrays[i], CCTK_INT4, 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_INT8
+ case CCTK_VARIABLE_INT8:
+ ITERATE_ON_ARRAY(i,CCTK_INT8, input_arrays[i], CCTK_INT8, 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_REAL:
+ ITERATE_ON_ARRAY(i,CCTK_INT8, input_arrays[i], CCTK_REAL, 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;
+ #ifdef CCTK_REAL4
+ case CCTK_VARIABLE_REAL4:
+ ITERATE_ON_ARRAY(i,CCTK_INT8, input_arrays[i], CCTK_REAL4, 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_REAL8
+ case CCTK_VARIABLE_REAL8:
+ 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)
+ break;
+ #endif
+ case CCTK_VARIABLE_COMPLEX:
+/* ITERATE_ON_ARRAY(i,CCTK_INT8, input_arrays[i], CCTK_COMPLEX, 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;
+ #ifdef CCTK_COMPLEX8
+ case CCTK_VARIABLE_COMPLEX8:
+ ITERATE_ON_ARRAY(i,CCTK_INT8, input_arrays[i], CCTK_COMPLEX8, 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_COMPLEX16
+ case CCTK_VARIABLE_COMPLEX16:
+ ITERATE_ON_ARRAY(i,CCTK_INT8, input_arrays[i], CCTK_COMPLEX16, 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_COMPLEX32
+ case CCTK_VARIABLE_COMPLEX32:
+ ITERATE_ON_ARRAY(i,CCTK_INT8, input_arrays[i], CCTK_COMPLEX32, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #endif
+ }
+ break;
+ #endif
+ case CCTK_VARIABLE_REAL:
+ switch (output_number_type_codes[i])
+ {
+ /* out values type switches*/
+ case CCTK_VARIABLE_CHAR:
+ ITERATE_ON_ARRAY(i,CCTK_REAL, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ case CCTK_VARIABLE_INT:
+ ITERATE_ON_ARRAY(i,CCTK_REAL, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #ifdef CCTK_INT1
+ case CCTK_VARIABLE_INT1:
+ ITERATE_ON_ARRAY(i,CCTK_REAL, input_arrays[i], CCTK_INT1, 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_INT2
+ case CCTK_VARIABLE_INT2:
+ ITERATE_ON_ARRAY(i,CCTK_REAL, input_arrays[i], CCTK_INT2, 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_INT4
+ case CCTK_VARIABLE_INT4:
+ ITERATE_ON_ARRAY(i,CCTK_REAL, input_arrays[i], CCTK_INT4, 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_INT8
+ case CCTK_VARIABLE_INT8:
+ ITERATE_ON_ARRAY(i,CCTK_REAL, input_arrays[i], CCTK_INT8, 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_REAL:
+ ITERATE_ON_ARRAY(i,CCTK_REAL, input_arrays[i], CCTK_REAL, 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;
+ #ifdef CCTK_REAL4
+ case CCTK_VARIABLE_REAL4:
+ ITERATE_ON_ARRAY(i,CCTK_REAL, input_arrays[i], CCTK_REAL4, 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_REAL8
+ case CCTK_VARIABLE_REAL8:
+ 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)
+ break;
+ #endif
+ case CCTK_VARIABLE_COMPLEX:
+/* ITERATE_ON_ARRAY(i,CCTK_REAL, input_arrays[i], CCTK_COMPLEX, 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;
+ #ifdef CCTK_COMPLEX8
+ case CCTK_VARIABLE_COMPLEX8:
+ ITERATE_ON_ARRAY(i,CCTK_REAL, input_arrays[i], CCTK_COMPLEX8, 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_COMPLEX16
+ case CCTK_VARIABLE_COMPLEX16:
+ ITERATE_ON_ARRAY(i,CCTK_REAL, input_arrays[i], CCTK_COMPLEX16, 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_COMPLEX32
+ case CCTK_VARIABLE_COMPLEX32:
+ ITERATE_ON_ARRAY(i,CCTK_REAL, input_arrays[i], CCTK_COMPLEX32, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #endif
+ }
+ break;
+ #ifdef CCTK_REAL4
+ case CCTK_VARIABLE_REAL4:
+ switch (output_number_type_codes[i])
+ {
+ /* out values type switches*/
+ case CCTK_VARIABLE_CHAR:
+ ITERATE_ON_ARRAY(i,CCTK_REAL4, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ case CCTK_VARIABLE_INT:
+ ITERATE_ON_ARRAY(i,CCTK_REAL4, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #ifdef CCTK_INT1
+ case CCTK_VARIABLE_INT1:
+ ITERATE_ON_ARRAY(i,CCTK_REAL4, input_arrays[i], CCTK_INT1, 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_INT2
+ case CCTK_VARIABLE_INT2:
+ ITERATE_ON_ARRAY(i,CCTK_REAL4, input_arrays[i], CCTK_INT2, 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_INT4
+ case CCTK_VARIABLE_INT4:
+ ITERATE_ON_ARRAY(i,CCTK_REAL4, input_arrays[i], CCTK_INT4, 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_INT8
+ case CCTK_VARIABLE_INT8:
+ ITERATE_ON_ARRAY(i,CCTK_REAL4, input_arrays[i], CCTK_INT8, 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_REAL:
+ ITERATE_ON_ARRAY(i,CCTK_REAL4, input_arrays[i], CCTK_REAL, 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;
+ #ifdef CCTK_REAL4
+ case CCTK_VARIABLE_REAL4:
+ ITERATE_ON_ARRAY(i,CCTK_REAL4, input_arrays[i], CCTK_REAL4, 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_REAL8
+ case CCTK_VARIABLE_REAL8:
+ 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)
+ break;
+ #endif
+ case CCTK_VARIABLE_COMPLEX:
+/* ITERATE_ON_ARRAY(i,CCTK_REAL4, input_arrays[i], CCTK_COMPLEX, 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;
+ #ifdef CCTK_COMPLEX8
+ case CCTK_VARIABLE_COMPLEX8:
+ ITERATE_ON_ARRAY(i,CCTK_REAL4, input_arrays[i], CCTK_COMPLEX8, 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_COMPLEX16
+ case CCTK_VARIABLE_COMPLEX16:
+ ITERATE_ON_ARRAY(i,CCTK_REAL4, input_arrays[i], CCTK_COMPLEX16, 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_COMPLEX32
+ case CCTK_VARIABLE_COMPLEX32:
+ ITERATE_ON_ARRAY(i,CCTK_REAL4, input_arrays[i], CCTK_COMPLEX32, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #endif
+ }
+ break;
+ #endif
+ #ifdef CCTK_REAL8
+ case CCTK_VARIABLE_REAL8:
+ switch (output_number_type_codes[i])
+ {
+ /* out values type switches*/
+ case CCTK_VARIABLE_CHAR:
+ ITERATE_ON_ARRAY(i,CCTK_REAL8, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ case CCTK_VARIABLE_INT:
+ ITERATE_ON_ARRAY(i,CCTK_REAL8, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #ifdef CCTK_INT1
+ case CCTK_VARIABLE_INT1:
+ ITERATE_ON_ARRAY(i,CCTK_REAL8, input_arrays[i], CCTK_INT1, 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_INT2
+ case CCTK_VARIABLE_INT2:
+ ITERATE_ON_ARRAY(i,CCTK_REAL8, input_arrays[i], CCTK_INT2, 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_INT4
+ case CCTK_VARIABLE_INT4:
+ ITERATE_ON_ARRAY(i,CCTK_REAL8, input_arrays[i], CCTK_INT4, 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_INT8
+ case CCTK_VARIABLE_INT8:
+ ITERATE_ON_ARRAY(i,CCTK_REAL8, input_arrays[i], CCTK_INT8, 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_REAL:
+ ITERATE_ON_ARRAY(i,CCTK_REAL8, input_arrays[i], CCTK_REAL, 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;
+ #ifdef CCTK_REAL4
+ case CCTK_VARIABLE_REAL4:
+ ITERATE_ON_ARRAY(i,CCTK_REAL8, input_arrays[i], CCTK_REAL4, 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_REAL8
+ case CCTK_VARIABLE_REAL8:
+ 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)
+ break;
+ #endif
+ case CCTK_VARIABLE_COMPLEX:
+/* ITERATE_ON_ARRAY(i,CCTK_REAL8, input_arrays[i], CCTK_COMPLEX, 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;
+ #ifdef CCTK_COMPLEX8
+ case CCTK_VARIABLE_COMPLEX8:
+ ITERATE_ON_ARRAY(i,CCTK_REAL8, input_arrays[i], CCTK_COMPLEX8, 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_COMPLEX16
+ case CCTK_VARIABLE_COMPLEX16:
+ ITERATE_ON_ARRAY(i,CCTK_REAL8, input_arrays[i], CCTK_COMPLEX16, 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_COMPLEX32
+ case CCTK_VARIABLE_COMPLEX32:
+ ITERATE_ON_ARRAY(i,CCTK_REAL8, input_arrays[i], CCTK_COMPLEX32, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #endif
+ }
+ break;
+ #endif
+ #ifdef CCTK_REAL6
+ case CCTK_VARIABLE_REAL6:
+ switch (output_number_type_codes[i])
+ {
+ /* out values type switches*/
+ case CCTK_VARIABLE_CHAR:
+ ITERATE_ON_ARRAY(i,CCTK_REAL16, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ case CCTK_VARIABLE_INT:
+ ITERATE_ON_ARRAY(i,CCTK_REAL16, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #ifdef CCTK_INT1
+ case CCTK_VARIABLE_INT1:
+ ITERATE_ON_ARRAY(i,CCTK_REAL16, input_arrays[i], CCTK_INT1, 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_INT2
+ case CCTK_VARIABLE_INT2:
+ ITERATE_ON_ARRAY(i,CCTK_REAL16, input_arrays[i], CCTK_INT2, 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_INT4
+ case CCTK_VARIABLE_INT4:
+ ITERATE_ON_ARRAY(i,CCTK_REAL16, input_arrays[i], CCTK_INT4, 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_INT8
+ case CCTK_VARIABLE_INT8:
+ ITERATE_ON_ARRAY(i,CCTK_REAL16, input_arrays[i], CCTK_INT8, 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_REAL:
+ ITERATE_ON_ARRAY(i,CCTK_REAL16, input_arrays[i], CCTK_REAL, 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;
+ #ifdef CCTK_REAL4
+ case CCTK_VARIABLE_REAL4:
+ ITERATE_ON_ARRAY(i,CCTK_REAL16, input_arrays[i], CCTK_REAL4, 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_REAL8
+ case CCTK_VARIABLE_REAL8:
+ 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)
+ break;
+ #endif
+ case CCTK_VARIABLE_COMPLEX:
+ ITERATE_ON_ARRAY(i,CCTK_REAL16, input_arrays[i], CCTK_COMPLEX, 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;
+ #ifdef CCTK_COMPLEX8
+ case CCTK_VARIABLE_COMPLEX8:
+ ITERATE_ON_ARRAY(i,CCTK_REAL16, input_arrays[i], CCTK_COMPLEX8, 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_COMPLEX16
+ case CCTK_VARIABLE_COMPLEX16:
+ ITERATE_ON_ARRAY(i,CCTK_REAL16, input_arrays[i], CCTK_COMPLEX16, 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_COMPLEX32
+ case CCTK_VARIABLE_COMPLEX32:
+ ITERATE_ON_ARRAY(i,CCTK_REAL16, input_arrays[i], CCTK_COMPLEX32, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #endif
+ }
+ break;
+ #endif
+ case CCTK_VARIABLE_COMPLEX:
+ switch (output_number_type_codes[i])
+ {
+ /* out values type switches*/
+ case CCTK_VARIABLE_CHAR:
+/* ITERATE_ON_ARRAY(i,CCTK_COMPLEX, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)*/
+ break;
+ case CCTK_VARIABLE_INT:
+/* ITERATE_ON_ARRAY(i,CCTK_COMPLEX, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)*/
+ break;
+ #ifdef CCTK_INT1
+ case CCTK_VARIABLE_INT1:
+/* ITERATE_ON_ARRAY(i,CCTK_COMPLEX, input_arrays[i], CCTK_INT1, 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_INT2
+ case CCTK_VARIABLE_INT2:
+/* ITERATE_ON_ARRAY(i,CCTK_COMPLEX, input_arrays[i], CCTK_INT2, 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_INT4
+ case CCTK_VARIABLE_INT4:
+/* ITERATE_ON_ARRAY(i,CCTK_COMPLEX, input_arrays[i], CCTK_INT4, 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_INT8
+ case CCTK_VARIABLE_INT8:
+/* ITERATE_ON_ARRAY(i,CCTK_COMPLEX, input_arrays[i], CCTK_INT8, 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_REAL:
+/* ITERATE_ON_ARRAY(i,CCTK_COMPLEX, input_arrays[i], CCTK_REAL, 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;
+ #ifdef CCTK_REAL4
+ case CCTK_VARIABLE_REAL4:
+/* ITERATE_ON_ARRAY(i,CCTK_COMPLEX, input_arrays[i], CCTK_REAL4, 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_REAL8
+ case CCTK_VARIABLE_REAL8:
+/* 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)*/
+ break;
+ #endif
+ case CCTK_VARIABLE_COMPLEX:
+/* ITERATE_ON_ARRAY(i,CCTK_COMPLEX, input_arrays[i], CCTK_COMPLEX, 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;
+ #ifdef CCTK_COMPLEX8
+ case CCTK_VARIABLE_COMPLEX8:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX, input_arrays[i], CCTK_COMPLEX8, 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_COMPLEX16
+ case CCTK_VARIABLE_COMPLEX16:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX, input_arrays[i], CCTK_COMPLEX16, 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_COMPLEX32
+ case CCTK_VARIABLE_COMPLEX32:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX, input_arrays[i], CCTK_COMPLEX32, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #endif
+ }
+ break;
+ #ifdef CCTK_COMPLEX8
+ case CCTK_VARIABLE_COMPLEX8:
+ switch (output_number_type_codes[i])
+ {
+ /* out values type switches*/
+ case CCTK_VARIABLE_CHAR:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX8, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ case CCTK_VARIABLE_INT:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX8, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #ifdef CCTK_INT1
+ case CCTK_VARIABLE_INT1:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX8, input_arrays[i], CCTK_INT1, 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_INT2
+ case CCTK_VARIABLE_INT2:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX8, input_arrays[i], CCTK_INT2, 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_INT4
+ case CCTK_VARIABLE_INT4:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX8, input_arrays[i], CCTK_INT4, 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_INT8
+ case CCTK_VARIABLE_INT8:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX8, input_arrays[i], CCTK_INT8, 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_REAL:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX8, input_arrays[i], CCTK_REAL, 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;
+ #ifdef CCTK_REAL4
+ case CCTK_VARIABLE_REAL4:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX8, input_arrays[i], CCTK_REAL4, 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_REAL8
+ case CCTK_VARIABLE_REAL8:
+ 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)
+ break;
+ #endif
+ case CCTK_VARIABLE_COMPLEX:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX8, input_arrays[i], CCTK_COMPLEX, 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;
+ #ifdef CCTK_COMPLEX8
+ case CCTK_VARIABLE_COMPLEX8:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX8, input_arrays[i], CCTK_COMPLEX8, 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_COMPLEX16
+ case CCTK_VARIABLE_COMPLEX16:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX8, input_arrays[i], CCTK_COMPLEX16, 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_COMPLEX32
+ case CCTK_VARIABLE_COMPLEX32:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX8, input_arrays[i], CCTK_COMPLEX32, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #endif
+ }
+ break;
+ #endif
+ #ifdef CCTK_COMPLEX16
+ case CCTK_VARIABLE_COMPLEX16:
+ switch (output_number_type_codes[i])
+ {
+ /* out values type switches*/
+ case CCTK_VARIABLE_CHAR:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX16, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ case CCTK_VARIABLE_INT:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX16, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #ifdef CCTK_INT1
+ case CCTK_VARIABLE_INT1:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX16, input_arrays[i], CCTK_INT1, 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_INT2
+ case CCTK_VARIABLE_INT2:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX16, input_arrays[i], CCTK_INT2, 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_INT4
+ case CCTK_VARIABLE_INT4:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX16, input_arrays[i], CCTK_INT4, 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_INT8
+ case CCTK_VARIABLE_INT8:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX16, input_arrays[i], CCTK_INT8, 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_REAL:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX16, input_arrays[i], CCTK_REAL, 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;
+ #ifdef CCTK_REAL4
+ case CCTK_VARIABLE_REAL4:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX16, input_arrays[i], CCTK_REAL4, 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_REAL8
+ case CCTK_VARIABLE_REAL8:
+ 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)
+ break;
+ #endif
+ case CCTK_VARIABLE_COMPLEX:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX16, input_arrays[i], CCTK_COMPLEX, 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;
+ #ifdef CCTK_COMPLEX8
+ case CCTK_VARIABLE_COMPLEX8:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX16, input_arrays[i], CCTK_COMPLEX8, 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_COMPLEX16
+ case CCTK_VARIABLE_COMPLEX16:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX16, input_arrays[i], CCTK_COMPLEX16, 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_COMPLEX32
+ case CCTK_VARIABLE_COMPLEX32:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX16, input_arrays[i], CCTK_COMPLEX32, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #endif
+ }
+ break;
+ #endif
+ #ifdef CCTK_COMPLEX32
+ case CCTK_VARIABLE_COMPLEX32:
+ switch (output_number_type_codes[i])
+ {
+ /* out values type switches*/
+ case CCTK_VARIABLE_CHAR:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX32, input_arrays[i], CCTK_BYTE, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ case CCTK_VARIABLE_INT:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX32, input_arrays[i], CCTK_INT, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #ifdef CCTK_INT1
+ case CCTK_VARIABLE_INT1:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX32, input_arrays[i], CCTK_INT1, 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_INT2
+ case CCTK_VARIABLE_INT2:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX32, input_arrays[i], CCTK_INT2, 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_INT4
+ case CCTK_VARIABLE_INT4:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX32, input_arrays[i], CCTK_INT4, 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_INT8
+ case CCTK_VARIABLE_INT8:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX32, input_arrays[i], CCTK_INT8, 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_REAL:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX32, input_arrays[i], CCTK_REAL, 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;
+ #ifdef CCTK_REAL4
+ case CCTK_VARIABLE_REAL4:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX32, input_arrays[i], CCTK_REAL4, 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_REAL8
+ case CCTK_VARIABLE_REAL8:
+ 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)
+ break;
+ #endif
+ case CCTK_VARIABLE_COMPLEX:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX32, input_arrays[i], CCTK_COMPLEX, 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;
+ #ifdef CCTK_COMPLEX8
+ case CCTK_VARIABLE_COMPLEX8:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX32, input_arrays[i], CCTK_COMPLEX8, 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_COMPLEX16
+ case CCTK_VARIABLE_COMPLEX16:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX32, input_arrays[i], CCTK_COMPLEX16, 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_COMPLEX32
+ case CCTK_VARIABLE_COMPLEX32:
+ ITERATE_ON_ARRAY(i,CCTK_COMPLEX32, input_arrays[i], CCTK_COMPLEX32, output_numbers[i], mask_on, input_array_offsets[i], indices, sum_indices, max_iter, iter, flag, actual_indices,input_array_strides, input_array_min_subscripts,product)
+ break;
+ #endif
+ }
+ break;
+ #endif
}
}
+
return (0);
}