blob: bd2f2036dbdb74e01259c52c9513f663c8ff0856 [file] [log] [blame]
NAME
SCI_Group_operate - Create a new group from two existed groups
C Syntax
#include <sci.h>
int SCI_Group_operate(sci_group_t group1, sci_group_t group2, sci_op_t op, sci_group_t *newgroup)
INPUT PARAMETERS
group1
Existed group 1 (IN).
group2
Existed group 2 (IN).
op
Indicates how to create the new group from two existed groups (IN).
newgroup
The output new group (OUT).
DESCRIPTION
This subroutine is used to create a new group from two existed groups, group1 and group2
can be SCI_GROUP_ALL, and op can be SCI_UNION, SCI_INTERSECTION and SCI_DIFFERENCE. The
new newgroup can be used for SCI_Bcast to specify destination receivers.
This is a blocking call. The caller can assume newgroup is ready to use upon the return
of the function.
For more information, please refer to SCI's online documents.
EXAMPLE
{
int i, num_bes;
sci_group_t group1, group2, newgroup;
...
SCI_Group_operate(group1, group2, SCI_UNION, &newgroup);
}
ERRORS
All SCI routines return an error value.
SCI_ERR_UNINTIALIZED
Uninitialized SCI execution environment
SCI_ERR_INVALID_CALLER
Can only be called in the front end
SCI_ERR_GROUP_NOTFOUND
The group to be freed does not exist
SCI_ERR_INVALID_OPERATOR
Incorrect op specified
SCI_ERR_GROUP_EMPTY
The new group is an empty group
SCI_ERR_NO_MEM
Out of memory
SEE ALSO
SCI_Group_create(3)
SCI_Group_free(3)
SCI_Group_operate_ext(3)