Developer Reference for Intel® oneAPI Math Kernel Library for C
BLACS Combine Operations
This topic describes BLACS routines that combine the data to produce a result.
In a combine operation, each participating process contributes data that is combined with other processes’ data to produce a result. This result can be given to a particular process (called the destination process), or to all participating processes. If the result is given to only one process, the operation is referred to as a leave-on-one combine, and if the result is given to all participating processes the operation is referenced as a leave-on-all combine.
At present, three kinds of combines are supported. They are:
- element-wise summation
 - element-wise absolute value maximization
 - element-wise absolute value minimization
 
Note that a combine operation combines data between processes. By definition, a combine performed across a scope of only one process does not change the input data. This is why the operations (max/min/sum) are specified as element-wise. Element-wise indicates that each element of the input array will be combined with the corresponding element from all other processes’ arrays to produce the result. Thus, a 4 x 2 array of inputs produces a 4 x 2 answer array.
When the max/min comparison is being performed, absolute value is used. For example, -5 and 5 are equivalent. However, the returned value is unchanged; that is, it is not the absolute value, but is a signed value instead. Therefore, if you performed a BLACS absolute value maximum combine on the numbers -5, 3, 1, 8 the result would be -8.
The initial symbol ? in the routine names below masks the data type:
- i
 -  
    
integer
 - s
 -  
    
single precision real
 - d
 -  
    
double precision real
 - c
 -  
    
single precision complex
 - z
 -  
    
double precision complex.
 
Routine name  |  
       Results of operation  |  
      
|---|---|
Entries of result matrix will have the value of the greatest absolute value found in that position.  |  
      |
Entries of result matrix will have the value of the smallest absolute value found in that position.  |  
      |
Entries of result matrix will have the summation of that position.  |