| comm | [in] MPI communicator |
| global_dim | [in] Number of global elements represented by the MPI vector object that called this function. |
| local_dim | [in] Number of vector elements stored on this local processor |
| num_cols | [in] The number of columns in each mulit-vector argument. |
| num_vecs | [in] Number of non-mutable vectors involved in this reduction/transformation operation (see below). |
| local_vec_ptrs | [in] Array (size num_vecs ) of pointers to the local elements of the non-mutable vectors (see below). |
| local_vec_strides | [in] Array (size num_vecs ) of strides between vector elements in local_vec_ptrs [p] (see below). |
| local_vec_leading_dim | [in] Array (size num_vecs ) of leading dimmensions between colummns for each vector in local_vec_ptrs [p] (see below). Can be NULL if num_cols==0 . |
| num_targ_vecs | [in] Number of mutable vectors involved in this reduction/transformation operation (see below). |
| local_targ_vec_ptrs | [in/out] Array (size num_targ_vecs ) of pointers to the local elements of the mutable vectors to be transformed (see below). |
| local_targ_vec_strides | [in] Array (size num_targ_vecs ) of leading dimmensions between colummns for each vector in local_targ_vec_ptrs [p] (see below). |
| local_targ_vec_leading_dim | [in] Array (size num_vecs ) of strides between vector elements in local_vec_ptrs [p] (see below). Can be NULL if num_cols==0 . |
| first_ele | [in] Identifies the first global element in the input parallel vector that defines the logical sub-vector that the RTOp operator will be applied to. |
| sub_dim | [in] Identifies the number of elements in the input parallel vector that defines the logical sub-vector that the RTOp operator will be applied to. If sub_dim == 0 then all of the remaining global elements will be included in the logical vector. |
| global_offset | [in] Identifies where the sub-vector selected by first_ele and sub_dim exists in the logical sub-vector that the RTOp operator will be applied to. |
| op | [in] Reduction/transformation operator to apply over each sub-vector and use to add to the reduction target object reduct_obj (if reduct_obj != RTOp_REDUCT_OBJ_NULL ). |
| reduct_objs | [in/out] Array (sizee num_cols) of target objects of the reduction operation. These objects must have been created by the RTOp_reduct_obj_create(op&reduct_objs[kc]) function first, for kc=0...num_cols-1. The reduction operation will be added to (reduct_objs[]) if (reduct_obj[kc]) has already been through a reduction. By allowing the info in (reduct_objs[kc]) to be added to the reduction over all of these vectors, the reduction operation can be accumulated over a set of abstract vectors which can be useful for implementing composite vectors for instance. If RTOp_get_reduct_type_num_entries(op,...) returns num_values == 0 , num_indexes == 0 and num_chars == 0 then reduct_obj should be set to NULL and no reduction will be performed. |