next up previous
Next: LIP_OP_FREE Up: User-defined Irregular Operation Previous: LIP_OP_CREATE

LIP_USER_FUNCTION

LIP_USER_FUNCTION(iin, tin, invec, iinout, tinout, inoutvec, len, datatype)

IN iin input vector index array (choice)
IN tin input vector index type (handle)
IN invec input vector (choice)
IN iinout input/output vector index array (choice)
IN tinout input/output vector index type (handle)
INOUT inoutvec input/output vector (choice)
IN len number of elements in both vectors (integer)
IN datatype MPI data type of elements in both vectors (handle)


C syntax:

typedef void (*LIP_User_function) (void *iin, LIP_Indextype tin, void *invec, void *iinout, LIP_Indextype tinout, void *inoutvec, int *count, MPI_Datatype *datatype)


LIP_USER_FUNCTION is a prototype of a user-supplied function which could be used in a call to LIP_OP_CREATE. Its semantics with respect to the invec, inoutvec, len and datatype arguments are the same as in the user function required for MPI_OP_CREATE. However, since the data arrays are indexed indirectly, the indirect arrays are provided in iin and tin for invec and in iinout and tinout for inoutvec. It is guaranteed that the indexing types passed to the user function will already be known by the user.


next up previous
Next: LIP_OP_FREE Up: User-defined Irregular Operation Previous: LIP_OP_CREATE