[This is preliminary documentation and is subject to change.]

Overload List

  NameDescription
ExclusiveScan<(Of <(T>)>)(T, ReductionOperation<(Of <(T>)>))
ExclusiveScan is a collective algorithm that performs partial reductions on data provided by each process in the communicator. ExclusiveScan combines the values stored by each process into partial results delivered to each process. The values are combined in a user-defined way, specified via a delegate. If value1, value2, ..., valueN are the values provided by the N processes in the communicator, the resulting value for the process with rank P > 0 will be value1 op value2 op ... op valueP. The rank 0 process receives a default value. ExclusiveScan is sometimes called an "exclusive" scan, because the result returned to each process does not include the contribution of that process. For an "inclusive" scan (that does include the contribution of the calling process in its result), use Scan<(Of <(T>)>)(T, ReductionOperation<(Of <(T>)>)). Note that the results provided by ExclusiveScan are the same as those provided by Scan, except that with ExclusiveScan, the process with rank i will receive the result that rank i-1 would have received from Scan, i.e., ExclusiveScan gives the same results but shifted to the right.
ExclusiveScan<(Of <(T>)>)(array<T>[]()[], ReductionOperation<(Of <(T>)>))
ExclusiveScan is a collective algorithm that performs partial reductions on data provided by each process in the communicator. ExclusiveScan combines the arrays stored by each process into partial results delivered to each process. The values are combined in a user-defined way, specified via a delegate that will be applied elementwise to the values in the arrays. If array1, array2, ..., arrayN are the values provided by the N processes in the communicator, the resulting value for the process with rank P > 0 will be array1 op array2 op ... op arrayP. The rank 0 process receives a null array. ExclusiveScan is sometimes called an "exclusive" scan, because the result returned to each process does not include the contribution of that process. For an "inclusive" scan (that does include the contribution of the calling process in its result), use Scan<(Of <(T>)>)(array<T>[]()[], ReductionOperation<(Of <(T>)>)). Note that the results provided by ExclusiveScan are the same as those provided by Scan, except that with ExclusiveScan, the process with rank i will receive the result that rank i-1 would have received from Scan, i.e., ExclusiveScan gives the same results but shifted to the right.
ExclusiveScan<(Of <(T>)>)(array<T>[]()[], ReductionOperation<(Of <(T>)>), array<T>[]()[]%)
ExclusiveScan is a collective algorithm that performs partial reductions on data provided by each process in the communicator. ExclusiveScan combines the arrays stored by each process into partial results delivered to each process. The values are combined in a user-defined way, specified via a delegate that will be applied elementwise to the values in the arrays. If array1, array2, ..., arrayN are the values provided by the N processes in the communicator, the resulting value for the process with rank P > 0 will be array1 op array2 op ... op arrayP. The rank 0 process receives a null array. ExclusiveScan is sometimes called an "exclusive" scan, because the result returned to each process does not include the contribution of that process. For an "inclusive" scan (that does include the contribution of the calling process in its result), use Scan<(Of <(T>)>)(array<T>[]()[], ReductionOperation<(Of <(T>)>)). Note that the results provided by ExclusiveScan are the same as those provided by Scan, except that with ExclusiveScan, the process with rank i will receive the result that rank i-1 would have received from Scan, i.e., ExclusiveScan gives the same results but shifted to the right.

See Also