summaryrefslogtreecommitdiff
path: root/src/include/cctk_Reduction.h
diff options
context:
space:
mode:
authoryye00 <yye00@17b73243-c579-4c4c-a9d2-2d5706c11dac>2005-11-08 20:17:38 +0000
committeryye00 <yye00@17b73243-c579-4c4c-a9d2-2d5706c11dac>2005-11-08 20:17:38 +0000
commitb2415e75fe4781341a8bb75e110d4595db2962e6 (patch)
tree06897b89605df191cfbbc7c04fdb49514bf80a6e /src/include/cctk_Reduction.h
parent8c5ac8b551ddd21553011aabf01dff06e75202e5 (diff)
Pointwise reduction flesh support
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4194 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'src/include/cctk_Reduction.h')
-rw-r--r--src/include/cctk_Reduction.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/include/cctk_Reduction.h b/src/include/cctk_Reduction.h
index 6d7c0d73..e532a016 100644
--- a/src/include/cctk_Reduction.h
+++ b/src/include/cctk_Reduction.h
@@ -56,6 +56,20 @@
const CCTK_INT output_value_type_codes[], \
void* const output_values[]
+#define POINTWISE_REDUCTION_OPERATOR_REGISTER_ARGLIST \
+ const cGH *GH, \
+ int dest_proc, \
+ int local_reduce_handle, \
+ int param_table_handle, \
+ int N_input_arrays, \
+ const void *const input_arrays[], \
+ int N_dims,\
+ const CCTK_INT input_array_dims[], \
+ const CCTK_INT input_array_type_codes[], \
+ int M_output_values, \
+ const CCTK_INT output_value_type_codes[], \
+ void* const output_values[]
+
#ifdef __cplusplus
extern "C"
{
@@ -91,6 +105,20 @@ typedef int (*cGridArrayReduceOperator) (const cGH *GH,
const CCTK_INT output_value_type_codes[],
void* const output_values[]);
+/* prototype for pointwise reduction operator routine */
+typedef int (*cPointwiseReduceOperator) (const cGH *GH,
+ int dest_proc,
+ int local_reduce_handle,
+ int param_table_handle,
+ int N_input_arrays,
+ const void * const input_arrays[],
+ int input_dims,
+ const CCTK_INT input_array_dims[],
+ const CCTK_INT input_array_type_codes[],
+ int M_output_values,
+ const CCTK_INT output_value_type_codes[],
+ void* const output_values[]);
+
int CCTK_Reduce(const cGH *GH,
int proc,
int operation_handle,
@@ -170,6 +198,29 @@ int CCTKi_RegisterGridArrayReductionOperator(const char *thorn, cGridArrayReduce
const char *CCTK_GridArrayReductionOperator(void);
int CCTK_NumGridArrayReductionOperators(void);
+/* new pointwise reduction API */
+int CCTK_ReducePointwise(const cGH *GH,
+ int dest_proc,
+ int local_reduce_handle,
+ int param_table_handle,
+ int N_input_arrays,
+ const void * const input_arrays[],
+ int input_dims,
+ const CCTK_INT input_array_dims[],
+ const CCTK_INT input_array_type_codes[],
+ int M_output_values,
+ const CCTK_INT output_value_type_codes[],
+ void* const output_values[]);
+
+#define CCTK_RegisterPointwiseReductionOperator(a) \
+ CCTKi_RegisterPointwiseReductionOperator(CCTK_THORNSTRING,a)
+
+int CCTKi_RegisterPointwiseReductionOperator(const char *thorn, cPointwiseReduceOperator
+ operatorGV);
+
+const char *CCTK_PointwiseReductionOperator(void);
+int CCTK_NumPointwiseReductionOperators(void);
+
/* FIXME: old interface - should go */
int CCTK_ReduceLocalScalar (const cGH *GH, int proc, int operation_handle,
const void *inScalar, void *outScalar, int dataType);